dポイントプレゼントキャンペーン実施中!

データを取得するため、他のサーバーにあるファイルの存在確認をしたいのですが、どのようにすればいいでしょうか?
ファイルは普通に公開されているファイルです


他の方の質問の回答にもあった

if(head "$data"){
use LWP::Simple;
$content = get($data);
}
#$dataは別行でURLを指定してます

という方法を試したのですがわざと存在しないファイル名を指定したところtrueが返り、ifの中に入っていって存在しないファイルを取得しようとしてgetでエラーになってしまいましたし、存在するファイル名を指定してみてもやはりifの中に入ってそのままデータの取得ができました
(ファイルが存在するしないにかかわらずif分岐がtrueになりました)

他に
if(-e "$data"){
use LWP::Simple;
$content = get($data);
}
#$dataは別行でURLを指定してます

とやってみましたがこれは逆に存在するファイル名をしていても全てifの中に入っていかずfalseが返ってきました

なお、確認したいファイルはcsvです

A 回答 (1件)

-e は論外として。



実際にどんな返事が返ってきてるのか、確認したらどうです?
($content_type, $document_length, $modified_time, $expires, $server) = head($data) ;
とでもして。

アップローダーとかだと作り方によっては、「エラーということを教える」内容の、HTTP的には「正常なページ」を返す場合もありそうです。

この回答への補足

ありがとうございます。
application/octet-stream
11793
1322747402

Apache
がそれぞれ返ってきました
$expiresはNull値のようです

補足日時:2011/12/01 22:53
    • good
    • 0

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