2011-07-12 32 views
5

Tôi đang sử dụng fopen để tạo nguồn cấp dữ liệu giá.Cách dừng fopen khỏi cảnh báo kích hoạt khi cố gắng mở URI không hợp lệ/không thể truy cập

if (($handle = fopen("http://feedurl", "r")) !== FALSE) { 

} 

Có cách nào để ngăn chặn cảnh báo này nếu thức ăn không:

Cảnh báo: fopen() [function.fopen]: php_network_getaddresses: getaddrinfo thất bại: Tên hoặc dịch vụ không được biết đến ở ...

Trả lời

13

Bạn có thể sử dụng @ để ngăn chặn các cảnh báo:

if(($handle = @fopen("http://feedurl", "r")) !== FALSE){ 

} 

Điều này phù hợp ở đây bạn đang xử lý tình trạng lỗi một cách thích hợp. Lưu ý rằng việc sử dụng tự do ký hiệu @, nói chung, để ngăn chặn các lỗi và cảnh báo không được thông báo.

mỗi sự manual entry for fopen:

Nếu mở thất bại, lỗi của mức E_WARNING được tạo ra. Bạn có thể sử dụng @ để chặn cảnh báo này.

+0

Nhờ Đánh dấu rằng hoạt động tuyệt vời! Tôi không thể tin rằng mọi người phản ứng nhanh như thế nào với các câu hỏi trên stackoverflow! –

+0

Nó cũng loại bỏ tất cả các đầu ra khác –

-1

Hoặc bạn có thể sử dụng

error_reporting(E_ALL^E_WARNING); 
+1

Tại sao bạn muốn ẩn tất cả cảnh báo cho tất cả các hàm được thực hiện trong tập lệnh đó? –

2

đây là một giải pháp khả thi

$file_name = "http://feedurl"; 
if (file_exists($file_name) === false) { 
    return; 
} 
$handle = fopen($file_name, "r"); 
Các vấn đề liên quan