|
|
|
| Основной элемент ускрипта содержит такой код:
<?php
unset($m_text); // Удаление массива
$no_var = 0;
for ($i = 0; $i <= 10000000; $i++)
{
$no_var++;
$text_got = "";
for ($ii = 0; $ii < $n_str; $ii++)
{
$nv = rand(0, count($content[$ii]) - 1);
$dt = $content[$ii][$nv];
$text_got .= $dt ;
}
$text_got = str_replace($metka, $metka . $no_var, $text_got);
$m_text[] = $text_got;
if (@file_get_contents($adr)) break;
$n_mil = round ($i/1000);
if (@$n_mil_new != $n_mil) $n_mil_new = $n_mil ;
}
$_SESSION['n_text_unik'] = $n_text_unik;
$_SESSION['m_text'] = $m_text;
echo "<br><br>ГОТОВО<br>";
|
Длина основного цикла (100 миллионов) заведомо невыполнима. А прерывание достигается за счет оператора
if (@file_get_contents($adr)) break;
| , через который поступает внешняя команда (считывается информация из текстового файла).
Скрипт, вроде бы, останавливается. В том смысле, что по внешней команде на дисплее появляется сообщение о готовности. Однако ИЕ, через который запущен скрипт, продолжает "крутиться", а апач занимает 50% нагрузки процессора (работа ведется на Денвере).
Лишь спустя значительное время ИЕ останавливается.
Как узнать, что происходит в скрипте? | |
|
|
|
|
|
|
|
для: Владимир55
(19.10.2009 в 17:27)
| | Вы сами это писали или откуда-то взяли?
$adr - откуда берется? В цикле она встречается только один раз - когда выходить надо. Т.е. логично предположить, что переменная объявляется где-то раньше, и положительное значение вернется либо сразу, либо никогда (т.е. цикл будет идти 100млн раз) | |
|
|
|
|
|
|
|
для: neadekvat
(19.10.2009 в 17:33)
| | Скрипт мой, и он довольно большой, а потому я привел лишь фрагмент, где, как мне кажется, и скрыта загадка.
Адрес в переменной $adr задан выше по скрипту, а текстовый файл, находящийся по этому адресу, перезаписывается оператором (человеком) не рнр-средствами.
В момент этой перезаписи мгновенно выводится сообщение о готовности, но ИЕ продолжает "крутиться"... | |
|
|
|
|
|
|
|
для: Владимир55
(19.10.2009 в 17:27)
| | воспользоваться Firebug-->сеть-->всё | |
|
|
|
|
|
|
|
для: serjinio
(19.10.2009 в 18:20)
| | Попробовал.
Firebug показывает вызванный, а затем остановленный файл. Было бы странно, если бы он показал какой-то другой файл...
Но что работает здесь, если из цикла вышли?
============
За ссылку на Firebug спасибо. Не знал об этом сервисе. | |
|
|
|