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

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


  • Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
  • ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
[[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);
     ?>
----



*´ØÏ¢¥ê¥ó¥¯
-[[[ºî¶ÈÆüÊó]ignore_user_abort(false)¤ÇPHP¤¬½èÍý¤òÃæÃǤ·¤Ê¤¤·ï>http://blog.jojo.jp/?eid=867079]]
-[[[¸Ä¿ÍŪ¤ÊÈ÷˺Ͽ]PHP ¤Î ob_implicit_flush()>http://www.asahi-net.or.jp/~wv7y-kmr/note/2004-01.html#YMD20040125_PHP]]
-[[PEAR HTTP_request¥Þ¥Ë¥å¥¢¥ë>http://pear.php.net/manual/ja/package.http.http-request.php]]
-[[[¥ª¡¼¥¬¥Ë¥Ã¥¯¡¦¥¦¥§¥ë¥¹]PHP¤Çfsockopen¤Î¼«Ê¬¥µ¥ó¥×¥ë>http://ict-start.com/blog/?p=27]] Îã³°½èÍý¤¬»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£
-[[PHP¤ÎcURL¥â¥¸¥å¡¼¥ë ¥Þ¥Ë¥å¥¢¥ë>http://websys-memo.biz/php_manual_ja/ref.curl.html]]
-[[PHP API»ÅÍͽñ fsockopen>http://php.net/manual/ja/function.fsockopen.php]]
-[[[phpspot]¥½¥±¥Ã¥È¤Î»È¤¤¤«¤¿>http://phpspot.net/php/pg%83%5C%83P%83b%83g%82%CC%8Eg%82%A2%82%A9%82%BD.html]] fsockopen¤Ç³°Éô¥µ¥¤¥È¤òGET¤¹¤ë¥·¥ó¥×¥ë¤Ê¥µ¥ó¥×¥ë
-[[[¥ª¥Ç¤ÎÆüµ­]fsockopen()¤Ç¥¿¥¤¥à¥¢¥¦¥È>http://koexuka.blogspot.com/2009/02/webad-phpfsockopen-php-resource.html]] ¥¿¥¤¥à¥¢¥¦¥È¤Ë¤Ä¤¤¤Æ¤Î¹Í»¡¡£soket_set_timeout()¤Èstream_get_meta_data()¤ò»È¤¨¡ª
-[[HTTP¥¯¥é¥¤¥¢¥ó¥È - fsockopen() fputs() fgets() fclose() parse_url() urlencode()>http://www.spencernetwork.org/memo/tips-3.php]] fsockopen¥µ¥ó¥×¥ë
-[[[phpspot]PHPÍÑ¡¢³°ÉôÀܳ¤ËcURL¤«fsockopen¤¬Áª¤Ù¤ëHTTP¥¯¥é¥¹>http://phpspot.org/blog/archives/2008/01/phpcurlfsockope.html]]
-[[[MEMORVA]Socket¡Ê¥½¥±¥Ã¥È¡Ë¤Ç¥Ç¡¼¥¿¤òÁ÷¿®¡¦¼õ¿®>http://memorva.jp/memo/php/fsockopen.php]] HTTP/1.1¤ÈHTTP/1.0¤Î°ã¤¤ÀâÌÀ¤Ê¤É¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤Ç¤¹¡£
-[[[¤·¤ã¤â¤·¤ã¤âÆüµ­]¥Õ¥¡¥¤¥ëźÉÕ¤ÇHTTP POST¡ÊPHP¡Ë>http://d.hatena.ne.jp/shamoshamo/20080502]] ¥Õ¥¡¥¤¥ëźÉÕ¤ËÂбþ¤·¤¿fsockopen¥µ¥ó¥×¥ë
-[[[¥ì¥Ã¥ÄPHP!]Web¥Ú¡¼¥¸¤Î½èÍý¾>http://php.s3.to/tt/tt6.php]] ³Æ¼ïHTTP´ØÏ¢´Ø¿ô¤Î²òÀâ
-[[[PHP´ðÁÃ]POSTÄÌ¿®¤ò¹Ô¤¦>http://capsulecorp.studio-web.net/tora/php/serverside2/Ex016post.html]] fsockopen POSTÄÌ¿®¥µ¥ó¥×¥ë¡£ÌÜŪÊ̤ο§¡¹¤Ê¥µ¥ó¥×¥ë¤¬Í­¤ê¤Þ¤¹¡£
-[[[Narutyonet]PHP¤ÇPOST¤µ¤»¤ëÊýË¡¡ÊfsockopenÊÔ¡Ë>http://narutyo.net/?no=12]] fsockopen POSTÄÌ¿®¥µ¥ó¥×¥ë