第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在PHP中發(fā)出異步HTTP請(qǐng)求

如何在PHP中發(fā)出異步HTTP請(qǐng)求

PHP
慕森王 2019-06-18 14:38:51
如何在PHP中發(fā)出異步HTTP請(qǐng)求PHP中是否有一種進(jìn)行異步HTTP調(diào)用的方法?我不在乎你的反應(yīng),我只想做點(diǎn)什么file_get_contents(),但不要等到請(qǐng)求完成后才執(zhí)行其余的代碼。這對(duì)于啟動(dòng)應(yīng)用程序中的“事件”或觸發(fā)長(zhǎng)進(jìn)程非常有用。有什么想法嗎?
查看完整描述

3 回答

?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個(gè)贊

我以前接受的答案行不通。它仍在等待回應(yīng)。不過(guò),這確實(shí)有效,從如何在PHP中發(fā)出異步GET請(qǐng)求?

function post_without_wait($url, $params){
    foreach ($params as $key => &$val) {
      if (is_array($val)) $val = implode(',', $val);
        $post_params[] = $key.'='.urlencode($val);
    }
    $post_string = implode('&', $post_params);

    $parts=parse_url($url);

    $fp = fsockopen($parts['host'],
        isset($parts['port'])?$parts['port']:80,
        $errno, $errstr, 30);

    $out = "POST ".$parts['path']." HTTP/1.1\r\n";
    $out.= "Host: ".$parts['host']."\r\n";
    $out.= "Content-Type: application/x-www-form-urlencoded\r\n";
    $out.= "Content-Length: ".strlen($post_string)."\r\n";
    $out.= "Connection: Close\r\n\r\n";
    if (isset($post_string)) $out.= $post_string;

    fwrite($fp, $out);
    fclose($fp);}


查看完整回答
反對(duì) 回復(fù) 2019-06-18
?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果您控制要異步調(diào)用的目標(biāo)(例如您自己的“l(fā)ong task.php”),則可以從該端關(guān)閉連接,兩個(gè)腳本將并行運(yùn)行。它的工作方式如下:

  1. php通過(guò)curl打開(kāi)long task.php(這里沒(méi)有魔法)
  2. php關(guān)閉連接并繼續(xù)(魔術(shù)!)
  3. 當(dāng)連接關(guān)閉時(shí),curl返回到Quick.php
  4. 這兩個(gè)任務(wù)同時(shí)進(jìn)行。

我試過(guò)了,效果很好。但是,除非您在進(jìn)程之間創(chuàng)建一些通信方式,否則Quick.php將不知道有多長(zhǎng)的task.php正在執(zhí)行。

在執(zhí)行任何其他操作之前,先嘗試使用long task.php中的代碼。它將關(guān)閉連接,但仍然繼續(xù)運(yùn)行(并禁止任何輸出):

while(ob_get_level()) ob_end_clean();header('Connection: close');ignore_user_abort();ob_start();
echo('Connection Closed');$size = ob_get_length();header("Content-Length: $size");ob_end_flush();flush();

代碼是從PHP手冊(cè)的用戶(hù)提供的注釋并有所改善。


查看完整回答
反對(duì) 回復(fù) 2019-06-18
  • 3 回答
  • 0 關(guān)注
  • 1641 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)