Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich asynchrone GET-Anfragen in PHP stellen?

Wie kann ich asynchrone GET-Anfragen in PHP stellen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-08 12:36:11389Durchsuche

How Can I Make Asynchronous GET Requests in PHP?

Asynchrone GET-Anfragen in PHP

Das Erstellen asynchroner GET-Anfragen in PHP ermöglicht eine effiziente Kommunikation mit externen Skripten, ohne den Hauptthread zu blockieren.

Verwenden file_get_contents()

Für GET-Anfragen, bei denen die Ausgabe nicht erforderlich ist, kann file_get_contents() verwendet werden:

$output = file_get_contents('http://www.example.com/');

Asynchrone Anfragen mit fsockopen()

Um asynchrone Anfragen zu stellen, ohne auf eine Antwort zu warten, können Sie verwenden fsockopen():

function make_async_get($url) {
    $parts = parse_url($url);
    $fp = fsockopen($parts['host'],
        isset($parts['port']) ? $parts['port'] : 80,
        $errno, $errstr, 30);
    
    $out = "GET ".$parts['path']." HTTP/1.1\r\n";
    $out.= "Host: ".$parts['host']."\r\n";
    $out.= "Connection: Close\r\n\r\n";
    
    fwrite($fp, $out);
    fclose($fp);
}

make_async_get('http://www.externalsite.com/script1.php?variable=45');

In diesem Beispiel wird der Socket geöffnet, die GET-Anfrage gesendet und der Socket sofort geschlossen, ohne die Antwort zu lesen.

Hinweis: Wenn Sie die Ausgabe der GET-Anfrage benötigen, sollten Sie die Verwendung von curl_post_async() in Betracht ziehen, wie in der referenzierten Lösung gezeigt.

Das obige ist der detaillierte Inhalt vonWie kann ich asynchrone GET-Anfragen in PHP stellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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