我正在用以下代码验证并将http (或https)添加到URL变量中:
$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。
发布于 2011-01-15 22:38:07
可能更容易使用php的url解析器。
http://www.php.net/manual/en/function.parse-url.php
发布于 2011-01-15 23:25:01
我拿到了这个:
$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
)
);另请参阅:
发布于 2012-10-15 17:45:05
如果没有TLD查找表,我认为您可以这样做的唯一方法是,如果您已经知道您的域:
$domain = 'example.com';
$url = preg_replace('~^(https?://)(' . preg_quote($domain, '~') . ')(.*)~i', '$1www.$2$3');https://stackoverflow.com/questions/4702449
复制相似问题