2016-05-09 11 views
0

urlが絶対か相対かによってstringにサーバがあるかどうかをチェックする方法は?実際にあります文字列にサーバがあるかどうかをチェックする方法ih php

$url = 'http://www.google.com/'; 
$hasServer = filter_var($url, FILTER_VALIDATE_URL); 
+1

「文字列にサーバーがある場合」とはどういう意味ですか? – Webeng

+0

'$ url'がオンラインのアクティブなURLであることを意味しますか?それがより明確になるように質問を修正してください。 – Webeng

+0

私はwww.google.comのような部分文字列を持っている場合は意味が(絶対URLである)、またはまったく「サーバー」の文字列が存在しない(ある相対URL) – quakeglen

答えて

1

を返すtrueを返します私の経験からいくつかのオプションがあります。 1つは、headers()関数を使用して、得られた配列内で得た情報を分析することです。

$arrayResult = headers('http://www.google.com/'); 
foreach ($arrayResult as $value) 
{ 
    echo "-- ".$value."<br>"; 
} 

実際にURLが存在する場合には、必要な情報がすべて出力されます。

私の意見では簡単な解決策はfopen()機能は、実際のURLに動作するかだけをチェックすることです!

if (fopen('http://www.google.com/', "r") 
{ 
    echo "the URL exists!<br>"; 
} 

あなたが必要とするサーバーを1つ選択することができます。

+0

なぜあなたが行くと、[私の編集した](HTTPからの単一引用符に変更しました: //stackoverflow.com/revisions/37120937/2)二重引用符?私はここで改善が表示されていないとそこに変数が単一引用符の内側に合格し、OPが通過しようとする必要がある場合は、あなたの答えは、あなたが二重引用符を使用する理由フレッド-II- @それがうまく働いた –

+0

... – quakeglen

+0

を失敗します文字列リテラル?それは避けるべきであるので、一般的に悪い習慣です。 OPが単一引用符の中に変数を置くならば、それは彼の間違いであり、彼はもう1つの事を学びます。 私はあなたの編集が履歴から消えていくのを知らなかった。 –

0

:この場合は

function hasServer($url){ 
    ... 
} 

は、他の

hasServer('http://www.google.com/'); 

は、私は、これはあなたが探しているものだと思う偽

hasServer('/about-us/team/'); 
+0

'headers( 'http://www.google.com/);'ここに何かがありません。 (引用) –

+0

@ Fred-ii- thanks – Webeng

関連する問題