php获取https
php已提供相关函数。
file_get_contents() 函数把整个文件读入一个字符串中。
$ret = file_get_contents('要采集的网页URL');// 若需要从页面中获取内容,可以用正则匹配$begin=change_match_string('匹配开头的字符串');$end=change_match_string('匹配结尾的字符串');$p = "{$begin}(.*){$end}";// 使用正则进行匹配if (eregi($p,$ret,$rs)) return $rs[1];else return false;
B. PHP获取https网页内容空白怎么解决
curl抓取办法:(要保证curl扩展开族扒启)
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_HEADER,0);
//重点部分
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //不世纳验证证书
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //不验证证书
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1 );
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
$res = curl_exec($ch);
var_mp($res); //有返回值搜穗没
C. PHP如何获取HTTPS响应头headers
<?php
ob_end_flush();
print_r(apache_request_headers());
?>
D. PHP使用CURL请求https的微信统一下单接口时报错,同样的代码我在另一台机器上运行是正常的
我也遇到了同样的问题,只要是走微信,偶尔都会请求不到,原来是正常的。今天排查了一天,终于找到了原因所在。
centos原生用的NSS,而不是OpenSSL,curl调用NSS库请求https时偶尔会出现请求不到的情况。
解决方案:
参考网址:网页链接
按步骤完成后记得重启 php-fpm和nginx
E. 如何使用php判断服务器是否是HTTPS连接
是否https
functionis_https()
{
if(!empty($_SERVER['HTTPS'])&&strtolower($_SERVER['HTTPS'])!=='off')
{
returnTRUE;
}
elseif(isset($_SERVER['HTTP_X_FORWARDED_PROTO'])&&$_SERVER['HTTP_X_FORWARDED_PROTO']==='https')
{
returnTRUE;
}
elseif(!empty($_SERVER['HTTP_FRONT_END_HTTPS'])&&strtolower($_SERVER['HTTP_FRONT_END_HTTPS'])!=='off')
{
returnTRUE;
}
returnFALSE;
}
F. php网站http怎么变成https
服务器+域名+SSL数字证书=HTTPS
PHP网站升级HTTPS流程:
普通的HTTP网站搭建完毕,并且可以访问。
确定升级HTTPS的域名。
Gworg申请后根据Gworg要求完成SSL证书认证。
大约15分钟获得SSL数字证书。
配置到虚拟主机或云服务器就可以实现HTTPS。
解决办法:如果虚拟主机(空间)不支持,也可以让Gworg提供接入,只需解析域名就可以。
G. php怎么抓取这个链接https://locate.apple.com/cn/zh/service/pt=3&lat=23.134521&lon=113.358803的源码
<?php
function dg_string($data,$flagA, $flagB, $start = 0){//配套截取字符串
$flagAL=strlen($flagA);
$flagBL=strlen($flagB);
$rn='';
$a=$b=0;
if(($findA=strpos($data,$flagA, $start))!==false){
$a=1;
$tmpA=$findA;
$findB=$findA+$flagAL;
$findA=$findB;
while($a!=$b){
if(($findB = strpos($data, $flagB, $findB))!==false){
$b++;
if(($findA = strpos($data, $flagA, $findA))!==false){
if($findA>$findB){
if($a==$b){
//结束
$findB+=$flagBL;
$rn=substr($data,$tmpA,$findB-$tmpA);
} else {
$a++;
$findB=$findA+$flagAL;
$findA=$findB;
}
} else {
$a++;
$findA+=$flagAL;
$findB+=$flagBL;
}
} else {
if($a==$b){
//结束
$findB+=$flagBL;
$rn=substr($data,$tmpA,$findB-$tmpA);
} else {
//标记不完整
$findB+=$flagBL;
}
}
} else {
//标记不完整
$rn=substr($data,$tmpA);
$rn.=str_repeat($flagB,$a-$b);
break;
}
}
}
return $rn;
}
$html = file_get_contents('https://locate.apple.com/cn/zh/service/?pt=3&lat=23.134521&lon=113.358803');//获取源码
$find = strpos($html, 'window.resourceLocator.setup');
$json1 = dg_string($html, '{', '}', $find);//获取第一个JSON数据
$find = strpos($html, 'window.resourceLocator.storeSetup');
$json2 = dg_string($html, '{', '}', $find);//获取第二个JSON数据
$arr1 = json_decode($json1, true);//第一个JSON数据转为数组
$arr2 = json_decode($json2, true);//第二个JSON数据转为数组
print_r($arr1);
print_r($arr2);
//得到了数组,你想获取哪个参数都行了,你自己看着办吧,楼主可亲测代码
?>
H. php获取不到https cookies
本地可以获取cookie,代码传到服务器端始终无法获取cookie值
I. phpnow怎么安装ssl证书https访问
您好!
首先进入Gworg申请SSL证书(某淘中可以找到),获得Apache SSL证书。
如果是草根的话,需要耐心的研究了,步骤还是挺复杂的。
PHPnow是指:Apache + PHP + MySQL,所以只需根据Apache环境安装SSL证书。
打开你集成包的文件夹,找到“/php-5.2.x-Win32/php-apache2handler.ini”这文件,随便用记事本打开,查找
;extension=php_openssl.dll
将最前面的分号去掉,改成以下的代码,然后保存
extension=php_openssl.dll
接着重启一下apache哦,重启方法:
打开PHPnow安装根目录,运行PnCp.cmd,输入23后回车,就可以重启apache (选23)
接下来可以参考教程安装:网页链接(下面代码也可以应用)
Listen443(如果配置已经存在就不要加)
LoadMolessl_molemoles/mod_ssl.so(如果配置已经存在就不要加)
NameVirtualHost*:443(非必须,配置多个SSL站点会需要)
<VirtualHost*:443>
ServerNamewww.gworg.cn
ServerAliasgworg.cn
DocumentRoot/var/www/html
SSLEngineon
SSLProtocolall-SSLv2-SSLv3
SSLCertificateFile/etc/ssl/server.crt
SSLCertificateKeyFile/etc/ssl/server.key
SSLCertificateChainFile/etc/ssl/server.ca-bundle
</VirtualHost>
J. phpstudy的apache配置https流程和问题
最近由于弄了一个小程序,需要配置htpps的域名,把操作流程记录一下:
1、去西部数码花了1元弄了一套证书,包含三个文件:
2、把这三个证书文件放进服务器,phpstudy里面创建网站,
把三个证书一个个导入进去,然后选好根目录,php版本,保存后创建网站。
3、上面操作完成后,开始设置
4、设置完httpd.conf后,开始设置httpd-ssl.conf
里面这样配置:
<VirtualHost *:443>
DocumentRoot "你的域名指向的完整路径"
ServerName 你的域名
<Directory "你的域名指向的完整路径">
Allow from all
AllowOverride All
#Options -Indexes +FollowSymLinks +ExecCGI
Options -Indexes +FollowSymLinks
#Order allow,deny
#Require all granted
</Directory>
SSLEngine on
SSLCertificateFile D:/phpstudy_pro/Extensions/Apache2.4.39/cert/xxxxxxx.cer
SSLCertificateKeyFile D:/phpstudy_pro/Extensions/Apache2.4.39/cert/xxxxxx.key
SSLCertificateChainFile D:/phpstudy_pro/Extensions/Apache2.4.39/cert/xxxxxx.crt
</VirtualHost>
到这里配置就完毕了,我这里访问https正常,搞定