仅回显URL的一部分(字符串)

时间:2015-04-28 23:47:54

标签: php

我有一个输入字段,用户可以在其中键入URL。他可以用许多不同的方式键入URL,例如:

无论他如何输入,我都想这样回应: example.com

仅当它是子域时,它应如下所示: subdomain.example.com

我该怎么做?

2 个答案:

答案 0 :(得分:2)

parse_url()PHP_URL_HOST组件一起用作第二个参数:

$url = 'example.com/index.php';
if (preg_match("#https?://#", $url) === 0) {
    $url = 'http://'.$url;
}
echo parse_url($url, PHP_URL_HOST);

(我从this answer获得了一些帮助,以确保网址上始终附有协议。)

答案 1 :(得分:0)

我允许自己回答我自己的问题:

$url = 'https://www.example.com/index.php';
$str = preg_replace('#^https?://|www.#', '', rtrim($url,'/'));
echo (strpos($str,'/') !== false) ? strstr($str, '/', true) : $str;

您可以根据需要定义$ url。结果始终为 example.com