php-ecshop获取端口的疑问

问题描述

ecshop获取端口的疑问
   if (isset($_SERVER['SERVER_PORT']))
            {
                $port = ':' . $_SERVER['SERVER_PORT'];

                if ((':80' == $port && 'http://' == $protocol) || (':443' == $port && '                          https://' == $protocol))
                {
                    $port = '';
                }
            }

其中

  if ((':80' == $port && 'http://' == $protocol) ||
        (':443' == $port && 'https://' == $protocol))
                {
                    $port = '';
                }

这段代码的意思作用是什么? 如果条件成立,为什么要把$port 设置为空?

整个函数的代码:

 function get_domain()
    {
        /* 协议 */
        $protocol = $this->http();

        /* 域名或IP地址 */
        if (isset($_SERVER['HTTP_X_FORWARDED_HOST']))
        {
            $host = $_SERVER['HTTP_X_FORWARDED_HOST'];
        }
        elseif (isset($_SERVER['HTTP_HOST']))
        {
            $host = $_SERVER['HTTP_HOST'];
        }
        else
        {
            /* 端口 */
            if (isset($_SERVER['SERVER_PORT']))
            {
                $port = ':' . $_SERVER['SERVER_PORT'];

                if ((':80' == $port && 'http://' == $protocol) || (':443' == $port && 'https://' == $protocol))
                {
                    $port = '';
                }
            }
            else
            {
                $port = '';
            }

            if (isset($_SERVER['SERVER_NAME']))
            {
                $host = $_SERVER['SERVER_NAME'] . $port;
            }
            elseif (isset($_SERVER['SERVER_ADDR']))
            {
                $host = $_SERVER['SERVER_ADDR'] . $port;
            }
        }

        return $protocol . $host;
    }

解决方案

这段代码你没贴完吧, 完整的似乎是为了我获取当前域名的,如果host不存在的情况下,要port何用。。。

时间: 2024-12-23 06:00:36

php-ecshop获取端口的疑问的相关文章

ecshop 获取所在商品的顶级分类ID及NAME两种方法

方法一,直接使用php 打开需要获取商品顶级分类的php文件  代码如下 复制代码 $cat_arr = get_parent_cats($goods['cat_id']); foreach ($cat_arr AS $val) {    $goods['topcat_id']=$val['cat_id'];    $goods['topcat_name']=$val['cat_name']; } 方法二,修改成模板标签形式 打开 goods.php 文件, 找到  代码如下 复制代码 $sma

ecshop获取输出商品属性的值的方法

ECSHop的自定义属性很是好用,但是在前台输出的时候非常麻烦,只能循环输出所有的附加商品属性,不能输出制定的某个自定义的属性,本来它用的是Smarty模板,但是到2.5之后好像是把Smarty修改很多,里面好多东西不能用了.今天给朋友改东西,随便就写了下.   我只在商品具体信息页面(goods.php)做了这个事情,可以的话可以写到每个页面去. 修改goods.php 在 PHP代码  代码如下 复制代码 $smarty->assign('properties',          $pro

串口api-QT串口编程,如何获取电脑当前可用端口名。

问题描述 QT串口编程,如何获取电脑当前可用端口名. 在QT串口编程中,我使用的是第三方类qextserialport,里面好像没有获取端口名的函数,我想把可用的端口名放在下拉框里,手动设置不合理啊.求指导. 解决方案 调用windows API,查询注册表获取当前可用的端口,已解决.

故障排查:是什么 导致了服务器端口telnet失败?(转)

  telnet命令的主要作用是与目标端口进行TCP连接(即完成TCP三次握手).当服务端启动后,但是telnet其监听的端口,却失败了.或者,当服务端运行了一段时间后,突然其监听的端口telnet不通了.当类似这样的telnet失败的情况出现时,都可以按照如下方面进行排查: 1.观察一下服务端进程的CPU和内存是否有异常. 比如,当CPU持续在100%时,就有可能导致来自客户端的TCP连接请求被丢弃或无暇处理.  2.端口监听器是否运行正常? 可以通过IRapidServerEngine的Ad

端口扫描之王——nmap入门精讲(转)

端口扫描在百度百科上的定义是: 端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关),但是端口扫描不但可以为黑客所利用,同时端口扫描还是网络安全工作者的必备的利器,通过对端口的扫描,了解网站中出现的漏洞以及端口的开放情况,对网站安全方面有着不可或缺的贡献,是你学习网络安全的第一门课程的首选 目前在市面上主要的端口扫描工具是X_Scan.SuperScan.nmap,其中在这里主推的是nmap,因为nmap具有以下

ASP.NET MVC 中获取当前URL、controller、action

一. URL的获取很简单,ASP.NET通用: [1]获取 完整url (协议名+域名+虚拟目录名+文件名+参数) string url=Request.Url.ToString(); [2]获取 虚拟目录名+页面名+参数: string url=Request.RawUrl; (或 string url=Request.Url.PathAndQuery;) [3]获取 虚拟目录名+页面名: string url=HttpContext.Current.Request.Url.AbsoluteP

VC枚举串口端口应用_C 语言

本文实例讲述了VC串口端口应用,分享给大家供大家参考.具体用法分析如下: 串口作为最基本的电脑通信 I/O 接口,其使用虽然在 PC 上越来越少,但是在工业仪器领域仍然用的相当普遍,为此自己先整理下,希望大侠和同行们不吝赐教. 1.查询注册表 查询注册表的方法是网上见到的比较常见的方法,该方法就是使用编程方法读取注册表内信息,相当于用户通过在运行框内输入 "regedit" (或 regedit32 )直接打开注册表,查看" HKEY_LOCAL_MACHINE/HARDWA

php 无限级分类 获取顶级分类ID_php技巧

有这样一个表,id是分类的ID,name是分类名称,pid是上级分类的ID. 现在有个分类ID,程序要找到它上级的上级的上级--分类的ID,简单说就是找出顶级分类的ID. 比如"新鲜水果"的ID是13,对应父类ID是5,而5的父ID是1,1没有父类,也就是顶级分类了. 以前年轻气盛不懂事,总想着用递归来查找,然后再将结果缓存来解决性能问题. 后来又试过将整个表缓存起来,再递归查找. 再后来--似乎比较少有机会遇到无限级分类-- 最近有个同事问我怎么"优雅"的解决这个

详解javascript获取url信息的常见方法_javascript技巧

先以"http://www.cnblogs.com/wuxibolgs329/p/6188619.html#flag?test=12345"为例,然后获得它的各个组成部分. 1.获取页面完整的url var a=location.href; console.log(a); // "http://www.cnblogs.com/wuxibolgs329/p/5261577.html#flag?test=12345" 2.获取页面的域名 var host = windo