PHP 5.3 değişiklik yapar yol çalışmaları file_get_contents?

1 Cevap php

Ben PHP'nin ile tek bir sorun yaşıyorum file_get_contents.

Geçmişte, file_get_contents, bir uzak dosya bakılmaksızın HTTP durum kodu döndürdü bu dosyanın metni döndürür. Ben bir API vurmak ve 500 bir statü ile JSON hata bilgileri geri gönderirse, file_get_contents bana verir JSON (bir hata kodu ile karşılaşıldı olduğuna dair hiçbir gösterge ile) olduğunu.

Ben sadece PHP 5.3 için ilk Ubuntu Ubuntu 10.04 sunucu kurdum. Bunun yerine bana JSON veren bir 500 hata mevcut olduğunda, PHP bir uyarı atar. Sonuç olarak, ben JSON ayrıştırmak ve güzel bir hata mesajı veremez.

PHP uzak dosyasında bir hata var fark olduğu güzel, ama ben need JSON bile (especially!) 500 hata varsa. Bu kapatmak için herhangi bir yol var gibi görünmüyor. Herkes bu karşılaştı? Herhangi bir ipucu?

1 Cevap

Sen file_get_contents uygun bir akım bağlamı (kullanarak sağlayarak kullanırken akışı hataları görmezden PHP söyleyebilir true ayarlandığında stream_context_create ) with the ignore_errors seçeneği.

$context = stream_context_create(array('http'=>array('ignore_errors'=>true)));
$contents = file_get_contents($url, FALSE, $context);

Ayrıca durum kodu da dahil olmak üzere tepki başlıkları, için $http_response_header peek olabilir.