2

私は訪問者がリンクを送信するウェブサイトを持っているので、投稿されたURLが存在するかどうかを知りたいので、次の関数を使用しています

<?PHP
        function url_exist($url){
        $c=curl_init();
        curl_setopt($c,CURLOPT_URL,$url);
        curl_setopt($c,CURLOPT_HEADER,1);
        curl_setopt($c,CURLOPT_NOBODY,1);
        curl_setopt($c,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($c,CURLOPT_FRESH_CONNECT,1);
        if(!curl_exec($c)){
        return false;
        }else{
        return true;
        }}

    $ur = "http://www.google.com"; // example

    if(url_exist($url)){
    echo "yea valid";
    }else{
    echo "not valid";
    }
?>

しかし、私のウェブサイトは非常に遅くなり、有効なURLか無効なURLかをチェックするステップで何かがロードされないので、上記の機能のようにホスティングサーバーにロードしすぎずに同じことを行うことができるアイデアが他にあるのではないかと思います!! 〜どんな助けでも

4

4 に答える 4

8

このコードを使用するとうまくいくかもしれません

$headers = @get_headers($url);
if(strpos($headers[0],'200')===false)return false;

したがって、URL がコード 200 以外を返す場合、URL が間違っていることがわかります。

于 2012-08-11T18:35:24.840 に答える
2
$url = 'http://google.com/';

if( get_headers($url) )
    echo "$url exists";
于 2012-08-11T18:22:11.380 に答える
0

以下のコードを試すことができます。うまくいくことを願っています。

$url = 'http://www.example.com/file.jpg';
$file_header = @get_headers($url);
if($file_header[0] == 'HTTP/1.1 404 Not Found') {
    $is_exists = false;
}
else {
    $is_exists = true;
}
于 2016-02-02T10:01:02.177 に答える
0

受け入れられた回答のリンクからの例を使用:

$url = 'http://www.example.com';
$handle = @fopen($url,'r');
if ($handle !== false) {
   echo 'Exists';
} else {
   echo "Doesn't";
}

外部リソースが将来利用できなくなった場合に備えて、ここで再現します。

于 2015-06-19T15:48:11.670 に答える