如果标头位置重定向失败,则显示消息

时间:2013-05-09 13:48:09

标签: php redirect

我需要重定向到一个未知地址。如果地址不可用,我想向用户显示一条消息。怎么做?

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

3 个答案:

答案 0 :(得分: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

但是,这只会告诉您该页面上是否有SOMETHING。例如,它不会告诉您you got a 404 error page instead

为此(并节省下载整个页面的内存成本),您只需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;
}

答案 1 :(得分:0)

您可以检查网址是否存在,然后重定向:

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

if(@file_get_contents($url))
{
    header("Location: $url"); 
}
else
{
    echo '404 - not found';
}

答案 2 :(得分:0)

您可以使用curl

来完成
      $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);