Вы можете использовать "негативный предпросмотр" в регулярном выражении:
$url = preg_replace('#^(https?)://(?!www\.)#i', '$1://www.', $url);
Regex 101 demo
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"
DEMO
ОБРАТИТЕ ВНИМАНИЕ: URL, такие как http://subdomain.ellos.dk
бы превратиться в http://www.subdomain.ellos.dk
.
конкатенации с подстроки, str_replace(), parse_url() затем http_build_url(), есть целый ряд вариантов что-то в качестве основных, как это –
Просто позвольте мне указать на то, что WWW. не * необходимо * как таковое, и URL-адрес может фактически не работать, если вы его добавите. example.com и www.example.com - это два разных домена. – deceze
@deceze зависит от настройки DNS для сайта. – Pitchinnate