宏博網絡 | 專注互聯網品牌一站式服務

Thank you for visiting

029-81773686

全網開發&整合營銷服務商

CopyRight
?HOOBOO All rights reserved

全網開發&整合營銷服務商

029-81773686

PHP異步執行任務fsockopen的實用方法?

2020.08.14

我們創建了一個基于fsockopen的函數,這個函數中利用fsockopen去訪問url,但是在訪問時,并不要求獲取url顯示的內容,而是僅僅發出訪問請求,請求到達后馬上關閉這個訪問。這樣做的好處就是無需再等待被訪問的url是否返回了可靠的信息,節約了時間,這段代碼的執行時間在0.1-0.2秒之間,對于普通訪客而言,幾乎察覺不到。因此,在使用時,僅需要調用這個函數和對應的url即可。不過,這里并沒有提供數據傳輸的部分,如何傳輸數據,其實只需要在$header中增加post的內容即可。


/**

 * @PHP異步執行任務

 * @param  string $url       執行任務的url地址

 * @param  array  $post_data 需要post提交的數據POST

 * @param  array  $cookie    cookie數據用于登錄等的設置(此處內部調用,無需鑒權)

 * @return boole

 */

function asynchronous($url,$post_data = array(), $debug = false)

{

    $url_array = parse_url($url);

if($debug){

echo '<pre>';

print_r($url_array);

echo '</pre>';

}

    //用fsockopen()嘗試連接 

    $fp = fsockopen($url_array['host'], 80, $errno, $errstr, 30);

    if (!$fp) {

        echo "$errstr ($errno)<br />\n";

    } else {

        //建立成功后,向服務器寫入數據 

        $getPath = isset($url_array['path']) ? $url_array['path'] : '/';

        $out = "GET /".$getPath."/ HTTP/1.1\r\n";

        $out .= "Host:".$url_array['host']."\r\n";

        $out .= "Connection: Close\r\n\r\n";

       

        fwrite($fp, $out);

        /*忽略執行結果

if($debug){

echo '<pre>';

while (!feof($fp)) {

print_r(fgets($fp, 128));

}

echo '</pre>';

}

        //關閉鏈接

        fclose($fp);

    }

}



// 調用方法

asynchronous('https://www.hooboo.cn/admin/index/test',['name'=>'haha']);

// 直接返回結果

echo '操作成功';


上一篇:Web前端布局?什么是布局?

下一篇:關于網站后期管理中,圖片及資料內容的更新問題?

CopyRight ? HOOBOO   備案號:陜ICP備10007014號-9   站點地圖 免責聲明:本網站部分資源來源于網絡,如有侵權,請聯系我們告知刪除,我們將會盡快處理,謝謝!本站不承擔任何法律責任。

东北麻将算钱规则图 一十轻风 连码不断 三肖中特黄大仙许一刀 (★^O^★)MG自由精神客户端下载 (★^O^★)MG足球狂欢节闯关 上海快3走势图100期 (★^O^★)MG妹妹很饿闯关 (*^▽^*)MG黄金翅膀送彩金 福利20选5中奖说明 彩票2元网广东26选5 香港白小姐今晚开奖结果 香港高频彩票有哪些 (*^▽^*)MG亚特兰蒂斯女王_正规平台 (^ω^)MG四象如何爆大奖 上海快3 (^ω^)MG太阳征程援彩金 (^ω^)MG东方珍兽_电子游戏