Tôi biết rằng có ít nhất 10 câu hỏi giống nhau với câu trả lời nhưng không ai trong số họ có vẻ làm việc cho tôi một cách hoàn hảo. Tôi đang cố gắng kiểm tra xem hình ảnh bên trong hay bên ngoài có tồn tại (URL hình ảnh có hợp lệ không?).Cách PHP đúng để kiểm tra xem hình ảnh bên ngoài có tồn tại không?
fopen($url, 'r')
thất bại trừ khi tôi sử dụng@fopen()
:Warning: fopen(http://example.com/img.jpg) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in file.php on line 21
getimagesize($img)
không thành công khi hình ảnh không tồn tại (PHP 5.3.8):Warning: getimagesize() [function.getimagesize]: php_network_getaddresses: getaddrinfo failed
- CURL thất bại vì nó isn' t được hỗ trợ bởi một số máy chủ (mặc dù nó hiện diện chủ yếu ở khắp mọi nơi).
fileExists()
không thành công do không hoạt động với URL bên ngoài và không thể kiểm tra xem chúng tôi có đang xử lý hình ảnh hay không.
Bốn phương pháp là câu trả lời phổ biến nhất cho câu hỏi đó là sai. Điều gì sẽ là cách chính xác để làm điều đó?
cURL là câu trả lời đúng. Nếu nó không được máy chủ của bạn hỗ trợ, hãy cấu hình nó. – Brad
@Bard Tôi đang phát triển các chủ đề WP - Tôi không thể yêu cầu mọi người cấu hình điều đó. Nó phải làm việc ra khỏi hộp cho tất cả mọi người. – Atadj
Tất cả các phương pháp khác của bạn sẽ thất bại nếu url fopen bị tắt, do đó bạn không đạt được bất kỳ thứ gì. –