¥È¥Ã¥×   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

PHP/ÈóƱ´ü½èÍý¡Ê¥Þ¥ë¥Á¥¹¥ì¥Ã¥É½èÍý¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¡Ë ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×º¹Ê¬(No.1)


  • Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
  • ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
[[PHP]]



Ë¿°Æ·ï¤Ç½èÍý»þ´Ö¤ÎŤ¤WebAPI¤¬£±¤ÄÍ­¤ê¡¢¤½¤ì¤ò¤¹¤°¤ËÊÖ¤¹É¬Íפ¬¤¢¤Ã¤¿¤¿¤á¡Öµ¯Æ°WebAPI¡×¤È¡Ö·ë²Ì¼èÆÀWebAPI¡×¤Ëʬ¤±¤ë¤³¤È¤È¤Ê¤ê¤Þ¤·¤¿¡£
¡Öµ¯Æ°WebAPI¡×¤Ç¤Ï¤È¤ê¤¢¤¨¤º¼õÉÕ´°Î»¤Î·ë²Ì¤ò¤¹¤°¤ËÊÖ¤¹¤È¶¦¤Ë¡¢Î¢¤ÇÈóƱ´ü½èÍý¡Ê¥Þ¥ë¥Á¥¹¥ì¥Ã¥É½èÍý¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¡Ë¤òÆ°¤«¤¹É¬Íפ¬½Ð¤Þ¤·¤¿¡£
¤½¤³¤ÇÈóƱ´ü½èÍý¤ò¼Â¸½¤¹¤ëÊýË¡¤ò¹Í»¡¤·¤Þ¤·¤¿¡£



*curl¤òÍѤ¤¤¿ÈóƱ´ü½èÍý
-[[[EC studioµ»½Ñ¥Ö¥í¥°]PHP¤Ç¥Þ¥ë¥Á¥¹¥ì¥Ã¥É(¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¡¢ÈóƱ´ü½èÍý)¤ò¼Â¸½¤¹¤ëÊýË¡>http://techblog.ecstudio.jp/tech-tips/php-multi.html]]

curl¤òÍѤ¤¤ÆÊ£¿ô¤ÎWebAPI¤òƱ»þ¤Ë¸Æ¤Ó½Ð¤·¡¢¤¹¤Ù¤Æ¤Î½èÍý¤¬½ª¤ï¤Ã¤Æ¤«¤é½èÍý¤ò³¤±¤ëÊýË¡¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£~
WebAPI£±¤Ä¤º¤Ä¸Æ¤Ó½Ð¤¹¤Î¤ËÈæ¤Ù¤Æ½èÍý»þ´Ö¤¬Ã»¤¯¤Ê¤ê¤Þ¤¹¡£~
¤Þ¤¿curl°Ê³°¤Ë¼¡¤ÎÊýË¡¤âÍ­¤ê¤Þ¤¹¤¬¡¢PHP¤òCGI¥â¡¼¥É¤ÇÆ°¤«¤·¤Æ¤¤¤ë¤È¤­¤·¤«»È¤¨¤Ê¤¤¤Î¤Ç»È¤¨¤Ê¤¤¤½¤¦¤Ç¤¹¡£(== ¿¤¯¤Î¾ì¹ç¤ÇÍøÍѤµ¤ì¤ëApache¥â¥¸¥å¡¼¥ë¤È¤·¤ÆÆ°¤«¤·¤Æ¤¤¤ë¤È»È¤¨¤Ê¤¤)
-pcntl_fork¤È¤¤¤¦¥×¥í¥»¥¹¤ò¥Õ¥©¡¼¥¯(Ê£À½)¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë´Ø¿ô¤òÍøÍѤ¹¤ëÊýË¡
-¡Ösystem('php -f test.php > /dev/null &'); ¡×¤È¤¤¤Ã¤¿¤Õ¤¦¤Ëµ¯Æ°¤¹¤ëÊýË¡
~
¡Ø¤â¤Á¤í¤óĹ»þ´ÖÆ°¤«¤¹»þ¤Ïset_time_limit¤ÎÀßÄê¤â˺¤ì¤º¤Ë¡£ignore_user_abort¤ò»È¤¨¤Ð¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¤â²Äǽ¤Ç¤¹¡£¡Ù¤À¤½¤¦¤Ç¤¹¡£~
¤³¤ì¤é¤ÎÀßÄê¤Ï¾¤ÎÊýË¡¤Ç¤âÆþ¤ì¤ë¤Û¤¦¤¬¤¤¤¤¤è¤¦¤Ç¤¹¡£
~
ÊØÍø¤½¤¦¤Ç¤¹¤¬¡¢PHP³ÈÄ¥¥â¥¸¥å¡¼¥ë¤Ç¤¢¤ëcurl¤¬¥¦¥§¥Ö¦ÀßÄê¤Ë¤è¤Ã¤Æ»È¤¨¤Ê¤¤¾ì¹ç¤ÏÍøÍѤǤ­¤Þ¤»¤ó¤Î¤Ç¡¢
º£²ó°Æ·ï¤Ç¤Ï»ÈÍѤ·¤Þ¤»¤ó¤Ç¤·¤¿¡£



*HTTP¥ê¥À¥¤¥ì¥¯¥È¤òÍѤ¤¤¿ÈóƱ´ü½èÍý
-[[[nao pon's Blog]PHP¤ÇÈóƱ´üÄÌ¿®>http://xoops.hypweb.net/modules/UsersWiki/person/nao-pon/blog/2006-11-17]]

HTTP¥ê¥À¥¤¥ì¥¯¥È¤òÍѤ¤¤Æ¥Ö¥é¥¦¥¶¤Ø¤Î¥ì¥¹¥Ý¥ó¥¹¤Ï¥ê¥À¥¤¥ì¥¯¥ÈÀè¤Çľ¤°¤ËÊÖ¤·¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¤Ï¥ê¥À¥¤¥ì¥¯¥È¸µ¤Ç³¤±¤ëÊýË¡¤Ç¤¹¡£
»î¤·¤Æ¤ß¤Þ¤·¤¿¡£¥Ö¥é¥¦¥¶¤«¤é¥ê¥À¥¤¥ì¥¯¥È¸µ¤ò¸Æ¤Ó½Ð¤¹¤ÈHTTP¥ê¥À¥¤¥ì¥¯¥ÈÀ褬¤¹¤°¤Ëɽ¼¨¤µ¤ì¤Þ¤·¤¿¡£~
º£²ó°Æ·ï¤Ç¤ÏPHP¥×¥í¥°¥é¥à¤Ç¥ê¥À¥¤¥ì¥¯¥È¸µ¤ò¸Æ¤ó¤À¤È¤­¤Ë¡¢¥ê¥À¥¤¥ì¥¯¥ÈÀè¤Çºî¤é¤ì¤¿XML¥Ç¡¼¥¿¤òÊÖ¤·¤ÆÍߤ·¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢HTTP¥ì¥¹¥Ý¥ó¥¹¥³¡¼¥É500 Internal Server Error¤È¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤ª¤½¤é¤¯PHP¤«¤é¤Î¸Æ¤Ó¦¤ÇHTTP¥ê¥À¥¤¥ì¥¯¥È¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¤¿¤á¤È»×¤ï¤ì¤Þ¤¹¡£



*¥½¥±¥Ã¥È¤ÇÈóƱ´ü½èÍý¤òµ¯Æ°
-[[2ch ¡ÚPHP¡Û¼ÁÌ䥹¥ì¥Ã¥ÉPart2>http://ebi.2ch.net/php/kako/1003/10032/1003283567.html]]

¸Æ¤Ó½Ð¤·¸µ¤Ï¤¹¤°¤ËÊ֤ꡢ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ò¥½¥±¥Ã¥È¤Çµ¯Æ°¤¹¤ëÊýË¡¤Ç¤¹¡£¤³¤Á¤é¤¬Æ°ºî£Ï£Ë¤Ç¤·¤¿¤Î¤ÇºÎÍѤ·¤Þ¤·¤¿¡£

°úÍÑ
----
 35 ̾Á°¡§ ÅÅÆ°¥Ê¥Ê¥·  Åê¹ÆÆü¡§ 01/10/23 03:18 ID:We7XcUx8
     >>32
     ¤Þ¤¢Íפ¹¤ë¤Ë¥¹¥¯¥ê¥×¥È¤òÈóƱ´ü¤Ç¼Â¹Ô¤·¤¿¤¤¤Ã¤Æ¤³¤È¤«¤Ê¡£
 
     ¤³¤ì¤Ç¤É¤¦¤«¤Ê¡£async_caller.php ¤«¤é async_called.php ¤ò¸Æ¤Ö¥³¡¼¥É¡£
     async_caller.php ¤¬Àè¤Ë½ªÎ»¤¹¤ë¤¬¡¢called ¤Ï caller ¤¬½ªÎ»¤·¤Æ¤â¥Ð¥Ã¥¯
     ¥°¥é¥¦¥ó¥É¤Ç¼Â¹Ô¤µ¤ì¤ë¡£caller ¤Ëɽ¼¨¤µ¤ì¤ë¥¿¥¤¥à¥¹¥¿¥ó¥×¤¬ called ¤¬
     test.dat ¤Ëµ­Ï¿¤¹¤ë¥¿¥¤¥à¥¹¥¿¥ó¥×¤è¤êÁ°¤Ç¤¢¤ë¤³¤È¤«¤é³Îǧ¤Ç¤­¤ë¤À¤í¤¦¡£
     Windows2000 + Apache 1.3.20 + PHP 4.0.6 ¤Ç³Îǧ¡£
 
     async_caller.php
     <?php
     $fp = fsockopen ("localhost", 80, $errno, $errstr, 5);
     if (!$fp) {
         echo "Error: $errstr ($errno)<br>\n";
     } else {
         socket_set_blocking($fp, false);
         fputs ($fp, "GET /hoge/async_called.php HTTP/1.0\r\n\r\n");
         fclose ($fp);
         echo "Current time: " . time() . "<br>\r";
     }
     ?>
 
     async_called.php
     <?php
     ignore_user_abort();
     sleep(10);
     $fp = fopen("test.dat", "w");
     fputs($fp, time());
     fclose($fp);
     ?>
----