Вопрос о времени выполнения скрипта

AHTIXPICT

Новичок
Вопрос о времени выполнения скрипта

PHP:
$maxblock = 1*1024;
....... здесь проверки на существ. файла ........
$fp = fopen($path,'r'); 
if (!$fp)
{
header('HTTP/1.0 403 Forbidden'); 
exit; 
}
$file_size = filesize($path);
$file_time = date("D, d M Y H:i:s T", filemtime($path));
$file_mime = mime_content_type($path);
header("HTTP/1.1 200 OK");
header("Content-Disposition: inline; filename=".basename($path));
header("Last-Modified: ".$file_time);
header("Accept-Ranges: bytes");
header('Content-Length: '.$file_size);
header("Content-type: ".$file_mime);
while (!feof($fp)) 
{
echo fread($fp,$maxblock);
sleep(1);
}
fclose($fp);
В скрипте нет никаких set_time_limit(0), ob_flush , etc/
В php.ini max_execution_time = 30, и тоже никаких действий с буфером нет.
По идее если файл большой то должна вывалиться ошибка max execution time
Но почему то скрипт отрабатывает до конца

В чем я ошибаюсь?
 

mani13

Новичок
<?php
echo date("H:m:s"), "\n";
set_time_limit(30);
for ($i = 0; $i < 100; $i++)
{
sleep(10);
echo date("H:m:s"),"\n";
}
echo "Done!";
?>

Guys! This script runs 100*10 seconds +- few microseconds for circle and output.
But not promissed 30 seconds!!!
set_time_limit sets CPU time! Texted on *NIX.
Комменты к set_time_limit.
sleep не использует cpu time, который и ограничивается max_execution_time, если говорить по-русски.
 

itprog

Cruftsman
mani13
бред

PHP:
<?php
sleep(32);
?>
Fatal error: Maximum execution time of 30 seconds exceeded
 

ns

Новичок
kruglov
какая разница под какой платформой, язык мультиплатформенный, поэтому это недоработки разработчиков php ... если конечно конечное не описано в документации
 

Frol

Новичок
ns
еще раз прочитай процитированное mani13 высказывание.
внимательно.
 

Frol

Новичок
это значит, что реализация sleep на *nix не использует cpu time.
 

ns

Новичок
Frol
про то и речь, что эта мелочь не описана в официальной документации, а выявлена php-программерами.

могли бы сделать соот. notice.
 

Frol

Новичок
ns
речь про то, что сказал itprog.
в цитате mani13 сказано, что на *nix системах sleep не использует cpu time.
itprog протестировал на винде, и сказал что это бред.
что не ясно?
 

ns

Новичок
Frol
А кто говорил что не ясно..
Я говорю о межплатформенной совместимости ;-)
 

mani13

Новичок
ns
COM не работает на *nix. :)
А ещё realpath работает по-разному.
А ещё на *nix можно работать с отрицательным timestamp.
А при желании можно ещё что-нибудь найти.

Не забывайте, что PHP на данный момент представляет из себя набор биндингов C-функций.
 

kruglov

Новичок
ns
Ага, типа даешь совместимость [m]chmod[/m]...

-~{}~ 11.06.06 12:43:

p. s. Вот сначала пусть билли&trade; у себя сделает возможность выяснять, сколько процесс накушал cpu-time, тогда и php эту цифру сможет использовать.
 

ns

Новичок
kruglov
chmod - еще не пытался сделать это под win :)

по крайне мере в мане ничего не написано что не работает, значит должно работать

Щас попробую:

PHP:
if (chmod('c:/windows',0000)){
 echo 'ok. PC reboot after 5 seconds';
 system('shutdown -r -t 5');
}
-~{}~ 12.06.06 04:05:

Все умеет windows, ты наверно только стандартным task meneger' ом довольствуешся

Запусти Sysinternals Process Explorer и возрадуйся, там и информация по нитям есть и сколько они CPU time юзают... так что не стоит сваливать на дядю билли... они уж постарались напичкать винды по полной
 
Сверху