我想替换下面的图片来源 http://www.fishingwithdon.com/wp-content/uploads/2006/06/drop_off_area.jpg
与 http://www.test.com/test/uploads/2006/06/drop_off_area.jpg
意味着我想用“http://www.test.com/test/”替换“http://www.fishingwithdon.com/wp-content/”
但我想要替换的字符串每次都不一样。
任何帮助将不胜感激。
谢谢,
Umesh Kulkarni
答案 0 :(得分:1)
$str = preg_replace(
'~\bhttp://www\.fishingwithdon\.com/wp-content/~',
'http://www.test.com/test/',
$str
);
但在你的情况下,简单的str_replace是否足够?
答案 1 :(得分:1)
preg_replace ('/^(http:).*(\/)$/', 'http://www.test.com/test/', $src)
应该做的伎俩
答案 2 :(得分:0)
$html = "<img src=\"http://www.fishingwithdon.com/wp-content/uploads/2006/06/drop_off_area.jpg\"/>";
preg_match_all('#<img[^>]*>#i', $html, $match);
if(count($match) > 0)
{
foreach($match[0] as $image)
{
$new = preg_replace('/http:\/\/www\.(.+)\.com\//', 'http://www.test.com/test/', $image);
$html = str_replace($image, $new, $html);
}
}
echo $html;
可以相应修改以适应不同的网址情况,即(非www,non.com,https vs http)
答案 3 :(得分:0)
你确定你需要正则表达式吗? str_replace不足够吗?它甚至说:
如果你不需要花哨的替换规则(比如正则表达式),你应该总是使用这个函数而不是preg_replace()。
示例:
$replace_needle = 'http://www.fishingwithdon.com/wp-content/';
$replacement = 'http://www.test.com/test/';
$replace_haystack = 'http://www.fishingwithdon.com/wp-content/uploads/2006/06/drop_off_area.jpg';
$result = str_replace($replace_needle, $replacement, $replace_haystack);