2012-10-21 11 views
5

Các mã sau đây:Tại sao không curl gửi tiêu đề của tôi trong PHP?

$ch = curl_init('http://localhost/testweb/search.php'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
     'Accept-Encoding gzip, deflate', 
     'Accept-Language en-US,en;q=0.5', 
     'Connection keep-alive', 
     'SomeBull BeingIgnored', 
     'Cookie CLASSICPAGE=off', 
     'User-Agent Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0' 
     )); 
$response = curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 
$body = substr($response, -$info['download_content_length']); 
echo $body; 

có sau đầu ra (php.exe mycurl.php):

Host: localhost 
Accept: */* 
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv: 16.0) Gecko/20100101 Firefox/16.0 

Các search.php trên localhost:

error_reporting(0); 
header("Content-Type: text/plain"); 
foreach (getallheaders() as $name => $value) { 
    echo "$name: $value\n"; 
} 

Câu hỏi của tôi là : những gì đã xảy ra với các tiêu đề tôi đặt?

+0

Tại sao bạn muốn tắt báo cáo lỗi khi đang gỡ lỗi ????? – goat

+0

Đây là một ứng dụng dòng lệnh, mã trang web PHP là từ một ứng dụng khác và tôi chỉ mượn trang đó để kiểm tra xem tiêu đề nào đã được gửi đi., Dòng tiếp theo đã chết (0) – HMR

Trả lời

16

Headers là trong định dạng:

Header: value 

dụ bạn thiếu ruột kết trên mỗi tiêu đề. Chỉ cần điều chỉnh nó như vậy:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 
    'Accept-Encoding: gzip, deflate', 
    'Accept-Language: en-US,en;q=0.5', 
    'Connection: keep-alive', 
    'SomeBull: BeingIgnored', 
    'User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0' 
) 
); 
+0

Chỉ thấy rằng, đã sao chép và dán tiêu đề từ bảng điều khiển mạng firebug và chỉ nhận thấy rằng: đã bị thiếu. – HMR