我有一个输入字段,用户可以在其中键入URL。他可以用许多不同的方式键入URL,例如:
无论他如何输入,我都想这样回应: example.com
仅当它是子域时,它应如下所示: subdomain.example.com
我该怎么做?
答案 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