PHP ialah bahasa skrip yang biasa digunakan untuk pembangunan web. Dalam pembangunan web, protokol HTTP adalah bahagian penting. Untuk pembangun PHP, mengetahui cara menghantar permintaan HTTP dan mengendalikan respons HTTP adalah salah satu kemahiran yang diperlukan. Dalam artikel ini, kami akan membincangkan permintaan HTTP dan pengendalian respons dalam PHP.
Dalam PHP, anda boleh menggunakan curl atau file_get_contents untuk menghantar permintaan HTTP.
1.1 curl
curl ialah alat sumber terbuka untuk menghantar data dan menyokong berbilang protokol. Dalam PHP, anda boleh menggunakan perpustakaan curl untuk menghantar permintaan HTTP. Berikut ialah contoh curl menghantar permintaan HTTP GET:
$url = 'http://example.com/api/get_user_info?user_id=123'; // 请求地址 $ch = curl_init(); // 初始化curl对象 curl_setopt($ch, CURLOPT_URL, $url); // 设置请求地址 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行curl_exec后不直接输出结果,而是返回给变量 curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间为10秒 $result = curl_exec($ch); // 执行请求,获取结果 curl_close($ch); // 关闭curl对象
Dalam kod di atas, objek curl dicipta melalui curl_init(), parameter seperti alamat permintaan dan masa tamat masa ditetapkan dan akhirnya curl_exec () digunakan untuk menghantar permintaan dan mendapatkan hasil. Jika anda perlu menghantar permintaan POST, anda perlu menetapkan parameter CURLOPT_POST dan tetapkan parameter CURLOPT_POSTFIELDS untuk lulus parameter permintaan POST.
1.2 file_get_contents
file_get_contents ialah fungsi yang disediakan oleh PHP yang boleh mendapatkan kandungan fail tertentu. Apabila fail yang kami tentukan ialah URL, kami boleh menggunakan fungsi ini untuk menghantar permintaan HTTP. Berikut ialah contoh file_get_contents menghantar permintaan HTTP GET:
$url = 'http://example.com/api/get_user_info?user_id=123'; // 请求地址 $context = stream_context_create(array('http' => array('timeout' => 10))); // 设置请求超时时间为10秒 $response = file_get_contents($url, false, $context); // 发送请求,获取结果
Dalam kod di atas, aliran konteks dicipta melalui fungsi stream_context_create(), yang menetapkan tamat masa untuk permintaan HTTP. Kemudian gunakan fungsi file_get_contents() untuk menghantar permintaan HTTP dan mendapatkan hasil respons.
Selepas menghantar permintaan HTTP, kami perlu memproses respons. Respons HTTP merangkumi dua bahagian: pengepala respons dan badan respons. Pengepala respons mengandungi beberapa maklumat metadata yang dikembalikan oleh pelayan, seperti kod respons, masa tindak balas, jenis respons, dsb. Badan tindak balas ialah kandungan pulangan khusus.
2.1 Memproses pengepala respons
Dalam PHP, anda boleh menggunakan fungsi get_headers() untuk mendapatkan pengepala respons HTTP. Berikut ialah contoh menggunakan fungsi get_headers() untuk mendapatkan pengepala respons:
$url = "http://example.com"; // 请求地址 $headers = get_headers($url, 1); // 获取HTTP响应头 print_r($headers); // 输出响应头
Dalam kod di atas, fungsi get_headers() digunakan untuk mendapatkan pengepala respons HTTP bagi alamat permintaan, simpan hasilnya dalam pembolehubah $headers, dan keluarkan pembolehubah .
2.2 Memproses badan tindak balas
Dalam PHP, anda boleh menggunakan fungsi curl atau file_get_contents untuk mendapatkan badan respons HTTP.
2.2.1 curl
Proses menggunakan curl untuk mendapatkan badan respons HTTP adalah serupa dengan menghantar permintaan HTTP Hanya tetapkan parameter CURLOPT_RETURNTRANSFER kepada 1. Berikut ialah contoh menggunakan curl untuk mendapatkan badan respons HTTP:
$url = 'http://example.com/'; // 请求地址 $ch = curl_init(); // 初始化curl对象 curl_setopt($ch, CURLOPT_URL, $url); // 设置请求地址 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // 执行curl_exec后不直接输出结果,而是返回给变量 curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时时间为10秒 $response = curl_exec($ch); // 执行请求,获取结果 curl_close($ch); // 关闭curl对象
Dalam kod di atas, curl digunakan untuk mendapatkan badan respons HTTP alamat permintaan, dan hasilnya disimpan dalam pembolehubah $ tindak balas.
2.2.2 file_get_contents
Menggunakan fungsi file_get_contents untuk mendapatkan badan respons HTTP adalah serupa dengan semasa menghantar permintaan HTTP Anda hanya perlu menggunakan alamat permintaan secara langsung sebagai parameter fungsi . Berikut ialah contoh menggunakan fungsi file_get_contents untuk mendapatkan badan respons HTTP:
$url = 'http://example.com/'; // 请求地址 $context = stream_context_create(array('http' => array('timeout' => 10))); // 设置请求超时时间为10秒 $response = file_get_contents($url, false, $context); // 发送请求,获取结果
Dalam kod di atas, fungsi file_get_contents() digunakan untuk mendapatkan badan respons HTTP bagi alamat permintaan, dan hasilnya disimpan dalam pembolehubah $respons.
Ringkasan:
Protokol HTTP ialah bahagian penting dalam pembangunan web. Dalam PHP, anda boleh menggunakan fungsi curl atau file_get_contents untuk menghantar permintaan HTTP dan mendapatkan hasil respons. Setelah hasil respons HTTP diperoleh, anda boleh menggunakan fungsi get_headers() untuk mendapatkan pengepala respons dan fungsi curl atau file_get_contents untuk mendapatkan badan respons. Kemahiran dalam permintaan HTTP dan pemprosesan tindak balas adalah kemahiran yang diperlukan untuk pembangunan PHP.
Atas ialah kandungan terperinci Permintaan HTTP dan pemprosesan tindak balas dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!