海外旅行から帰ってきたら、まず何を食べる?

getimagesizeを使って画像のサイズ一覧を取得するプログラムを作っています。

画像ファイル名は規則正しい数字の番号を振ってあります。
規則に従いループさせているのですが、画像がなかった場合、
うまく動作してくれません。

画像の大きさがある程度あるので横幅の10pxで判断しています。

$filename= "xxx.jpg";
list($width,$height)=getimagesize("$filename");
if($width > 10){
//あった場合の処理
}else{
//なかった場合の処理
}

getimagesizeを使って画像がなかった場合、すり抜ける方法はありますでしょうか?

よろしくお願いします。

A 回答 (5件)

失敗した時は、falseとE_WARNINGを返すので、


以下のようにすればできるかも知れないです。

error_reporting(E_ALL ^E_WARNING);
$filename= "xxx.jpg";
if(list($width,$height)=getimagesize("$filename")){
//あった場合の処理
}else{
//なかった場合の処理
}
error_reporting(E_ALL);

乱暴ですけど…。

http://jp.php.net/manual/ja/function.error-repor …
http://jp.php.net/manual/ja/function.getimagesiz …
    • good
    • 0

せめてFTP接続が可能なアカウントでもあれば、FTP関数で・・・


と思ったのですが、それも無いんですかね。
ちょっと他には思いつきません。
    • good
    • 0

画像が置いてあるサーバーで、下記のようなスクリプトを置いて、


それにhttp://・・・でアクセスする事は、可能ですか?
もし可能なら、一覧を取得出来ると思います。

<?PHP
$img_dir = "./";
print `ls $img_dir`;
?>

この回答への補足

度々、ありがとうございます。

外部というのは、私が管理している物ではなく他人が使っているサーバーになります。

やはり、fopen等を使って時間をかけるしかないでしょうか・・・

補足日時:2007/01/30 10:51
    • good
    • 0

外部なら、fopen、include、system関数でwget・・・方法はありますが、


どれも重くて使い物にならなくなりそうですね。

もし画像が置いてあるサーバーでスクリプトを動かせるのであれば、
そのサーバーで、所定のディレクトリにある画像ファイル一覧を返すスクリプトを仕込むのがスマートで素軽い方法でしょう。

この回答への補足

そうなんです。
fopen、include、system等では重過ぎて使えません。

外部のサーバーではディレクトリにアクセスできないようになっているのですが、それでも所定のディレクトリにある画像ファイル一覧を取得する事は可能でしょうか?

質問ばかりで申し訳ないのですが、是非ご教授して頂ければと思います。
よろしくお願いします。

補足日時:2007/01/29 23:08
    • good
    • 0

画像の大きさをgetimagesizeで取得する前に


file_exists関数で、ファイルの存在を確認するようにすれば、
良いのではないかと思います。

この回答への補足

ありがとうございます。

画像ファイルは外部サーバーの為、file_exists等の関数は使えない様です。

fopen関数を使うと過去ログで見かけましたが、画像数が数千件ある為、動作が非常に重くなってしまいます。

単純に外部サーバーの画像有無を調べる方法はないでしょうか?

よろしくお願いします。

補足日時:2007/01/29 18:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報