如何实现php重定向?

如何实现php重定向?,php,redirect,curl,Php,Redirect,Curl,有没有一种在PHP中使用curl进行重定向的方法?我看了一些例子,但都不适用于我的情况。我需要登录到url1,然后将我重定向到url2。(url_1是我的IP摄像头的站点,url_2是包含url_1的iframe的我的页面,为了在我的页面中查看url_1的内容,需要进行身份验证) 请检查我的代码并告诉我哪里做错了,非常感谢 <? $url = 'url_1'; $username = 'admin'; $password = '888888'; $ch = curl_init(); c

有没有一种在PHP中使用curl进行重定向的方法?我看了一些例子,但都不适用于我的情况。我需要登录到url1,然后将我重定向到url2。(url_1是我的IP摄像头的站点,url_2是包含url_1的iframe的我的页面,为了在我的页面中查看url_1的内容,需要进行身份验证)

请检查我的代码并告诉我哪里做错了,非常感谢

<?
$url = 'url_1';
$username = 'admin';
$password = '888888';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
curl_setopt($ch, CURLOPT_REFERER, "url_2");
curl_setopt($ch, CURLOPT_HTTPHEADER, Array("Content-Type:application/x-www-form-urlencoded"));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);

$a = curl_exec($ch);


$info = curl_getinfo($ch);
curl_close($ch); 
print_r($info);

$headers = explode("\n",$a);
$redir = $url;
// loop through the headers and check for a Location: str
$j = count($headers);
for($i = 0; $i < $j; $i++){
// if we find the Location header strip it and fill the redir var       
if(strpos($headers[$i],"Location:") !== false){
        $redir = trim(str_replace("Location:","",$headers[$i]));
        break;
    }
}
// do whatever you want with the result
echo $redir;
?>

$redir是:url_1

我想你在这里混淆了不同的主题。如果在服务器端发出curl请求,那么登录的客户端将不会发生任何事情。如果要将已登录的客户端重定向到某个位置,则需要发出HTTP重定向头。这将发生在

Header("Location: http://domain.com/page.php");
指令。与卷曲本身无关


但是,您可以首先使用curl请求另一个资源(例如您的url1),然后使用PHP重定向到包含iframe的url2。类似于
标题(“位置:$redir”)
在代码中。

可能的副本您已经启用了
FOLLOWLOCATION
,因此curl将跟踪它所命中的服务器发生的任何重定向问题。@Marc B那么将FOLLOWLOCATION设置为false将解决问题吗?我试过了,但没有成功work@HughH:启用并不意味着
false
。这意味着
将其设置为TRUE
@AmalMurali我想我知道。。设置为TRUE时,它不起作用
Header("Location: http://domain.com/page.php");