Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чем занят выключенный скрипт?
 
 автор: Владимир55   (19.10.2009 в 17:27)   письмо автору
 
 

Основной элемент ускрипта содержит такой код:
<?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(0count($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% нагрузки процессора (работа ведется на Денвере).

Лишь спустя значительное время ИЕ останавливается.

Как узнать, что происходит в скрипте?

  Ответить  
 
 автор: neadekvat   (19.10.2009 в 17:33)   письмо автору
 
   для: Владимир55   (19.10.2009 в 17:27)
 

Вы сами это писали или откуда-то взяли?
$adr - откуда берется? В цикле она встречается только один раз - когда выходить надо. Т.е. логично предположить, что переменная объявляется где-то раньше, и положительное значение вернется либо сразу, либо никогда (т.е. цикл будет идти 100млн раз)

  Ответить  
 
 автор: Владимир55   (19.10.2009 в 17:57)   письмо автору
 
   для: neadekvat   (19.10.2009 в 17:33)
 

Скрипт мой, и он довольно большой, а потому я привел лишь фрагмент, где, как мне кажется, и скрыта загадка.

Адрес в переменной $adr задан выше по скрипту, а текстовый файл, находящийся по этому адресу, перезаписывается оператором (человеком) не рнр-средствами.

В момент этой перезаписи мгновенно выводится сообщение о готовности, но ИЕ продолжает "крутиться"...

  Ответить  
 
 автор: serjinio   (19.10.2009 в 18:20)   письмо автору
 
   для: Владимир55   (19.10.2009 в 17:27)
 

воспользоваться Firebug-->сеть-->всё

  Ответить  
 
 автор: Владимир55   (19.10.2009 в 18:49)   письмо автору
 
   для: serjinio   (19.10.2009 в 18:20)
 

Попробовал.
Firebug показывает вызванный, а затем остановленный файл. Было бы странно, если бы он показал какой-то другой файл...

Но что работает здесь, если из цикла вышли?

============
За ссылку на Firebug спасибо. Не знал об этом сервисе.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования