1

不熟悉 PHP,我在 windows 上运行此代码时遇到问题 curl_php 已启用,当我执行代码时没有错误,但在 ubuntu 上我有一个空白屏幕我得到了结果,我也禁用了防火墙但仍然没有

 $username = "myusername";
 $password = "mypasword";  
 $host = "https://myurl";

 $process = curl_init($host);
 curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
 curl_setopt($process, CURLINFO_HEADER_OUT, false);
 curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password);
 curl_setopt($process, CURLOPT_TIMEOUT, 30);
 curl_setopt($process, CURLOPT_CUSTOMREQUEST, 'GET');

 echo curl_exec($process);
4

2 回答 2

3

解决方案是禁用 ssl 验证(是的,它使用 https =))

代码:

<?php 

$username = "myusername"; 
$password = "mypassword"; 
$url = "https://myurl"; 

$process = curl_init($url); 
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($process, CURLINFO_HEADER_OUT, true); 
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password); 
curl_setopt($process, CURLOPT_TIMEOUT, 30); 
curl_setopt($process, CURLOPT_CUSTOMREQUEST, 'GET'); 
curl_setopt($process, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($process, CURLOPT_SSL_VERIFYHOST, false);

echo curl_exec($process);

curl_close($process);
于 2013-10-01T00:12:27.800 回答
1

尝试调试。将以下代码添加到 php 文件的开头<?php(在新行之后):

error_reporting(E_ALL|E_NOTICE);
ini_set('display_errors', 'On');

并刷新您的页面。如果存在错误,您可能会看到错误;

curl_setopt如果没有,请在最后一次调用后添加以下内容:

echo 'errno: ', curl_errno($process), ', error: ', curl_error($process), "\n";

您可能会看到一个错误。

之后我们可以尝试帮助您解决问题;

也许有一个重定向到另一个页面,并且您的 windows php 安装使用了 open_basedir 限制。或者也许是别的东西=)

于 2013-09-30T19:48:33.317 回答