¥È¥Ã¥×   ÊÔ½¸ Åà·ë º¹Ê¬ ¥Ð¥Ã¥¯¥¢¥Ã¥× źÉÕ Ê£À½ ̾Á°Êѹ¹ ¥ê¥í¡¼¥É   ¿·µ¬ °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

PHP/ÈóƱ´ü½èÍý¡Ê¥Þ¥ë¥Á¥¹¥ì¥Ã¥É½èÍý¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¡Ë

Last-modified: 2018-11-14 (¿å) 15:23:58 (1982d)
Top / PHP / ÈóƱ´ü½èÍý¡Ê¥Þ¥ë¥Á¥¹¥ì¥Ã¥É½èÍý¡¢¥Ð¥Ã¥¯¥°¥é¥¦¥ó¥É½èÍý¡Ë

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 & ');

´ØÏ¢¥ê¥ó¥¯