たとえば、これらのファイルが存在するかどうかを知りたいとします。特定のリソースが存在するかどうかを知る方法?
http://www.stackoverflow.com/favicon.ico
http://www.stackoverflow.com/reset.css
をダウンロードしてからダウンロードしてください(明らかにexixtsの場合)。
たとえば、これらのファイルが存在するかどうかを知りたいとします。特定のリソースが存在するかどうかを知る方法?
http://www.stackoverflow.com/favicon.ico
http://www.stackoverflow.com/reset.css
をダウンロードしてからダウンロードしてください(明らかにexixtsの場合)。
<?php
if(($file = file_get_contents('http://www.stackoverflow.com/favicon.ico'))) {
echo "file exists.";
file_put_contents('favicon.ico', $file);
}
else {
echo "File does not exist.";
}
+1ワンノート: 'file_get_contents()'は、リクエストが失敗した場合にE_WARNINGエラーを生成します。これは、戻り値の型でこれらの失敗をキャッチすることが目的であるため、エラー抑制演算子を使用できるケースの1つです。 –
@MikeBフェアで十分です。 –
これを試してみてください:
<?php
$ch = curl_init();
$url = 'YOUR_URL_HERE'; // the url you want to check
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER[ 'HTTP_USER_AGENT' ]);
// make "HEAD" request
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
$res = curl_exec($ch);
$res = explode(' ', substr($res, 0, strpos($res, "\n")));
// if 404, file does not exist
if($res[ 1 ] != 404) {
$file = file_get_contents($url);
} else {
// This url does not exist
$file = '';
}
curl_close($ch);
?>
は、この情報がお役に立てば幸いです。
ダウンロードしてください。失敗すると、存在しません。 – JJJ
ファイルが存在しない場合、404の応答が返されます。それを確認してください。 – binarious
頭に浮かぶのは、ヘッダーをフェッチするだけでcURL NOBODYリクエストを作成することです。その時点でヘッダーが存在し、完全リソースを要求できることがわかります。しかし、もしあなたが全部をダウンロードしようとしたら、 'file_get_contents()'を使って結果を確認してください。 –