解決策:
PHPを使用して解決
file_get_contents関数を使用
get_headers関数を使用し、HTTPの戻り値に基づいて200があるかどうかを確認します
jsソリューションを使用します:
IEカーネルブラウザのみをサポートするネイティブjs関数ActiveXObjectを使用します
jq拡張機能を使用します
この記事では主に3番目のPHPソリューションを紹介しますこのメソッドはめったに使用されませんが、これも良い感じです。
get_headers のサポートが必要です
php_openssl は、phpinfo が有効かどうかのチェックをサポートしています
allow_url_fopen=on php.ini を変更し、リモートで開くことを実行して使用します
関数の紹介:
array get_headers ( string $url [, int $format ] )
get_headers() は、HTTP リクエストに応じてサーバーによって送信されたヘッダーを含む配列を返します。失敗した場合は FALSE を返し、E_WARNING レベルのエラー メッセージを発行します。
オプションの format パラメーターが 1 に設定されている場合、get_headers() は対応する情報を解析し、配列のキー名を設定します。 例:
簡単な例:
コードをコピー コードは次のとおりです:
$url = "/upload/201110/20111008192257383.gif"; $配列 = get _headers($ url,1);
if(preg_match('/200/',$array[0])){
echo "
長所と短所: allow_url_fopen=onが必要です。 file_get_contents 関数の使用条件と似ていますが、戻り値が比較的小さいので OK
function_exists を使用してメソッドが使用可能かどうかを判断します
上記では、universalthemepatcher の内容を含め、PHP でリモート URL が有効かどうかを判断するためのいくつかの方法をまとめて紹介しました。PHP チュートリアルに興味のある友人の参考になれば幸いです。