我有一个字符串,其中包含网站上的多个链接,但我需要将其更改为链接到其他网站。
例如,http://www.site2.com/contact
和http://www.site3.com/contact
需要成为http://www.mainsite.com/contact
。此处的网址和/contact
只是示例,我需要查找http://
的所有实例,并使用新网址替换其与下一个/
之间的连接。
我有办法通过preg_replace()
(或类似的,如果这是最佳选项)这样做吗?
答案 0 :(得分:3)
更新:这个答案不反映了这个问题,因为这个问题首先有点误导。看看Jeroens或ShogunArts.des回答
不需要正则表达式
$string = str_replace(
array('http://www.site2.com/','http://www.site3.com/'),
'http://www.mainsite.com/',
$string
);
答案 1 :(得分:2)
host
部分替换为mainsite.com
答案 2 :(得分:1)
这样的事情应该这样做:
$pattern = '#(http://)([a-z0-9.-])+/+([a-z0-9.-])#i';
$oldurl = 'http://www.site2.com/contact';
$replacement = '$1www.mainsite.com/$3';
$newurl = preg_replace($pattern, $replacement, $oldurl);
修改强>
$string = 'String with many URLs';
echo replaceUrls($string);
function replaceUrls($string) {
$pattern = '#(http://)([a-z0-9.-])+/+([a-z0-9.-]|)#i';
$replacement = '$1www.mainsite.com/$3';
return preg_replace($pattern, $replacement, $string);
}
答案 3 :(得分:0)
用新网站名称替换正则表达式(?<=http://)(www\.site2\.com)(?=/contact)