繁体   English   中英

从PHP中传递的变量解析出“ site.com”?

[英]Parsing out “site.com” from a passed variable in PHP?

我正在通过名为target_passthrough的全局变量传递各种URL,因此页面的URL可能类似于: http ://www.mysite.com/index.php?target_passthrough=example.com

或类似的东西。 该变量的格式可能多种多样,例如(减引号):

  1. “www.example.com”
  2. “.example.com的”
  3. “example.com”
  4. http://www.example.com
  5. “.example.com的/子目录/”
  6. “.example.com的/子目录/ page.php文件”
  7. “example.com/subdir/page.php”

请注意,其中有些字符的第一个字符是句点,例如2,5和6。

现在,我想做的是从任何可能的PHP场景中仅提取“ example.com”,并将其存储到变量中,以便稍后回显。 我试过parse_url,但是当我出现时,它会给我一个“ www”,这是我不想要的。 在网址只是“ example.com”的情况下,它将返回一个空值。

我真的不知道该怎么做正则表达式匹配,或者即使那是我需要的,所以任何指导都将不胜感激-在php上并不是那么先进。

如您所指出的,您可以使用parse_url为您完成许多工作,然后简单地删除www或前导点(如果存在)。

采用最后两个“单词”的替代策略并不总是可行,因为存在诸如www.example.co.uk类的域。 使用此策略将为您提供co.uk而不是example.co.uk 没有简单的规则来确定哪些部分是域或子域。

parse_url()输出URL的不同部分组成的数组。 因为只引用数组中的第一项,所以得到空值。 parse_url()

 Array (
        [scheme] => http
        [host] => hostname
        [user] => username
        [pass] => password
        [path] => /path
        [query] => arg=value
        [fragment] => anchor 
         )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM