Làm cách nào để nhận tiêu đề phản hồi trong PHP?
Với phương thức Show
Chúng ta có thể sử dụng phương thức đầu ra
Với tùy chọn đầu ra ❮ Tham khảo mạng PHP Thí dụTrả về danh sách các tiêu đề phản hồi đã gửi setcookie("TestCookie","SomeValue"); var_dump(headers_list()); Đầu ra của đoạn mã trên có thể là mảng(4) Định nghĩa và cách sử dụngHàm headers_list() trả về danh sách các tiêu đề phản hồi sẽ được gửi tới trình duyệt Mẹo. Để xác định xem tiêu đề đã được gửi hay chưa, hãy sử dụng hàm headers_sent() cú phápchi tiết kỹ thuậtGiá trị trả về. Một mảng các tiêu đề được lập chỉ mục bằng số trên Phiên bản PHP thành công. 5. 0+❮ Tham khảo mạng PHP Nhận các tiêu đề phản hồi HTTP bằng cURL trong PHP không đơn giản. Không có cách tích hợp nào để thực hiện việc này, nhưng chúng tôi vẫn có thể cắt bỏ các tiêu đề khỏi thông báo phản hồi, nếu CURLOPT_HEADER là đúng 47086 lượt xem Bởi. Jacob Đã chỉnh sửa. 2021-04-12 11. 12 Khi máy chủ nhận được một yêu cầu HTTP, thông thường, một phản hồi sẽ được gửi lại cho máy khách và phản hồi của máy chủ thường sẽ bao gồm hai phần; Phần tiêu đề của phản hồi chứa tất cả các tiêu đề phản hồi, bao gồm cookie (nếu có) và thông tin về loại mime của nội dung. Nội dung phản hồi chứa nội dung, nội dung này phải khớp với loại của tôi trong tiêu đề. Ví dụ: các loại mime phổ biến có thể là văn bản/html cho trang HTML và văn bản/css cho Biểu định kiểu bên ngoài Để hiển thị các tiêu đề phản hồi cho một yêu cầu nhất định, chúng ta chỉ cần cắt bỏ các tiêu đề bằng cách sử dụng kết hợp các tùy chọn và chức năng. Một lời giải thích chi tiết hơn về điều này có sẵn trong phần tiếp theo của bài viết, dành cho những người quan tâm Một ví dụ đầy đủ nhanh chóng được bao gồm dưới đây $url = "https://beamtic.com/api/user-agent"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 1); $response = curl_exec($ch); // Retudn headers seperatly from the Response Body $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $headers = substr($response, 0, $header_size); $body = substr($response, $header_size); curl_close($ch); header("Content-Type:text/plain; charset=UTF-8"); echo $headers; echo $body; Ở trên sẽ xuất ra một cái gì đó như HTTP/1.1 200 OK date: Sun, 21 Feb 2021 12:11:57 GMT server: 0 cache-control: no-cache expires: -1 allow: GET, HEAD strict-transport-security: max-age=31536000; includeSubDomains vary: Accept-Encoding content-encoding: br x-frame-options: SAMEORIGIN content-length: 10252 content-type: text/html; charset=utf-8 Mã phản hồi luôn là dòng đầu tiên được trả về trong phần đầu phản hồi Lấy tiêu đề làm khóa. cặp giá trịNhư đã thảo luận trong bài viết về phân tích cú pháp các tiêu đề phản hồi trong PHP, chúng ta cũng có thể tạo một mảng kết hợp chứa khóa. cặp giá trị. Vì chúng tôi đã có các tiêu đề, chúng tôi có thể làm như thế này // Convert the $headers string to an indexed array $headers_indexed_arr = explode("\r\n", $headers); // Define as array before using in loop $headers_arr = array(); // Remember the status message in a separate variable $status_message = array_shift($headers_indexed_arr); // Create an associative array containing the response headers foreach ($headers_indexed_arr as $value) { if(false !== ($matches = explode(':', $value, 2))) { $headers_arr["{$matches[0]}"] = trim($matches[1]); } } // Show that it works header('content-type: text/plain; charset=utf-8'); print_r($headers_arr);exit(); Truy xuất các tiêu đề phản hồiKhông có cách tích hợp nào để chỉ trả về các tiêu đề phản hồi bằng cách sử dụng cURL trong PHP. Tuy nhiên, chúng ta vẫn có thể "cắt" chúng khỏi phản hồi đầy đủ. Để làm điều này, trước tiên chúng tôi xác định kích thước của tiêu đề phản hồi, sau đó chỉ cần cắt nó khỏi phản hồi bằng cách sử dụng hàm substr() Trước tiên, chúng tôi đặt tùy chọn CURLOPT_HEADER là true. Làm điều này sẽ bao gồm các tiêu đề trong phản hồi được tải xuống bởi cURL. Tiếp theo, chúng ta sẽ cần cắt bỏ các tiêu đề Sử dụng phương thức này, chúng ta có thể trả về cả phần thân và phần đầu của phản hồi. Tuy nhiên, trước khi tách các thành phần của phản hồi, chúng ta cần lấy kích thước của tiêu đề. Điều này có thể được thực hiện bằng cách sử dụng curl_getinfo() với tùy chọn CURLINFO_HEADER_SIZE, như hình bên dưới $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); Cuối cùng, chúng ta có thể sử dụng giá trị được trả về bởi curl_getinfo() với substr() để tách các tiêu đề khỏi thông báo phản hồi $headers = substr($response, 0, $header_size); $body = substr($response, $header_size); Tạo một mảng chứa mỗi tiêu đềĐể làm việc tốt hơn với các tiêu đề riêng lẻ, chúng ta nên đặt chúng trong một mảng. Các tiêu đề HTTP được phân tách bằng Trả về vận chuyển và Nguồn cấp dữ liệu theo dòng, còn được gọi là CRLF (Đôi khi còn được biểu thị là. [CR][LF]). Khi biết được điều này, chúng ta có thể tạo một mảng từ các tiêu đề thô bằng cách sử dụng hàm phát nổ PHP() $headers_arr = explode("\r\n", $headers); // The separator used in the Response Header is CRLF (Aka. \r\n) print_r($headers_arr); // Shows the content of the $headers_arr array Như bạn có thể thấy, chúng tôi cũng có một vài mục trống. Để loại bỏ chúng, chúng ta có thể truyền mảng cho hàm array_filter() ________số 8_______ Cuối cùng, chúng ta có thể dễ dàng làm việc trên mảng trong một vòng lặp $html = ''; foreach ($headers as &$value) { $html .= ' hoàn thành ví dụ // URL to fetch $url = "https://beamtic.com/"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, 1); $response = curl_exec($ch); // Retudn headers seperatly from the Response Body $header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $headers = substr($response, 0, $header_size); $body = substr($response, $header_size); curl_close($ch); $headers = explode("\r\n", $headers); // The seperator used in the Response Header is CRLF (Aka. \r\n) $headers = array_filter($headers); $html = ''; foreach ($headers as &$value) { $html .= ' Công cụ
Bạn có thể sử dụng các điểm cuối API sau cho mục đích thử nghiệm https://beamtic.com/api/user-agent HTTP/1.1 200 OK date: Sun, 21 Feb 2021 12:11:57 GMT server: 0 cache-control: no-cache expires: -1 allow: GET, HEAD strict-transport-security: max-age=31536000; includeSubDomains vary: Accept-Encoding content-encoding: br x-frame-options: SAMEORIGIN content-length: 10252 content-type: text/html; charset=utf-80 Chia sẻ với bạn bè của bạnHướng dẫn tuyệt vời, cảm ơn Xin chào, Đây là một bài viết hữu ích. Tôi đã đóng gói rất nhiều mã này vào một chức năng mà tôi đang sử dụng trong nhiều tập lệnh dòng lệnh trên Mac cho một số mục đích tại nơi làm việc. Thanks Làm cách nào để kiểm tra tiêu đề từ phản hồi trong PHP?Điều này có thể được thực hiện với tham số CURLINFO_HEADER_SIZE trong hàm curl_getinfo() , hàm này sẽ cho chúng tôi biết độ dài của tiêu đề và chúng tôi có thể .
Làm cách nào để lấy tiêu đề trong PHP?Hàm get_headers() trong PHP được sử dụng để tìm nạp tất cả các tiêu đề do máy chủ gửi theo phản hồi của một yêu cầu HTTP. . $url. Nó là tham số bắt buộc của kiểu string. . định dạng $. Nó là một tham số tùy chọn kiểu int Làm cách nào để đặt tiêu đề phản hồi trong PHP?Dành cho phiên bản PHP 4. 0. Để gửi mã phản hồi HTTP, chúng tôi cần tập hợp mã phản hồi. Để đạt được điều này, hãy sử dụng hàm header() . Hàm header() chứa trường hợp sử dụng đặc biệt có thể phát hiện dòng phản hồi HTTP và thay thế bằng dòng tùy chỉnh. tiêu đề ("HTTP/1. 1 404 Không tìm thấy" );
Tiêu đề phản hồi HTTP trong PHP là gì?Giải thích bằng cú pháp. Tiêu đề trong PHP là hàm PHP tích hợp để gửi tiêu đề HTTP thô . Các chức năng HTTP là những chức năng thao tác thông tin do máy chủ web gửi đến máy khách hoặc trình duyệt trước khi nó gửi thêm bất kỳ đầu ra nào. Hàm header() trong PHP gửi tiêu đề HTTP thô tới máy khách hoặc trình duyệt. |