PCNTLº¯Êý×å PHP¶à½ø³Ì±à³Ì
phpÓÐÒ»×é½ø³Ì¿ØÖƺ¯Êý£¬Ê¹µÃphpÄÜÔÚ*nixϵͳÖÐʵÏÖ¸úcÒ»ÑùµÄ´´½¨×Ó½ø³Ì¡¢Ê¹ÓÃexecº¯ÊýÖ´ÐгÌÐò¡¢´¦ÀíÐźŵȹ¦ÄÜ¡£
ÒýÓÃ
Process Control support in PHP implements the Unix style of process creation, program execution, signal handling and process termination. Process Control should not be enabled within a web server environment and unexpected results may happen if any Process Control functions are used within a web server environment.
½÷ÒԴ˾äÏ׸ø³¬¹¤£¬ÔÚweb server»·¾³Öв»ÒªÊ¹ÓÃÕâ×麯Êý£¬ÒòΪ»áµ¼Ö²»¿ÉÔ¤ÁϵĽá¹û¡£Áí£¬windows×÷Ϊ·ÇÀàunixϵͳ£¬Ã»ÓÐÕâЩº¯Êý¡£
PCNTLʹÓÃticksÀ´×÷ΪÐźŴ¦Àí»úÖÆ£¨signal handle callback mechanism£©£¬¿ÉÒÔ×îС³Ì¶ÈµØ½µµÍ´¦ÀíÒ첽ʼþʱµÄ¸ºÔØ¡£ºÎνticks£¿Tick ÊÇÒ»¸öÔÚ´úÂë¶ÎÖнâÊÍÆ÷ÿִÐÐ N ÌõµÍ¼¶Óï¾ä¾Í»á·¢ÉúµÄʼþ£¬Õâ¸ö´úÂë¶ÎÐèҪͨ¹ýdeclareÀ´Ö¸¶¨¡£
PCNTLµÄº¯Êý¶¼ÓÐÕâôЩ£º
ÐźŴ¦Àí
int pcntl_alarm ( int $seconds )
ÉèÖÃÒ»¸ö$secondsÃëºó·¢ËÍSIGALRMÐźŵļÆÊýÆ÷
bool pcntl_signal ( int $signo , callback $handler [, bool $restart_syscalls ] )
Ϊ$signoÉèÖÃÒ»¸ö´¦Àí¸ÃÐźŵĻص÷º¯Êý
ÏÂÃæÊÇÒ»¸ö¸ô5Ãë·¢ËÍÒ»¸öSIGALRMÐźţ¬²¢ÓÉsignal_handlerº¯Êý»ñÈ¡£¬È»ºó´òÓ¡Ò»¸ö“Caught SIGALRM”µÄÀý×Ó£º
view plaincopy to clipboardprint?
<?php
declare(ticks = 1);
function signal_handler($signal) {
print "Caught SIGALRM\n";
pcntl_alarm(5);
}
pcntl_signal(SIGALRM, "signal_handler", true);
pcntl_alarm(5);
for(;;) {
}
?>
<?php
declare(ticks = 1);
function signal_handler($signal) {
Ïà¹ØÎĵµ£º
1.Ò³ÃæÖ®¼äÎÞ·¨´«µÝ±äÁ¿
get,post,sessionÔÚ×îеÄphp°æ±¾ÖÐ×Ô¶¯È«¾Ö±äÁ¿Êǹرյģ¬ËùÒÔÒª´ÓÉÏÒ»Ò³ÃæÈ¡µÃÌá½»¹ýÀ´µÃ±äÁ¿ÒªÊ¹ÓÃ$_GET['foo'],$_POST['foo'],$_SESSION['foo']À´µÃµ½¡£µ±È»Ò²¿ÉÒÔÐÞ¸Ä×Ô¶¯È«¾Ö±äÁ¿Îª¿ª(php.ini¸ÄΪregister_globals = On)£»¿¼Âǵ½¼æÈÝÐÔ£¬»¹ÊÇÇ¿ÆÈ×Ô¼ºÊìϤеÄд·¨±È½ÏºÃ¡£
2.Win32 ......
PHPµÄÓŵãÊǼòµ¥ÊµÓá£ÓÃËüÀ´Ð´Ò»Ð©½Å±¾£¬»òÕßÊÇwebservice¡¢Êý¾Ý¿âÀàµÄһЩ·ÃÎÊ£¬È·ÊµÊǺܼòµ¥·½±ã¡£
µ«ËüÓÐÒ»¸öºÜ´óµÄÎÊÌ⣬¾ÍÊÇÄÚ´æµÄ»ØÊÕÎÊÌâ¡£¸ù¾ÝʹÓõľÑé¾õµÃÊǼ¸ºõÊÇûÓлØÊÕ¡£±ÈÈç½âÎöÒ»¸ö1°ÙÕ×µÄXMLÎļþ£¬ÄÚ´æÊ¹ÓÃÄܵ½1G¶à£¬¶øÇÒ»¹²»ÊÍ·Å¡£
ËùÒÔÓÃphpдºǫ́³ÌÐò£¬Ò»¶¨²»Òª×ö³ÉËÀÑ»·µÄ£¬ÖÁÉÙÊǹýÒ»¶Îʱ¼äÍ˳ö ......
<?php
/**
* PHP100.com - ¸öÈ˸оõ·Ç³£¼òµ¥£¬Ö»ÒªÓеãPHP»ù´¡µÎÈ˶¼Ó¦¸ÃÄÜ¿´¶®~~
* Apache2 + PHP5.0
* Version:1.0
* ͬʱ¸ÐлPHP100ËùÓеÄÐÖµÜÃÇ
* ——————————————&m ......
µ±ÏÂÔØÎļþÐèÒªÓë·þÎñ¶Ë½»»¥Ê±£¬¾ÍÐèÒªÓýű¾À´ÊµÏÖ£¬¶ø²»Êǵ¥´¿µØÁ´½Óµ½ÎļþµÄµØÖ·
ÏÂÔØmp3ÎļþµÄÀý×Ó
<?php
$file_path = './data/upload/song/sample.mp3';
$file_name = 'sample.mp3';
$file_size = filesize($file_path);
header ( "Pragma: public" );
header ( "Cache-Control: must-reval ......
ÔÚPHP±à³ÌÖÐ, ÎÒÃǾ³£»áÓöµ½Ò»Ð©Ö±½Ó²úÉúÊä³öµÄº¯Êý, Èçpassthru(),readfile(), var_dump() µÈ. µ«ÓÐʱÎÒÃÇÏë°ÑÕâЩº¯ÊýµÄÊä³öµ¼Èëµ½ÎļþÖÐ,»òÕßÏȾ¹ý´¦ÀíÔÙÊä³ö, »òÕß°ÑÕâЩº¯ÊýµÄÊä³ö×÷Ϊ×Ö·û´®À´´¦Àí.
¡¡¡¡ÕâʱÎÒÃǾÍÒªÓõ½ Output Buffer(Êä³ö»º³å) º¯ÊýÁË.
´¦ÀíÊä³ö»º³åµÄº¯ÊýÖ÷ÒªÓÐÕâô¼¸¸ö:
ob_start() ¿ªÊ¼Ê ......