如果服务器禁用了“curl_init”功能,会导致错误编号7和错误消息:“无法连接到主机”或者是否有其他原因导致我收到此错误?
如果这是一个安全问题,有办法解决这个问题,因为我无法控制这些网站的安全性吗?
<?php
$url = $_POST["url"];
$url = $url.'/';
echo "<br> <b>URL: </b>".$url;
function get_web_page($url)
{
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
//CURLOPT_PROXY => "localhost:80",
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
$header['errno'] = $err;
$header['errmsg'] = $errmsg;
$header['content'] = $content;
$html= get_web_page($url);
echo '<br> <b>Error Number: </b>'.$html['errno'];
echo '<br> <b>Error Message: </b>'.$html['errmsg'];
?>
我希望这是足够的代码来解决问题。
这是我正在努力的网站。在底部,您应该能够输入任何URL。如果你把www.csun.edu它得到那个错误。但是如果你把library.csun.edu放进去的话。
答案 0 :(得分:2)
你能提供你的代码吗?我会尝试回答你的问题,但根据你的问题,我不确定我是否可以。
curl_init()是自PHP4以来的本机函数。除非我弄错了,否则无法禁用。最重要的是,如果 被禁用,它将不会出现“无法连接到主机”(错误:7)错误。
所以我想你要问的是,如果远程服务器没有启用它会发生什么。这个问题实际上没有实际意义,因为在特定条件下访问其他网站/页面时,curl所做的基本上是“获取”页面。只要在您设置的条件下(使用curl_setopt()函数)可以查看网页,它就会起作用。
现在,我记得,如果您请求的页面具有重定向并且您的curl选项指定它不应该遵循重定向,则可能发生错误号7。要检查这是否是导致问题的原因,请在执行url之前设置此选项:
curl_setopt('CURLOPT_FOLLOWLOCATION', true);
如果有帮助,请告诉我。