【问题标题】:How to extract "sub-domain name" from a url presence in a long text containing multiple url如何从包含多个 url 的长文本中的 url 存在中提取“子域名”
【发布时间】:2012-02-12 12:04:53
【问题描述】:

我有一个很长的文本包含多个 url。 但是 只有一个 网址是 blogspot.com 。该网址将类似于 http://xxxxx.blogspot.com 。如何获取 xxxx 的值并存储在变量中。

所以如果我在 $foo 中有整个文本存储。任何人都可以编写代码来提取子域。

我猜它应该只有 1 或 2 行使用 preg_match 。但我没有让它工作。 Rejex 让我很困惑。

谢谢

【问题讨论】:

  • 为你写代码?呵呵...您应该至少付出一点努力,然后有人可能会提供帮助
  • 而不是 preg_match()parse_url() php.net/manual/en/function.parse-url.phpexplode() 开头的域部分在点上,然后从结果数组中提取第一个。
  • @zoltan :对不起,我没有把代码放在那里..我确实努力谷歌搜索,试过了。但只是我没有把我搞砸的代码放在那里。 好的,下次我放一些代码来展示我的努力时谢谢你 :) 并感谢 Michael 的 parse_url 建议 :)

标签: php


【解决方案1】:

试试这样的:

$foo = 'http://xxxxx.blogspot.com';
preg_match( '%http://(\w+).blogspot.com%', $foo, $matches);
var_dump( $matches[1]);

这将打印string(5) "xxxxx"

Demo

【讨论】:

  • 我能看到的唯一问题是 \w 不匹配在域名中有效的破折号,并且匹配不匹配的下划线。
猜你喜欢
  • 1970-01-01
  • 2019-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-06
  • 2017-10-16
  • 2021-04-12
  • 1970-01-01
相关资源
最近更新 更多