Heim > Backend-Entwicklung > PHP-Tutorial > Asynchrone Ausführung der PHP-Aufgabe fsockopen

Asynchrone Ausführung der PHP-Aufgabe fsockopen

coldplay.xixi
Freigeben: 2023-04-08 19:16:01
nach vorne
2407 Leute haben es durchsucht

Asynchrone Ausführung der PHP-Aufgabe fsockopen

Praktische Methode für PHP, um die Aufgabe fsockopen asynchron auszuführen

Hier haben wir eine Funktion basierend auf fsockopen erstellt Funktion Verwenden Sie fsockopen, um auf die URL zuzugreifen. Beim Zugriff ist es jedoch nicht erforderlich, den in der URL angezeigten Inhalt abzurufen, sondern stellt lediglich eine Zugriffsanforderung aus und der Zugriff wird sofort nach Eintreffen der Anforderung geschlossen.

Der Vorteil besteht darin, dass nicht darauf gewartet werden muss, dass die besuchte URL zuverlässige Informationen zurückgibt, was Zeit spart. Für normale Besucher beträgt die Ausführungszeit zwischen 0,1 und 0,2 Sekunden fast nicht wahrnehmbar. Wenn Sie es verwenden, müssen Sie daher nur diese Funktion und die entsprechende URL aufrufen. Hier wird jedoch kein Teil zur Datenübertragung bereitgestellt. Tatsächlich müssen Sie nur den Beitragsinhalt zum $header hinzufügen.

/**
 * @生生 2018/12/24 19:25:06
 * [asynchronous PHP异步执行任务]
 * @param  string $url       执行任务的url地址
 * @param  array  $post_data 需要post提交的数据POST
 * @param  array  $cookie    cookie数据用于登录等的设置(此处内部调用,无需鉴权)
 * @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)<br />\n";
    } else {
        //建立成功后,向服务器写入数据 
        $getPath = isset($url_array[&#39;path&#39;]) ? $url_array[&#39;path&#39;] : &#39;/&#39;;
        $out = "GET /".$getPath."/ HTTP/1.1\r\n";
        $out .= "Host:".$url_array[&#39;host&#39;]."\r\n";
        $out .= "Connection: Close\r\n\r\n";
       
        fwrite($fp, $out);
        /*忽略执行结果
        while (!feof($fp)) {
            echo fgets($fp, 128);
        }*/
        //关闭链接
        fclose($fp);
    }
}
Nach dem Login kopieren

Aufrufmethode

/**
*  异步方法
*  参数:(string)要执行的方法url,(array)传入参数
*/
function yibu(){
    $this->asynchronous(&#39;https://www.liqingbo.cn/index.php/admin/index/test&#39;,[&#39;1&#39;=>&#39;haha&#39;]);
    //直接返回结果
    echo &#39;操作成功&#39;;
}
Nach dem Login kopieren

Empfohlenes Tutorial: „PHP Video Tutorial

Das obige ist der detaillierte Inhalt vonAsynchrone Ausführung der PHP-Aufgabe fsockopen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:liqingbo.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage