概要
タイトルのとおり、あるURLが存在しているかを確認したいときに使った方法です。
コード
file_get_contents
に引数をつけて、最初の1バイトだけ読み込んで判断しています。
if(@file_get_contents('https://xxx/xxx/xxx', NULL, NULL, 0, 1)){
//ファイルあり処理
}else{
//ファイルなし処理
}
参考
おまけ PHPでファイルダウンロード
<?php
//ダウンロード元URL
$url = 'https://xxx/xxx/xxx';
//保存ファイル名
$filename = 'saved.zip';
if(@file_get_contents($url, NULL, NULL, 0, 1)){
//ダウンロード処理
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="'.$filename.'"');
readfile($url);
}else{
//ファイルなし処理
header('Content-Type: text/html; charset=UTF-8');
echo 'エラーが発生しました。ファイルが存在しません。';
}
URL先のファイルサイズの取得はできていませんので、ダウンロード中のパーセンテージでの進捗はとれません。
これをいれればよさげですが、未検証です。
http://www.muzin.org/wp/webprogramming/php/file-size_52/