Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Melaksanakan Permintaan GET Asynchronous dalam PHP?

Bagaimanakah Saya Boleh Melaksanakan Permintaan GET Asynchronous dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-05 12:50:10831semak imbas

How Can I Perform Asynchronous GET Requests in PHP?

Permintaan GET Asynchronous dalam PHP: Panduan Terperinci

Pengenalan

Melaksanakan permintaan GET tak segerak dalam PHP membenarkan skrip anda untuk memulakan permintaan ke pelayan jauh tanpa menyekat arus aliran pelaksanaan. Ini sangat berfaedah untuk aplikasi web yang perlu menghantar banyak permintaan tanpa menghentikan interaksi pengguna.

Menggunakan file_get_contents() untuk Permintaan Asynchronous

file_get_contents() adalah terbina- dalam fungsi PHP yang boleh digunakan untuk kedua-dua permintaan GET segerak dan tak segerak. Secara lalai, ia berkelakuan serentak, menyekat skrip sehingga permintaan selesai. Walau bagaimanapun, menyediakan hujah konteks pilihan membenarkan operasi tak segerak.

  • Permintaan Segerak:

    $output = file_get_contents('http://www.example.com/');
    echo $output;
  • Permintaan Tak Segerak:

    $context = stream_context_create([
      'http' => [
          'ignore_errors' => true
      ]
    ]);
    
    $output = file_get_contents('http://www.example.com/', false, $context);

Menggunakan fsockopen() untuk Permintaan Truly Asynchronous

Untuk situasi di mana kelakuan tak segerak bagi file_get_contents() adalah tidak diingini, fsockopen() menawarkan pendekatan peringkat rendah untuk mencapai ketidaksegerakan sebenar. Fungsi ini membenarkan komunikasi soket terus.

  • Permintaan Asynchronous Menggunakan fsockopen():

    function curl_post_async($url)
    {
      // 1. Parse URL
      $parts = parse_url($url);
    
      // 2. Open Socket
      $fp = fsockopen($parts['host'],
          isset($parts['port']) ? $parts['port'] : 80,
          $errno, $errstr, 30);
    
      // 3. Construct Request
      $out = "GET " . $parts['path'] . " HTTP/1.1\r\n";
      $out .= "Host: " . $parts['host'] . "\r\n";
      $out .= "Connection: Close\r\n\r\n";
    
      // 4. Send Request and Close Socket
      fwrite($fp, $out);
      fclose($fp);
    }

Fungsi ini menyalakan permintaan GET serta-merta , tanpa menunggu jawapan, dan mengembalikan kawalan kepada pemanggil. Adalah penting untuk ambil perhatian bahawa menggunakan fsockopen() memerlukan pendekatan yang lebih praktikal berbanding dengan file_get_contents().

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Permintaan GET Asynchronous dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn