|
代码如下,文件名index.php
- $url1 = "http://ip:port/xxx/xxx/xxx"; // 格式如此,真实的url可访问
- $url2 = "www.baidu.com";
- // 可以得到结果
- $ch1 = curl_init($ur1l);
- curl_exec($ch);
- curl_close($ch);
- // 运行卡住
- $ch2 = curl_init($url2);
- curl_exec($ch);
- curl_close($ch);
复制代码 问题如下
直接使用 curl http://ip:port/xxx/xxx/xxx 正确返回结果
在shell运行 php index.php 正确返回结果
在浏览器打开localhost/index.php 运行卡住,无结果
但是如果把url换成"www.baidu.com",上述三种方式都能正确返回结果。
可能是什么原因导致的呢?
$url2是一个跳转的https超链接, 使用浏览器年份历史比较长的一般认为:URL地址最好加"http(https)://"前缀,以使用完整的地址协议
- $url2='http://www.baidu.com';
- curl_setopt($ch2, CURLOPT_URL, $url2);
- if ($https) {
- // curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false); // 对认证证书来源的检查
- // curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, false); // 从证书中检查SSL加密算法是否存在
- curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, true); // 对认证证书来源的检查
- curl_setopt($ch2, CURLOPT_SSL_VERIFYHOST, true); // 从证书中检查SSL加密算法是否存在
- }
- curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, true);
- // 设置https超链接延时超时
- curl_setopt($ch2, CURLOPT_TIMEOUT, 10);
- $output = curl_exec($ch2);
复制代码
|
|