十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要介紹了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ì)、前端、開(kāi)發(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ú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“六枝網(wǎng)站設(shè)計(jì)”,“六枝網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
我們創(chuàng)建了一個(gè)基于fsockopen的函數(shù),這個(gè)函數(shù)中利用fsockopen去訪問(wèn)url,但是在訪問(wèn)時(shí),并不要求獲取url顯示的內(nèi)容,而是僅僅發(fā)出訪問(wèn)請(qǐng)求,請(qǐng)求到達(dá)后馬上關(guān)閉這個(gè)訪問(wèn)。
這樣做的好處就是無(wú)需再等待被訪問(wèn)的url是否返回了可靠的信息,節(jié)約了時(shí)間,這段代碼的執(zhí)行時(shí)間在0.1-0.2秒之間,對(duì)于普通訪客而言,幾乎察覺(jué)不到。因此,在使用時(shí),僅需要調(diào)用這個(gè)函數(shù)和對(duì)應(yīng)的url即可。不過(guò),這里并沒(méi)有提供數(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)用,無(wú)需鑒權(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)
\n";
} else {
//建立成功后,向服務(wù)器寫(xiě)入數(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ì)使用情況還得要大家自己使用過(guò)才能知道具體要領(lǐng)。如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!