-
加入我們
-
VIP定制
-
求關(guān)注
Thank you for visiting
029-81773686
全網(wǎng)開(kāi)發(fā)&整合營(yíng)銷服務(wù)商
CopyRight
?HOOBOO All rights reserved
2020.08.14
我們創(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)容即可。
/**
* @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
*/
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 {
//建立成功后,向服務(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é)果
if($debug){
echo '<pre>';
while (!feof($fp)) {
print_r(fgets($fp, 128));
}
echo '</pre>';
}
//關(guān)閉鏈接
fclose($fp);
}
}
// 調(diào)用方法
asynchronous('https://www.hooboo.cn/admin/index/test',['name'=>'haha']);
// 直接返回結(jié)果
echo '操作成功';
CopyRight ? 西安宏博網(wǎng)絡(luò)科技有限公司 備案號(hào):陜ICP備10007014號(hào)-8 站點(diǎn)地圖 免責(zé)聲明:本網(wǎng)站部分資源來(lái)源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系我們告知?jiǎng)h除,我們將會(huì)盡快處理,謝謝!本站不承擔(dān)任何法律責(zé)任。