2016-05-30 4 views
0

リモートURL画像でgetimagesizeを実行する際に、私のサーバにいくつか問題があります。例えばPHPのgetimagesizeが外部リンクで動作しない

私は自分のローカルサーバ上でこのコードを実行する場合、それは正常に動作してOKを返します。

<?php 
$file = 'http://inspiring-photography.com/wp-content/uploads/2012/04/Culla-bay-rock-formations-Isle-of-Uist.jpg'; 
$pic_size = getimagesize($file); 
if (empty($pic_size)) 
{ 
    die('FALSE'); 
} 
die('OK'); 

?> 

しかし、私は自分のサーバー上で同じコードを実行する場合、私はそれが正常に動作することはできません。どの設定を有効にするかを決定するのに役立つことができますか?私はこれらのいくつかが関与している可能性があると思わ

  1. mod_securityの
  2. セーフモード

allow_url_fopenをあなたはこれを解決取得する権利の設定を決定する際に私を助けることができますか?

ありがとうございます。

+0

@RiggsFolly申し訳ありませんが、何? *私のサーバー私は正常に動作させることはできません*サーバーはおそらく他のウェブサイトへのアクセスをブロックします。実際のエラーメッセージを表示するには、エラー報告を有効にする必要があります。 –

+2

エラーについての質問をすると、**常にエラーログがポストされます。あなたのPHPコードへのエラー報告を有効にするには、 'error_reporting(E_ALL);を追加します。 ini_set( 'display_errors'、 '1'); 'スクリプトの先頭には何が返されますか? –

+0

マニュアルのような音は、読み込まれていないか、理解されていないか、手紙に従っていないかのいずれかです。 –

答えて

4

あなたの問題は、allow_url_fopenがオフになっていることに関連しています。あなたのphp.iniでそれを有効にするか、画像を取得するためにcurlを使用するか:

function getImg($url){ 
    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    $data = curl_exec($curl); 
    curl_close($curl); 
    return $data; 
} 

$url = "http://inspiring-photography.com/wp-content/uploads/2012/04/Culla-bay-rock-formations-Isle-of-Uist.jpg"; 
$raw = getImg($url); 
$im = imagecreatefromstring($raw); 
$width = imagesx($im); 
$height = imagesy($im); 
echo $width." x ".$height; 

SRC

+1

ありがとうございました@Pedro Lobito、大変感謝しています。 上記のように、allow_url_fopenが有効になっていても、私のヘルプデスクはsafe_modeを無効にして解決でき、Apache mod_securityも無効にできました。 –

+0

あなたは大歓迎です@MightyGorgon –

1

ローカルにないリソースにアクセスできるようにするには、php.iniファイルのallow_url_fopenをオンにする必要があります。

これはの公式ドキュメントで、filenameパラメータの説明で指定されています。

+0

allow_url_fopenが有効になっていても、私のヘルプデスクはsafe_modeを無効にして解決でき、Apache mod_securityも無効にすることができました。 –

関連する問題