我有一堆像这样的网址。
$urls = array(
'https://site1.com',
'https://www.site2.com',
'http://www.site3.com',
'https://site4.com',
'site5.com',
'www.site6.com',
'www.site7.co.uk',
'site8.tk'
);
我希望将这些字符串中的http、https、://和www.删除,以便输出看起来像这样。
$urls = array(
'site1.com',
'site2.com',
'site3.com',
'site4.com',
'site5.com',
'site6.com',
'site7.co.uk',
'site8.tk'
);
我想出了这个解决方案。
foreach ($urls as $url) {
$pattern = '/(http[s]?:\/\/)?(www\.)?/i';
$replace = "";
echo "before: $url after: ".preg_replace('/\/$/', '', preg_replace($pattern, $replace, $url))."\n";
}
我想知道如何避免第二个 preg_replace。有什么想法吗?
$urls = preg_replace('~^(?:https?://)?(?:www\.)?~i', '', $urls);
。 - Alix Axel?
使s
可选。 - Paul