douza1373 2010-06-03 10:00
浏览 218
已采纳

PHP:检查URL是否重定向?

I have implemented a function that runs on each page that I want to restrict from non-logged in users. The function automatically redirects the visitor to the login page in the case of he or she is not logged in.

I would like to make a PHP function that is run from a exernal server and iterates through a number of set URLs (array with URLs that is for each protected site) to see if they are redirected or not. Thereby I could easily make sure if protection is up and running on every page.

How could this be done?

Thanks.

  • 写回答

10条回答 默认 最新

  • duanbogan5878 2010-06-03 10:37
    关注
    $urls = array(
        'http://www.apple.com/imac',
        'http://www.google.com/'
    );
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    foreach($urls as $url) {
        curl_setopt($ch, CURLOPT_URL, $url);
        $out = curl_exec($ch);
    
        // line endings is the wonkiest piece of this whole thing
        $out = str_replace("", "", $out);
    
        // only look at the headers
        $headers_end = strpos($out, "
    
    ");
        if( $headers_end !== false ) { 
            $out = substr($out, 0, $headers_end);
        }   
    
        $headers = explode("
    ", $out);
        foreach($headers as $header) {
            if( substr($header, 0, 10) == "Location: " ) { 
                $target = substr($header, 10);
    
                echo "[$url] redirects to [$target]<br>";
                continue 2;
            }   
        }   
    
        echo "[$url] does not redirect<br>";
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
  • ¥50 mac mini外接显示器 画质字体模糊
  • ¥15 TLS1.2协议通信解密
  • ¥40 图书信息管理系统程序编写
  • ¥20 Qcustomplot缩小曲线形状问题
  • ¥15 企业资源规划ERP沙盘模拟