如何使用php替换url中的子域名

时间:2013-05-08 07:03:13

标签: php replace

需要你们的帮助。 我的网站上有多个子域名 。如果他们使用移动设备,我会将所有用户重定向到移动版。例如我的子域名

http://in.example.com
http://uk.example.com
http://cn.example.com

移动侦测部分没问题。 我想要做的是检查子域名并将其替换为'm'。 假设我有以下网址

http://uk.example.com/Gallery/index.php

然后替换的URL应该像

http://m.example.com/Gallery/index.php

如果你能帮助我,我会很高兴。谢谢

3 个答案:

答案 0 :(得分:4)

以下代码可以执行,检查

  $url = 'http://en.example.com';

    $parsedUrl = parse_url($url);

    $host = explode('.', $parsedUrl['host']);

    $subdomain = $host[0];
    echo $subdomain;

答案 1 :(得分:0)

我写了一个函数来做到这一点:

public function overrideSubDomain($subDomain, $url)
{
    $info = parse_url($url);

    $array = explode('.', $info['host']);

    $withoutDomain = (array_key_exists(count($array) - 2,
            $array) ? $array[count($array) - 2] : '') . '.' . $array[count($array) - 1];

    $newSubDomain = $info['scheme'] . '://' . $subDomain . '.' . $withoutDomain;

    return $newSubDomain;
}

答案 2 :(得分:-1)

尝试此代码:

preg_replace('/\w+(?=\.\w+\.\w+)/i', 'm', 'http://uk.example.com/Gallery/index.php');

result