抓取网页数据 php( 一下如何解决file_get_contents函数获取远程页面内容 )
优采云 发布时间: 2021-09-17 04:08抓取网页数据 php(
一下如何解决file_get_contents函数获取远程页面内容
)
PHP解决方案文件\uGet\uContents无法获取HTTPS页面的内容
日期:2016年9月1日
使用file today_uuget_uu时,contents函数获取远程页面的内容时出现问题。它显示无法找到包装“HTTPS”。这里,请求的页面地址使用HTTPS协议。现在,让我们与您分享如何解决“获取”内容不支持HTTPS URL的问题
有三种解决方案:
首先:修改php.ini配置文件
对于windows下的PHP,您只需要将extension=PHP放在PHP.ini中的openssl.dll前面;删除它并重新启动服务。(请注意,还必须启用allow_url_fopen)
对于Linux下的PHP,必须安装OpenSSL模块。安装后,您可以访问它
第二个:stream\uucontext\uuucreate方法
以下代码允许您使用文件获取内容来获取HTTPS页面内容:
$url= 'https://example.com';
$arrContextOptions=array(
"ssl"=>array(
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);
$response = file_get_contents($url, false, stream_context_create($arrContextOptions));
第三:用curl函数uget_uuu内容替换文件
具体实施代码如下:
function getSslPage($url) {
/* http://www.manongjc.com/article/1428.html */
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}