Dieser Artikel stellt hauptsächlich die Methode der asynchronen Ausführung von Skripten durch PHP-Programmierung vor und analysiert die asynchronen Aufruf- und Ausführungsfähigkeiten von Skripten, die von PHP mithilfe von fsockopen() implementiert werden, in Form von Beispielen
Die Details lauten wie folgt:
PHP-Sprache muss die Funktion fsockopen()
verwenden, um die asynchrone Ausführung des Skripts zu implementieren. Der Code lautet wie folgt:
Asynchrone Anforderungsfunktion (wenn die Der Debug-Parameter ist wahr, er wird zum Debuggen verwendet. Sehen Sie sich die asynchrone Ausführung an, verlieren Sie jedoch den asynchronen Effekt)
main.php
<?php function request_by_fsockopen($url,$post_data=array(),$debug=false){ $url_array = parse_url($url); $hostname = $url_array['host']; $port = isset($url_array['port'])? $url_array['port'] : 80; @$requestPath = $url_array['path'] ."?". $url_array['query']; $fp = fsockopen($hostname, $port, $errno, $errstr, 10); if (!$fp) { echo "$errstr ($errno)"; return false; } $method = "GET"; if(!empty($post_data)){ $method = "POST"; } $header = "$method $requestPath HTTP/1.1\r\n"; $header.="Host: $hostname\r\n"; if(!empty($post_data)){ $_post = strval(NULL); foreach($post_data as $k => $v){ $_post[]= $k."=".urlencode($v);//必须做url转码以防模拟post提交的数据中有&符而导致post参数键值对紊乱 } $_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{ $header.="Connection: Close\r\n\r\n";//长连接关闭 } fwrite($fp, $header); //-----------------调试代码区间----------------- //注如果开启下面的注释,异步将不生效可是方便调试 if($debug){ $html = ''; while (!feof($fp)) { $html.=fgets($fp); } echo $html; } //-----------------调试代码区间----------------- fclose($fp); } $data=array('name'=>'guoyu','pwd'=>'123456'); $url='http://localhost/test/other.php'; request_by_fsockopen($url,$data,true);//
other.php
<?php header("content-type:text/html;charset=utf-8"); //error_reporting(0); //ini_set('html_errors',false); //ini_set('display_errors',false); $name = isset($_POST['name'])?$_POST['name']:''; $pwd = isset($_POST['pwd'])?$_POST['pwd']:''; echo $name.$pwd; echo 'success ok'; die; ?>
Verwendungsbeispiel:
[main.php-Hauptskriptdatei wird ausgeführt]
$data=array('name'=>'guoyu','pwd'=>'123456'); $url='http://localhost/test/other.php'; request_by_fsockopen($url,$data,true);//把应用B的用户表异步-同步数据
[Anleitung zur Ausführungsdatei other.php]
In other.php können Sie $_POST verwenden, um die von main.php übermittelten Parameter zu empfangen Fahren Sie mit dem nächsten Schritt fort
PHP-Sprache implementiert Skript asynchron Ausführung
PHP-SprachimplementierungSkript asynchronAusführung_PHP-Tutorial
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die asynchrone Ausführung von Skripten in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!