2011-01-05 40 views
8

Vấn đề này dường như đã được thảo luận trong quá khứ ở khắp mọi nơi trên google và tại đây, nhưng tôi vẫn chưa tìm được giải pháp.PHP5 không gửi được luồng: Lỗi yêu cầu HTTP không thành công khi sử dụng fopen

Một fopen rất đơn giản mang lại cho tôi một Cảnh báo

PHP: fopen (http://www.google.ca): thất bại trong việc mở dòng: HTTP yêu cầu không thành"

URL Tôi lấy không có tầm quan trọng. bởi vì ngay cả khi tôi lấy http://www.google.com nó không hoạt động, chính kịch bản này cũng hoạt động trên một máy chủ khác nhau, một lỗi không phải là Ubuntu 10.04 và PHP 5.3.2.Đây không phải là vấn đề trong kịch bản của tôi. một lỗi trong PHP.

Tôi đã thử sử dụng user_agent trong php.ini nhưng không thành công. Allow_url_fopen của tôi được đặt thành Bật.

Nếu bạn có bất kỳ ý tưởng nào, hãy thoải mái!

+0

Bạn có thể thực hiện 'wget http: // www.google.ca' từ dòng lệnh không? Có phải 'fopen()' không đưa ra bất kỳ thông tin lỗi nào khác không? –

+0

bạn có thể làm fopen ('173.194.43.104') không? (Đó là ip của google.ca) có lẽ DSN không thể truy cập được bằng PHP trên máy chủ đó? –

+0

@Pekka có, tôi có thể tìm nạp không vấn đề theo cách này – mickey

Trả lời

9

Có vẻ như cấu hình của bạn không được phép sử dụng chức năng tập tin, mà là phổ biến những ngày này vì lo ngại về bảo mật. Nếu bạn có các thư viện cURL có sẵn cho bạn, tôi khuyên bạn nên thử các thư viện đó.

PHP: cURL

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://www.google.ca/"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$file = curl_exec($ch); 
curl_close($ch); 

echo $file; 
+0

xem chú thích ở trên – mickey

+0

Tạo tệp thử nghiệm PHP bằng dòng 'phpinfo();'. Tìm kiếm "curl" và xem liệu nó có được bật hay không. –

+0

Ok Tôi thấy bạn đã chỉnh sửa bài đăng của mình, phiên bản đó đang hoạt động, tôi sẽ thử nó trong tập lệnh của mình. – mickey

1

Tôi không hoàn toàn chắc chắn về việc liệu đây là vấn đề hay không, nhưng tôi biết trong quá khứ tôi đã có vấn đề với việc mở URL với fopen, thường do php. ini allow_url_fopen hoặc các cài đặt bảo mật không xác định khác

Bạn có thể muốn thử cURL trong PHP, thường hoạt động cho tôi, bạn sẽ tìm thấy một ví dụ thực sự dễ dàng bằng cách googling điều đó.

+0

Tôi đã thử php-curl và tôi nhận được lỗi chính xác tương tự. – mickey

+0

Chính xác? Lạ thật. Curl_error() cung cấp những gì? http://uk.php.net/manual/en/function.curl-error.php – Adam

0

Kiểm tra kết quả phpinfo của bạn - là http có dưới Registered PHP Streams?

+0

https, ftps, compress.zlib, compress.bzip2, php, tệp, glob, dữ liệu, http, ftp, phar, zip – mickey

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