如果没有www并且字符串已命名或https://example.com,如何将www添加到网址?
示例:
http://ellos.dk //should be http://www.ellos.dk
我知道这可能是相当基本但我似乎无法找到一个漂亮的解决方案
答案 0 :(得分:5)
假设www
从不那里:
str_replace('://', '://www.', 'http://ellos.dk');
如果www
可能在那里,您将需要进行一些验证以确定是否需要调用上面的代码。但这将处理将www
置于字符串中。
答案 1 :(得分:5)
你可以在正则表达式中使用“负向前瞻”:
$url = preg_replace('#^(https?)://(?!www\.)#i', '$1://www.', $url);
PHP代码:
<?php
function addWWW($url) {
return preg_replace('#^(https?)://(?!www\.)#i', '$1://www.', $url);
}
var_dump( addWWW('http://ellos.dk') );
var_dump( addWWW('http://www.ellos.dk') );
var_dump( addWWW('https://www.ellos.dk') );
var_dump( addWWW('https://ellos.dk') );
var_dump( addWWW('HTTP://ellos.dk') );
?>
将输出:
string(19) "http://www.ellos.dk"
string(19) "http://www.ellos.dk"
string(20) "https://www.ellos.dk"
string(20) "https://www.ellos.dk"
string(19) "HTTP://www.ellos.dk"
请注意:http://subdomain.ellos.dk
等网址会变为http://www.subdomain.ellos.dk
。
答案 2 :(得分:3)
您可以使用parse_url()
来实现此目标:
function addWWW($url) {
$parts = parse_url($url);
if (strpos($url, '://www') === FALSE) {
return 'http://www.'.$parts['host'];
}
return $url;
}
用法:
echo addWWW('http://ellos.dk');
echo addWWW('http://www.ellos.dk');
输出:
http://www.ellos.dk
http://www.ellos.dk
答案 3 :(得分:2)
添加一些验证:
function addwww($link) {
if(strpos($link,'://www') === false) {
return str_replace('://','://www',$link);
}
return $link;
}