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正常,搞定