我正在使用以下代码验证并将 http (或 https )添加到我的网址变量中:
$url = preg_replace("/[^A-Za-z0-9-\/\.\:]/", "", trim($url));
$url = preg_replace('%^(?!https?://).*%', 'http://$0', $url);
但这对我来说还不够。我还需要一个步骤。我必须检查子域名。如果没有任何子域名,请添加 www 。
例如,如果没有任何子域名 (在此 preg_replace()之后)如果$ url为: http://example.com ,请转换为http:// WWW 。 example.com。如果$ url为: http://www.example.com ,请勿触摸。
(请使用preg_replace)
摘要如果$ url没有子域名和www,请添加 www 。
答案 0 :(得分:0)
可能更容易使用php的url解析器。
答案 1 :(得分:0)
我明白了:
$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
)
);
另见:
答案 2 :(得分:0)
如果没有TLD查找表,我认为你能做到这一点的唯一方法就是你已经了解你的域名:
$domain = 'example.com';
$url = preg_replace('~^(https?://)(' . preg_quote($domain, '~') . ')(.*)~i', '$1www.$2$3');