-1

不明なアドレスにリダイレクトする必要があります。アドレスが利用できない場合は、ユーザーにメッセージを表示したいと思います。どうやってするか?

<?php
header("Location: http://www.example.com/"); 
exit;
?>
4

3 に答える 3

2

最も直接的な方法は、ページを取得することです。

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;
}
于 2013-05-09T13:50:48.407 に答える
0

URL が存在するかどうかを確認してからリダイレクトできます。

$url = 'http://www.asdasdasdasd.cs';
//$url = 'http://www.google.com';

if(@file_get_contents($url))
{
    header("Location: $url"); 
}
else
{
    echo '404 - not found';
}
于 2013-05-09T13:53:38.403 に答える
0

カールを使用してそれを行うことができます

      $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);  
于 2013-05-09T13:59:43.753 に答える