string(3) php
[1]=>
string(4) file
[2]=>
string(4) glob
[3]=>
string(4) data
[4]=>
string(4) http
[5]=>
string(3) ftp
[6]=>
string(3) zip
[7]=>
string(13) compress.zlib
[8]=>
string(14) compress.bzip2
[9]=>
string(4) phar
}
替代方案
发现错误,改正错误,这很简单,困难的是,发现错误后无法改正错误。我原本是想将这个脚本方法远程主机上,但我无法修改远程主机的php配置,结果是,我无法使用这一方案,但我们不能在一棵树上吊死,这条路走不通,看看有没有其它路。
另外一个我经常用的php里抓取内容的函数是 curl ,它比 file_get_contents() 更强大,提供了很多的可选参数。对于访问 https 内容的问题,我们需要使用的 curl 配置参数是:
curl_setopt($ch, curlopt_ssl_verifypeer, false);
你可以从语义上看出,它是忽略/跳过了ssl安全验证。也许这不是一个很好的做法,但对于普通的场景中,这几经足够了。
下面是利用 curl 封装的一个能访问https内容的函数:
function gethttps($url) {
$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;
}
以上就是php获取https内容的全部过程了,很简单很实用,推荐给有相同项目需求的小伙伴。
