PHP/È󯱴ü½èÍý¡Ê¥Þ¥ë¥Á¥¹¥ì¥Ã¥É½èÍý¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¡Ë
Ë¿°Æ·ï¤Ç½èÍý»þ´Ö¤ÎŤ¤WebAPI¤¬£±¤Äͤꡢ¤½¤ì¤ò¤¹¤°¤ËÊÖ¤¹É¬Íפ¬¤¢¤Ã¤¿¤¿¤á¡Öµ¯Æ°WebAPI¡×¤È¡Ö·ë²Ì¼èÆÀWebAPI¡×¤Ëʬ¤±¤ë¤³¤È¤È¤Ê¤ê¤Þ¤·¤¿¡£ ¡Öµ¯Æ°WebAPI¡×¤Ç¤Ï¤È¤ê¤¢¤¨¤º¼õÉÕ´°Î»¤Î·ë²Ì¤ò¤¹¤°¤ËÊÖ¤¹¤È¶¦¤Ë¡¢Î¢¤ÇÈ󯱴ü½èÍý¡Ê¥Þ¥ë¥Á¥¹¥ì¥Ã¥É½èÍý¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¡Ë¤òư¤«¤¹É¬Íפ¬½Ð¤Þ¤·¤¿¡£ ¤½¤³¤ÇÈ󯱴ü½èÍý¤ò¼Â¸½¤¹¤ëÊýË¡¤ò¹Í»¡¤·¤Þ¤·¤¿¡£
curl¤òÍѤ¤¤¿È󯱴ü½èÍý
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¥ê¥À¥¤¥ì¥¯¥È¤òÍѤ¤¤¿È󯱴ü½èÍý
HTTP¥ê¥À¥¤¥ì¥¯¥È¤òÍѤ¤¤Æ¥Ö¥é¥¦¥¶¤Ø¤Î¥ì¥¹¥Ý¥ó¥¹¤Ï¥ê¥À¥¤¥ì¥¯¥ÈÀè¤Çľ¤°¤ËÊÖ¤·¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¤Ï¥ê¥À¥¤¥ì¥¯¥È¸µ¤Ç³¤±¤ëÊýË¡¤Ç¤¹¡£
»î¤·¤Æ¤ß¤Þ¤·¤¿¡£¥Ö¥é¥¦¥¶¤«¤é¥ê¥À¥¤¥ì¥¯¥È¸µ¤ò¸Æ¤Ó½Ð¤¹¤ÈHTTP¥ê¥À¥¤¥ì¥¯¥ÈÀ褬¤¹¤°¤Ëɽ¼¨¤µ¤ì¤Þ¤·¤¿¡£
º£²ó°Æ·ï¤Ç¤ÏPHP¥×¥í¥°¥é¥à¤Ç¥ê¥À¥¤¥ì¥¯¥È¸µ¤ò¸Æ¤ó¤À¤È¤¤Ë¡¢¥ê¥À¥¤¥ì¥¯¥ÈÀè¤Çºî¤é¤ì¤¿XML¥Ç¡¼¥¿¤òÊÖ¤·¤ÆÍߤ·¤«¤Ã¤¿¤Î¤Ç¤¹¤¬¡¢HTTP¥ì¥¹¥Ý¥ó¥¹¥³¡¼¥É500 Internal Server Error¤È¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤ª¤½¤é¤¯PHP¤«¤é¤Î¸Æ¤Ó¦¤ÇHTTP¥ê¥À¥¤¥ì¥¯¥È¤ËÂбþ¤·¤Æ¤¤¤Ê¤¤¤¿¤á¤È»×¤ï¤ì¤Þ¤¹¡£
¥½¥±¥Ã¥È¤ÇÈ󯱴ü½èÍý¤òµ¯Æ°
¸Æ¤Ó½Ð¤·¸µ¤Ï¤¹¤°¤ËÊ֤ꡢ¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É¤ò¥½¥±¥Ã¥È¤Çµ¯Æ°¤¹¤ëÊýË¡¤Ç¤¹¡£¤³¤Á¤é¤¬Æ°ºî£Ï£Ë¤Ç¤·¤¿¤Î¤ÇºÎÍѤ·¤Þ¤·¤¿¡£
°úÍÑ
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¤ò»ÈÍѤ¹¤ëÊýË¡
unix·Ï¤Çwget¥³¥Þ¥ó¥É¤¬»È¤¨¤ë¤È¼¡¤Î¤è¤¦¤Ëµ½Ò¤Ç¤¤ë¤½¤¦¤Ç¤¹¡£
$url = "http://localhost/?m=sleep"; system('wget -t 1 {$url} > /dev/null & ');
´ØÏ¢¥ê¥ó¥¯
- ¤È¤Æ¤â´Êñ¤ËPHP¤«¤éPOST¥ê¥¯¥¨¥¹¥È¤òÁ÷¿®¤¹¤ëÊýË¡¡ÚPHP¡Û ¿§¡¹¤ÊPOSTÄÌ¿®ÊýË¡¤¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹¡£
- [ºî¶ÈÆüÊó]ignore_user_abort(false)¤ÇPHP¤¬½èÍý¤òÃæÃǤ·¤Ê¤¤·ï
- [¸Ä¿ÍŪ¤ÊÈ÷˺Ͽ]PHP ¤Î ob_implicit_flush()
- PEAR HTTP_request¥Þ¥Ë¥å¥¢¥ë
- [¥ª¡¼¥¬¥Ë¥Ã¥¯¡¦¥¦¥§¥ë¥¹]PHP¤Çfsockopen¤Î¼«Ê¬¥µ¥ó¥×¥ë Îã³°½èÍý¤¬»²¹Í¤Ë¤Ê¤ê¤Þ¤¹¡£
- PHP¤ÎcURL¥â¥¸¥å¡¼¥ë ¥Þ¥Ë¥å¥¢¥ë
- PHP API»ÅÍͽñ fsockopen
- [phpspot]¥½¥±¥Ã¥È¤Î»È¤¤¤«¤¿ fsockopen¤Ç³°Éô¥µ¥¤¥È¤òGET¤¹¤ë¥·¥ó¥×¥ë¤Ê¥µ¥ó¥×¥ë
- [¥ª¥Ç¤ÎÆüµ]fsockopen()¤Ç¥¿¥¤¥à¥¢¥¦¥È ¥¿¥¤¥à¥¢¥¦¥È¤Ë¤Ä¤¤¤Æ¤Î¹Í»¡¡£soket_set_timeout()¤Èstream_get_meta_data()¤ò»È¤¨¡ª
- HTTP¥¯¥é¥¤¥¢¥ó¥È - fsockopen() fputs() fgets() fclose() parse_url() urlencode() fsockopen¥µ¥ó¥×¥ë
- [phpspot]PHPÍÑ¡¢³°ÉôÀܳ¤ËcURL¤«fsockopen¤¬Áª¤Ù¤ëHTTP¥¯¥é¥¹
- [MEMORVA]Socket¡Ê¥½¥±¥Ã¥È¡Ë¤Ç¥Ç¡¼¥¿¤òÁ÷¿®¡¦¼õ¿® HTTP/1.1¤ÈHTTP/1.0¤Î°ã¤¤ÀâÌÀ¤Ê¤É¤¬Ê¬¤«¤ê¤ä¤¹¤¤¤Ç¤¹¡£
- [¤·¤ã¤â¤·¤ã¤âÆüµ]¥Õ¥¡¥¤¥ëźÉÕ¤ÇHTTP POST¡ÊPHP¡Ë ¥Õ¥¡¥¤¥ëźÉÕ¤ËÂбþ¤·¤¿fsockopen¥µ¥ó¥×¥ë
- [¥ì¥Ã¥ÄPHP!]Web¥Ú¡¼¥¸¤Î½èÍý¾ ³Æ¼ïHTTP´ØÏ¢´Ø¿ô¤Î²òÀâ
- [PHP´ðÁÃ]POSTÄÌ¿®¤ò¹Ô¤¦ fsockopen POSTÄÌ¿®¥µ¥ó¥×¥ë¡£ÌÜŪÊ̤ο§¡¹¤Ê¥µ¥ó¥×¥ë¤¬Í¤ê¤Þ¤¹¡£
- [Narutyonet]PHP¤ÇPOST¤µ¤»¤ëÊýË¡¡ÊfsockopenÊÔ¡Ë fsockopen POSTÄÌ¿®¥µ¥ó¥×¥ë