不明なアドレスにリダイレクトする必要があります。アドレスが利用できない場合は、ユーザーにメッセージを表示したいと思います。どうやってするか?
<?php
header("Location: http://www.example.com/");
exit;
?>
最も直接的な方法は、ページを取得することです。
if (file_get_contents('http://www.example.com/') !== false) {
header("Location: http://www.example.com/");
exit;
}
http://php.net/manual/en/function.file-get-contents.php
ただし、これは、そのページで何かが利用可能かどうかのみを示します。たとえば、代わりに 404 エラー ページが表示されたかどうかはわかりません。
そのために (およびページ全体をダウンロードするためのメモリ コストを節約するために)、get_headers()
代わりに URL のみを使用できます。
$url = "http://www.example.com/";
$headers = get_headers($url);
if (strpos($headers[0],'200 OK') !== false) { // or something like that
header("Location: ".$url);
exit;
}
URL が存在するかどうかを確認してからリダイレクトできます。
$url = 'http://www.asdasdasdasd.cs';
//$url = 'http://www.google.com';
if(@file_get_contents($url))
{
header("Location: $url");
}
else
{
echo '404 - not found';
}
カールを使用してそれを行うことができます
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
$output = curl_exec($ch);
if(curl_errno($ch)==6)
echo "page not found";
else
header("Location: http://www.example.com/");
curl_close($ch);