PHP程式設計實現指令碼非同步執行的方法

2022-09-29 13:54:10 字數 1720 閱讀 7792

php語言得用fsockopen()函式,實現指令碼非同步執行,**如下

非同步請求函式(用debug引數若為true則為用為除錯,開啟除錯可以看到非同步的執**況,但是失去非同步的效果)

main.php

<?php function request_by_fsockopen($url,$post_data=array(),$debug=false)

$method = "get";

if(!empt程式設計客棧y($post_data))

程式設計客棧 $header = "$method $requestpath http/1.1\r\n";

$header.="host: $hostname\r\n";

if(!empty($post_data))

$_post = implode('&', $_post);

$header .= "content-type: application/x-www-form-urlencoded\r\n";//post資料

$header .= "content-length: ". strlen($_post) ."\r\n";//post資料的長度

$header.="connection: close\r\n\r\n";//長連線關閉

$header .= $_post; //傳遞post資料

}else

fwrite($fp, $header);

//-----------------除錯**區間-----------------

//注如果開啟下面的注釋,非同步將不生效可是方便除錯

if($debug)

echo $html;

} //-----------------除錯**區間-----------------

程式設計客棧

使用例項:

[執行的main.php主指令碼檔案]

$data=array('name'=>'guoyu','pwd'=>'123456');

$url='http://localhost/test/other.php'程式設計客棧;

request_by_fsockopen($url,$data,true);//把應用b的使用者表非同步-同步資料

[導步執行檔案other.php]

在other.php中便可以用$_post接收main.php提交過來的引數,從而進行下一步操作

php 非同步執行指令碼

這裡說的非同步執行是讓php指令碼在後台掛起乙個執行具體操作的指令碼,主指令碼退出後,掛起的指令碼還能繼續執行。比如執行某些耗時操作或可以並行執行的操作,可以採用php非同步執行的方式。主指令碼和子指令碼的通訊可以採用外部檔案或memcached的方式。原理就是通過exec或system來執行乙個外...

php怎麼進行非同步程式設計,PHP如何實現非同步資料呼叫

瀏覽器和伺服器之間只有一種面向無連線的http協議進行通訊的,面向無連線的程式的特點是客戶端請求服務端,服務端根據請求返回相應的程式,不能保持持久連線。這樣就出現了乙個問題,乙個客戶端的相應服務端可能執行1秒也有可能執行1分鐘,這樣瀏覽器就會一直處於等待狀態,如果程式執行緩慢,使用者可能就沒耐心關掉...

深入PHP非同步執行的詳解

web伺服器執行乙個php指令碼,有時耗時很長才能返回執行結果,後面的指令碼需要等待很長一段時間才能繼續執行。如果想實現只簡單觸發耗時指令碼的執行而不等待執行結果就直接執行下一步操作,可以通過fscokopen函式來實現。php支援socket程式設計,fscokopen函式返回乙個到遠端主機連線的...