QQ咨询 官方微信

添加微信好友

官方小程序

百度小程序

微信小程序

头条小程序

关于我们

PHP基础

php如何判断当前HTTPS(踩坑)

 shitouadmin  2024-07-03 11:53:16
在网上搜搜如何判断是https的,一般你会得到下边的答案:
  1. if(isset($_SERVER['HTTPS']) && ('1' == $_SERVER['HTTPS'] || 'on' == strtolower($_SERVER['HTTPS']))){ 
  2.         return true
  3. }elseif(isset($_SERVER['SERVER_PORT']) && ('443' == $_SERVER['SERVER_PORT'] )) { 
  4.         return true
甚至各种AI回答也是这种,稍微复杂一点的会判断一下其他参数例子:
  1. $protocol =  ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';  
  2. $host = $_SERVER['HTTP_HOST']; 
但是这些判断都不全面,有时候$_SERVER是不返回这些东西的
下边提供一个比较 全面的判断方法
  1. function is_https() 
  2.     if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) { 
  3.         return true
  4.     } elseif (isset($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) == 'on' || $server['HTTPS'] == '1')) { 
  5.         return true
  6.     } elseif (isset($_SERVER['HTTP_X_CLIENT_SCHEME']) && $_SERVER['HTTP_X_CLIENT_SCHEME'] == 'https') { 
  7.         return true
  8.     } elseif (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { 
  9.         return true
  10.     } elseif (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') { 
  11.         return true
  12.     } elseif (isset($_SERVER['HTTP_EWS_CUSTOME_SCHEME']) && $_SERVER['HTTP_EWS_CUSTOME_SCHEME'] == 'https') { 
  13.         return true
  14.     } 
  15.     return false







¥ 打赏
×
如果您觉得文章帮助了您就打赏一下吧
非常感谢你的打赏,我们将继续分享更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

本文《php如何判断当前HTTPS(踩坑)》发布于石头博客文章,作者:shitouadmin,如若转载,请注明出处:https://www.pweb123.com/html/php/1031.html,否则禁止转载,谢谢配合!

文章点评

我来说两句 已有0条评论
点击图片更换

添加微信好友

添加微信好友

微信小程序

百度小程序