2012-02-09 17 views
-1

allow_url_fopenがオフになっているcdnサーバからイメージを取得するサイトでは、allow_url_fopen = offを意味しています。allow_url_fopen = offを使用してリモートサーバ上にイメージが存在することを確認してください

問題は、メインサイトでイメージを表示する前に、cdnサーバーのイメージの存在をチェックする必要があることです。イメージが存在する場合はそれ以外の場合は表示されます。

file_existsとfile_get_contentsは、allow_url_fopen = onを必要とするため、機能しません。

他の方法はありますか?

ご協力いただければ幸いです。

おかげ

+0

http://php.net/manual/en/function.fsockopen.php を与えられた[前に何度も言及したように](http://stackoverflow.com/search? q = allow_url_fopen + alternative)、代わりに、cURLが利用可能かどうかをチェックすることができます。そして、そうでない場合は、http://stackoverflow.com/questions/3880628/how-to-scrape-websites-when-curl-and-allow-url-fopen-is-disabledに記載されているソリューションを試す必要があります。 – Gordon

+0

cURLにアクセスできますか? – Crontab

+0

可能な複製[PHP、allow_url_fopenが無効になっているので、cURLを使用する必要があります](http://stackoverflow.com/questions/9071895/php-need-help-using-curl-as-allow-url-fopen-is-disabled ) – Gordon

答えて

0

あなたはcUrlを使用することができます。

$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($curl); 
if(empty($result)){die('No image');} 
+1

これは適切な方法ではありません。なぜなら、curl結果にhttpヘッダが含まれている可能性があるからです。httpヘッダのステータスコードをよく調べてください。 –

+0

'curl_exec'がヘッダを返すことはありません。ヘッダーを知っているので、 'curl_setopt($ ch、CURLOPT_HTTPHEADER、$ headers);を追加する必要があります。 ' – Narek

0

あなたはHTTPメソッドを介してファイルを取得するためにCURLライブラリを使用することができます。それが使用されている場合、ファイルが存在する場合はステータスコードが成功し、それ以外の場合はステータスコードが返されます。別のオプションは、fsockopenのようなソケットライブラリ関数を使用してそのサーバに接続し、それが有効になっている場合はFTP経由でファイルにアクセスすることです。例を挙げて

Goがhttp://php.net/manual/en/function.fsockopen.php

関連する問題