2013-06-02 36 views
6

Theo như tôi có thể biết, apache_request_headers() cung cấp thông tin giống như $_SERVER, nhưng có các phím hơi khác nhau. Tại sao một người nào đó nên sử dụng apache_request_headers() và không chỉ nhận được thông tin này từ $_SERVER? Tôi đang vận hành PHP 5.3.18 với Apache trên CentOS. Cảm ơn bạn

EDIT. dữ liệu giống hệt nhau từ $_SERVERapache_request_headers()

Jun 2 08:50:53 localhost httpd: HTTP_HOST: www.badobe.com 
Jun 2 08:50:53 localhost httpd: Host: www.badobe.com 
Jun 2 08:50:53 localhost httpd: HTTP_USER_AGENT: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 
Jun 2 08:50:53 localhost httpd: User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 
Jun 2 08:50:53 localhost httpd: HTTP_ACCEPT: */* 
Jun 2 08:50:53 localhost httpd: Accept: */* 
Jun 2 08:50:53 localhost httpd: HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.5 
Jun 2 08:50:53 localhost httpd: Accept-Language: en-US,en;q=0.5 
Jun 2 08:50:53 localhost httpd: HTTP_ACCEPT_ENCODING: gzip, deflate 
Jun 2 08:50:53 localhost httpd: Accept-Encoding: gzip, deflate 
Jun 2 08:50:53 localhost httpd: HTTP_REFERER: http://www.badobe.com/demo/administrator/index.php?cid=3 
Jun 2 08:50:53 localhost httpd: Referer: http://www.badobe.com/demo/administrator/index.php?cid=3 
Jun 2 08:50:53 localhost httpd: HTTP_COOKIE: PHPSESSID=feg3ecd4rsefvd03mgg6qear21 
Jun 2 08:50:53 localhost httpd: Cookie: PHPSESSID=feg3ecd4rsefvd03mgg6qear21 
Jun 2 08:50:53 localhost httpd: HTTP_CONNECTION: keep-alive 
Jun 2 08:50:53 localhost httpd: Connection: keep-alive 
Jun 2 08:50:53 localhost httpd: HTTP_IF_MODIFIED_SINCE: Sun, 02 Jun 2013 15:48:42 GMT 
Jun 2 08:50:53 localhost httpd: If-Modified-Since: Sun, 02 Jun 2013 15:48:42 GMT 
Jun 2 08:50:53 localhost httpd: HTTP_CACHE_CONTROL: max-age=0 
Jun 2 08:50:53 localhost httpd: Cache-Control: max-age=0 

Trả lời

3

tôi đoán chức năng này chỉ hoạt động với Apache. nhưng đó chỉ là một đoán hoang dã

hơn nữa tôi sẽ đoán hàm trả về TẤT CẢ các phần đầu, nơi tôi nghĩ $ _SERVER chứa một bộ được xác định trước các tiêu đề

2

apache_request_headers() lợi nhuận một mảng kết hợp của tất cả các tiêu đề HTTP trong yêu cầu hiện nay, nơi như $_SERVER cho nhiều hơn thế

  • chi tiết tiêu đề
  • con đường chi tiết
  • vị trí tập lệnh
+0

Cảm ơn Starx. Có điều gì khác biệt hoặc mới trong 'apache_request_headers()' không có trong '$ _SERVER'? – user1032531

+0

@ user1032531, Vui lòng kiểm tra cập nhật của tôi. – Starx

+0

Cảm ơn một lần nữa Starx. Nhưng không phải là 'apache_request_headers()' dư thừa? Xem bài đăng gốc đã chỉnh sửa của tôi. Nó cung cấp thông tin gì mới? Ngoài ra, nó là vi mô chậm hơn so với chỉ truy cập vào mảng $ _SERVER? – user1032531

2

apache_request_headers là không (hoàn toàn) di động, và $_SERVER là không trọn vẹn đầy đủ . Đặc biệt nhất $_SERVER không bao giờ chứa bất kỳ tiêu đề Authorization nào, cho dù PHP có thể xử lý giá trị của nó nội bộ hay không.

Kể từ khi 5.4.0 apache_request_headers được vá cũng hiển thị tất cả các tiêu đề trong triển khai CGI.

Các vấn đề liên quan