首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查找子域并使用REGEX添加WWW

查找子域并使用REGEX添加WWW
EN

Stack Overflow用户
提问于 2011-01-15 22:16:05
回答 3查看 1.2K关注 0票数 2

我正在用以下代码验证并将http (或https)添加到URL变量中:

代码语言:javascript
复制
$url = preg_replace("/[^A-Za-z0-9-\/\.\:]/", "", trim($url));
$url = preg_replace('%^(?!https?://).*%', 'http://$0', $url);

但这对我来说还不够。我还需要再走一步。我要检查子域名。如果没有子域,请添加www

例如,如果没有任何子域,并且(在此2 preg_replace())之后,如果$url是:http://example.com,则转换为.example.com )。如果是的话:http://www.example.com,不要碰。

(请用preg_replace )

在总结如果$url没有子域和www,添加www

EN

回答 3

Stack Overflow用户

发布于 2011-01-15 22:38:07

可能更容易使用php的url解析器。

http://www.php.net/manual/en/function.parse-url.php

票数 0
EN

Stack Overflow用户

发布于 2011-01-15 23:25:01

我拿到了这个:

代码语言:javascript
复制
$url = 'http://teknoblogo.com';
$host = parse_url($url, PHP_URL_HOST);
$arr = explode('.', $host);

echo http_build_url($url,
    array(
        'host' => !preg_match('/^www\d*\.$/i', $arr[0]) && count($arr) <= 2 ? 'www.' . $host : $host
    )
);

另请参阅:

  • url()
  • url()
票数 0
EN

Stack Overflow用户

发布于 2012-10-15 17:45:05

如果没有TLD查找表,我认为您可以这样做的唯一方法是,如果您已经知道您的域:

代码语言:javascript
复制
$domain = 'example.com';

$url = preg_replace('~^(https?://)(' . preg_quote($domain, '~') . ')(.*)~i', '$1www.$2$3');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4702449

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档