PHP: взлетно-посадочная полоса - PullRequest
0 голосов
/ 18 августа 2011

Вот часть моего кода

    $hold = $this->content;
    $hold_table = array();
    for($i=0; $i<strlen($hold); $i++){
        $t = substr($hold, $i, 10);
        $count = substr_count($hold, $t);
        if($count > 1){
            $hold = str_replace($t, '', $hold); //Just iterating for now to get counts
            $hold_table[bin2hex($t)] = $count;
        }
    }

$this->content - это файл, который читается.

Если "10" в этой строке: $t = substr($hold, $i, 10); равно 10 илиниже, он работает нормально и выдает результат отлично.

Если я поменяю 10 на «15».Сценарий просто зависает в цикле.

Я не думаю, что есть какие-либо ограничения размера ключа массива, в которые я вхожу, и цикл "FOR" должен завершиться, если $i > strlen($hold)

Есть идеи, почему с 10 на 15 происходит хаос?

1 Ответ

1 голос
/ 18 августа 2011

Вы изменяете $ hold по ходу вашей инструкции str_replace (сокращая ее в основном). Я думаю, что это дает неожиданные результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...