Как оптимизировать код

255
30 мая 2017, 03:37

Имею следующее одоробло:

function lpt($input)
{
    $text = array();
    static $langs = array("", "az", "sq", "am", "en", "ar", "hy", "af", "eu", "ba", "be", "bn", "my", "bg", "bs", "cy", "hu", "vi", "ht", "gl", "nl", "mrj", "el", "ka", "gu", "da", "he", "yi", "id", "ga", "it", "is", "es", "kk", "kn", "ca", "ky", "zh", "ko", "xh", "km", "lo", "la", "lv", "lt", "lb", "mg", "ms", "ml", "mt", "mk", "mi", "mr", "mhr", "mn", "de", "ne", "no", "pa", "pap", "fa", "pl", "pt", "ro", "ru", "ceb", "sr", "si", "sk", "sl", "sw", "su", "tg", "th", "tl", "ta", "tt", "te", "tr", "udm", "uz", "uk", "ur", "fi", "fr", "hi", "hr", "cs", "sv", "gd", "et", "eo", "jv", "ja");
    for($i = 0; $i < strlen($input); $i++)
    {
        $text[$i] = substr($input, $i, 1);
    }
    foreach($text as $val)
    {
        $ln = rand(1, 93);
        $query = file_get_contents("https://translate.yandex.net/api/v1.5/tr.json/translate?key=trnsl.1.1.20170527T132437Z.c57c2dbe7e627169.5d32134e6f999da05a22423940d40ccc96e3ac94&text=".$text[$val]."&lang=".$langs[$ln]."");
        $rest = json_decode($query, true);
        $letter = $rest['text'];
        $hash = crypt($letter[0]);
        $go .= $hash;
    }
    unset($val);
    $finhash = md5(crypt($input));
    return $finhash;
}

Имеет смысл его оптимизировать или к монахам переписывать? Просто в оптимизации полный ноль, а то, шо дофига грузит - немного напрягает

Answer 1

У вас каждый раз вычисляется условие, а нужно один раз. Нужно исправить это:

for($i = 0; $i < strlen($input); $i++)

на это:

for($i = 0, $l = strlen($input); $i < $l; $i++)
Answer 2

Судя по всему, вашу функцию можно оптимизировать следующим образом:

function lpt($input) {
    return md5(crypt($input));
}
Answer 3
for($i = 0; $i < strlen($input); $i++)
{
    $text[$i] = substr($input, $i, 1);
}
foreach($text as $val)
{

можно заменить на

foreach((array)$input as $val)
{

а фрагмент $text[$val] или ошибочен и нужен просто $val, либо когда-то вывалится за диапазон элементов

unset($val); не нужен. как впрочем и всё что выше...

READ ALSO
парсер сайтов на php

парсер сайтов на php

всем привет!

342
Как использовать Twig

Как использовать Twig

У меня небольшой проект (mvc,OOP)Покажите пожалуйста как правильно подключать Twig и как его использовать в controller

346
Привет кто поможет с Telegram bot? написано на PHP

Привет кто поможет с Telegram bot? написано на PHP

У меня есть бот который при приветствии отправляет id пользователяПомогите реализовать генерацию этого id с помощью QR кода и отправку пользователю...

350
Помогите с парсером

Помогите с парсером

Помогите пожалуйста кот может, хочу парсить эту вкладку:

262