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
Lepaskan: 2024-12-05 12:50:10
asal
830 orang telah melayarinya

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;
    Salin selepas log masuk
  • Permintaan Tak Segerak:

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

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);
    }
    Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan