卷曲重定向,不工作?

Sus*_*ahi 6 php curl

我正在使用以下代码:

$agent= 'Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9) Gecko/2008052906 Firefox/3.0';

$ch = curl_init();

curl_setopt($ch, CURLOPT_USERAGENT, $agent);

curl_setopt($ch, CURLOPT_URL, "www.example.com");

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

$output = curl_exec($ch);

echo $output;
Run Code Online (Sandbox Code Playgroud)

但它重定向到这样:

http://localhost/aide.do?sht=_aide_cookies_
Run Code Online (Sandbox Code Playgroud)

而不是URL页面.

有人可以帮我解决我的问题吗?

Vol*_*erK 13

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
Run Code Online (Sandbox Code Playgroud)

http://docs.php.net/function.curl-setopt说:

CURLOPT_FOLLOWLOCATION
TRUE跟随服务器作为HTTP标头的一部分发送的任何"Location:"标头(注意这是递归的,PHP将跟随它发送的"Location:"标头,除非设置了CURLOPT_MAXREDIRS).


Omr*_*nic 8

如果仅限于URL重定向,那么请参阅以下代码,我已经为您记录了这些代码,以便您可以轻松直接地使用它,您有两个主要的cURL选项控制URL重定向(CURLOPT_FOLLOWLOCATION/CURLOPT_MAXREDIRS):

// create a new cURL resource
$ch = curl_init();

// The URL to fetch. This can also be set when initializing a session with curl_init().
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");

// The contents of the "User-Agent: " header to be used in a HTTP request.
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9) Gecko/2008052906 Firefox/3.0");

// TRUE to include the header in the output.
curl_setopt($ch, CURLOPT_HEADER, false);

// TRUE to return the transfer as a string of the return value of curl_exec() instead of outputting it out directly.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// TRUE to follow any "Location: " header that the server sends as part of the HTTP header (note this is recursive, PHP will follow as many "Location: " headers that it is sent, unless CURLOPT_MAXREDIRS is set).
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// The maximum amount of HTTP redirections to follow. Use this option alongside CURLOPT_FOLLOWLOCATION.
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);

// grab URL and pass it to the output variable
$output = curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);

// Print the output from our variable to the browser
print_r($output);
Run Code Online (Sandbox Code Playgroud)

上面的代码处理URL重定向问题,但它不处理cookie(您的localhost URL似乎处理cookie).如果您希望处理来自cURL资源的cookie,那么您可能需要提供以下cURL选项:CURLOPT_COOKIE CURLOPT_COOKIEFILE CURLOPT_COOKIEJAR

有关详细信息,请访问以下链接:http: //docs.php.net/function.curl-setopt