Php Curl returntransfer为空,Curl“getinfo”;错误:1“;

Php Curl returntransfer为空,Curl“getinfo”;错误:1“;,php,curl,https,string,Php,Curl,Https,String,我尝试从需要用户身份验证的IIS服务器获取带有curl的页面 curl_exec不返回任何内容,CURLOPT_RETURNTRANSFER为true。如果CURLOPT_RETURNTRANSFER为false,curl_exec将返回true 有什么问题吗?该页在成功或身份验证失败后都不是空的 $username = $_POST["acc"]; $password = $_POST["pw"]; $url = "https://secure.website.com/"; $ch = cu

我尝试从需要用户身份验证的IIS服务器获取带有curl的页面

curl_exec不返回任何内容,CURLOPT_RETURNTRANSFER为true。如果CURLOPT_RETURNTRANSFER为false,curl_exec将返回true

有什么问题吗?该页在成功或身份验证失败后都不是空的

$username = $_POST["acc"];
$password = $_POST["pw"];
$url = "https://secure.website.com/";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
$page = curl_exec($ch);
echo "Error: " . print_r(curl_getinfo($ch)) . "<br>";
curl_close($ch);

echo "<br>Page:<br>" . $page  . "<br>---------------------------<br>";
curl_error输出无错误。curl_getinfo结尾的“Error:1”是我唯一的提示。
脚本可以在其他网站上运行。

请注意状态代码,它是a,表示页面正在发出重定向。尝试:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
这将使cURL为您遵循重定向,并应修复此问题


Error:1
与此无关,这只是因为您正在执行
echo print\r()

请注意状态代码,它是a,表示页面正在发出重定向。尝试:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
这将使cURL为您遵循重定向,并应修复此问题


Error:1
是不相关的,那只是因为你在做
echo print\r()

我不理解你最后的评论。为什么
echo打印(curl\u getinfo($ch))
print
1
?它只是将
true
转换为
1
?@Shawn这是因为
print\r()
回显数据并返回true。当连接到PHP字符串中时,
true
变为
1
。为了更好地了解它,您可以执行
$x=print\r(curl\u getinfo($ch));回声'---';echo$x哦,当然。正确的方法是将
print\r
的第二个参数设置为
true
:echo print\r($whatever,true);我不明白你最后的评论。为什么
echo打印(curl\u getinfo($ch))
print
1
?它只是将
true
转换为
1
?@Shawn这是因为
print\r()
回显数据并返回true。当连接到PHP字符串中时,
true
变为
1
。为了更好地了解它,您可以执行
$x=print\r(curl\u getinfo($ch));回声'---';echo$x哦,当然。正确的方法是将
print\r
的第二个参数设置为
true
:echo print\r($whatever,true);您的代码的哪部分打印出包含
http\u code
的数组?您的代码的哪部分打印出包含
http\u code
的数组?