[[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);
?>
----
*sysem´Ø¿ô¤Çwget¤ò»ÈÍѤ¹¤ëÊýË¡
-[[PHP¤Çfork(¥Ð¥Ã¥¯¥°¥é¥ó¥É½èÍý)¤ò¤¹¤ëÊýË¡>http://d.hatena.ne.jp/haru-komugi/20090128/1233111963]]
unix·Ï¤Çwget¥³¥Þ¥ó¥É¤¬»È¤¨¤ë¤È¼¡¤Î¤è¤¦¤Ëµ½Ò¤Ç¤¤ë¤½¤¦¤Ç¤¹¡£
$url = "http://localhost/?m=sleep";
system('wget -t 1 {$url} > /dev/null & ');
*´ØÏ¢¥ê¥ó¥¯
-[[¤È¤Æ¤â´Êñ¤ËPHP¤«¤éPOST¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ëÊýË¡¡ÚPHP¡Û>http://www.programming-magic.com/20080226023511/]] ¿§¡¹¤ÊPOSTÄÌ¿®ÊýË¡¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£
-[[[ºî¶ÈÆüÊó]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ÄÌ¿®¥µ¥ó¥×¥ë