PHP非同期要求
4393 ワード
通常、PHPは同期要求であり、スクリプトは右上から順に実行され、次の操作を行うには、前の要求が完了するまで待たなければならない.この効率は、メールの送信などの操作は、非同期で処理できる場合がある.
PHP非同期も多くのプラグインがありますが、オリジナルのPHP関数、fsockopen()、関数httpリクエスト、socketを変更することができます.
この関数の公式サイトのマニュアルはすでに例を提供して、私は私の最適化したコードを貼って、httpを使っています.
転載先:https://www.cnblogs.com/IT--Loding/p/9063568.html
PHP非同期も多くのプラグインがありますが、オリジナルのPHP関数、fsockopen()、関数httpリクエスト、socketを変更することができます.
この関数の公式サイトのマニュアルはすでに例を提供して、私は私の最適化したコードを貼って、httpを使っています.
public function dealdata(Request $request)
{
$url = 'http://test.com/demo/index/temp';
$param = [
'param1'=>'name',
'param2'=>'value'
];
$this->syncRequest($url, $param);
}
public function syncRequest($url, $param=array(),$timeout =10)
{
$urlParmas = parse_url($url);
$host = $urlParmas['host'];
$path = $urlParmas['path'];
$port = isset($urlParmas['port'])? $urlParmas['port'] :80;
$errno = 0;
$errstr = '';
$fp = fsockopen($host, $port, $errno, $errstr, $timeout);
// stream_set_blocking($fp,0);
$query = isset($param)? http_build_query($param) : '';
$out = "POST ".$path." HTTP/1.1\r
";
$out .= "host:".$host."\r
";
$out .= "content-length:".strlen($query)."\r
";
$out .= "content-type:application/x-www-form-urlencoded\r
";
$out .= "connection:close\r
\r
";
$out .= $query;
fputs($fp, $out);
fclose($fp);
}
転載先:https://www.cnblogs.com/IT--Loding/p/9063568.html