Tôi muốn gửi lệnh HEAD của Giao thức truyền siêu văn bản tới máy chủ trong PHP để truy xuất tiêu đề chứ không phải nội dung hoặc URL. Làm thế nào để tôi làm điều này một cách hiệu quả?Cách dễ nhất để sử dụng lệnh HEAD của HTTP trong PHP là gì?
Trường hợp sử dụng phổ biến nhất có thể là kiểm tra các liên kết web đã chết. Đối với điều này tôi chỉ cần mã trả lời của yêu cầu HTTP chứ không phải nội dung trang. Bắt các trang web trong PHP có thể được thực hiện dễ dàng bằng cách sử dụng file_get_contents("http://...")
, nhưng với mục đích kiểm tra các liên kết, điều này thực sự không hiệu quả vì nó tải toàn bộ nội dung trang/hình ảnh/bất cứ điều gì.
Tôi thích giải pháp này so với các giải pháp sử dụng curl, vì tôi thích sử dụng các chức năng tích hợp sẵn. Có lẽ ai đó khác có thể bình luận về hiệu suất của từng khả năng? – fuenfundachtzig
Lưu ý rằng điều này sẽ gây ra lỗi cho mã phản hồi '401', trong khi curl cung cấp cho bạn phản hồi thực tế. –
'stream_context_create()' cũng có thể được sử dụng với 'file_get_contents()'. Có thể 'get_headers()' được kết hợp tốt hơn với 'stream_context_set_default()' vào phương thức của yêu cầu tới
HEAD
. Xem http://php.net/manual/es/function.get-headers.php – cybmeta