您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

PHP和HTTPS

2024/4/17 21:30:23发布26次查看
最近在研究hacker news api时遇到一个https问题。因为所有的hacker news api都是通过加密的https
协议访问的,跟普通的http协议不同,当使用php里的函数file_get_contents()来获取api里提供的数
据时,出现错误,使用的代码是这样的:
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;
}
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product