PHP如何用fsockopen函數(shù)實(shí)現(xiàn)異步請(qǐng)求

這篇文章主要介紹了PHP使用fsockopen實(shí)現(xiàn)異步請(qǐng)求的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下。如下資料是關(guān)于實(shí)現(xiàn)異步請(qǐng)求的詳細(xì)步驟內(nèi)容。

十載的六枝網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整六枝建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“六枝網(wǎng)站設(shè)計(jì)”,“六枝網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

我們創(chuàng)建了一個(gè)基于fsockopen的函數(shù),這個(gè)函數(shù)中利用fsockopen去訪問url,但是在訪問時(shí),并不要求獲取url顯示的內(nèi)容,而是僅僅發(fā)出訪問請(qǐng)求,請(qǐng)求到達(dá)后馬上關(guān)閉這個(gè)訪問。

這樣做的好處就是無需再等待被訪問的url是否返回了可靠的信息,節(jié)約了時(shí)間,這段代碼的執(zhí)行時(shí)間在0.1-0.2秒之間,對(duì)于普通訪客而言,幾乎察覺不到。因此,在使用時(shí),僅需要調(diào)用這個(gè)函數(shù)和對(duì)應(yīng)的url即可。不過,這里并沒有提供數(shù)據(jù)傳輸?shù)牟糠?,如何傳輸?shù)據(jù),其實(shí)只需要在$header中增加post的內(nèi)容即可。

/**
 * @生生 2018/12/24 19:25:06
 * [asynchronous PHP異步執(zhí)行任務(wù)]
 * @param  string $url       執(zhí)行任務(wù)的url地址
 * @param  array  $post_data 需要post提交的數(shù)據(jù)POST
 * @param  array  $cookie    cookie數(shù)據(jù)用于登錄等的設(shè)置(此處內(nèi)部調(diào)用,無需鑒權(quán))
 * @return boole
 */
public function asynchronous($url,$post_data = array())
{
    $url_array = parse_url($url);
    dump($url_array);
    //用fsockopen()嘗試連接 
    $fp = fsockopen($url_array['host'], 80, $errno, $errstr, 30);
    if (!$fp) {
        echo "$errstr ($errno)<br />\n";
    } else {
        //建立成功后,向服務(wù)器寫入數(shù)據(jù) 
        $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);
        /*忽略執(zhí)行結(jié)果
        while (!feof($fp)) {
            echo fgets($fp, 128);
        }*/
        //關(guān)閉鏈接
        fclose($fp);
    }
}

調(diào)用方法

/**
*  異步方法
*  參數(shù):(string)要執(zhí)行的方法url,(array)傳入?yún)?shù)
*/
function yibu(){
    $this->asynchronous('https://www.liqingbo.cn/index.php/admin/index/test',['1'=>'haha']);
    //直接返回結(jié)果
    echo '操作成功';
}

以上就是PHP使用fsockopen實(shí)現(xiàn)異步請(qǐng)求的方法介紹,詳細(xì)使用情況還得要大家自己使用過才能知道具體要領(lǐng)。如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)站名稱:PHP如何用fsockopen函數(shù)實(shí)現(xiàn)異步請(qǐng)求
網(wǎng)頁(yè)地址:http://bm7419.com/article18/igscdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、企業(yè)建站商城網(wǎng)站、虛擬主機(jī)、定制開發(fā)網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)