需要正则表达式来替换图像源的部分

发布于 2024-12-04 19:33:09 字数 521 浏览 0 评论 0原文

我想替换下面的图片源 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/”

但是我想要的字符串每次更换的内容都不会相同。

任何帮助将不胜感激。

谢谢,

乌梅什·库尔卡尼

I want to replace below image source
http://www.fishingwithdon.com/wp-content/uploads/2006/06/drop_off_area.jpg

with
http://www.test.com/test/uploads/2006/06/drop_off_area.jpg

Means I want to replace "http://www.fishingwithdon.com/wp-content/" with "http://www.test.com/test/"

But string I want to replace will not be same each time.

Any help will be appreciated.

Thanks,

Umesh Kulkarni

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夏天碎花小短裙 2024-12-11 19:33:09
preg_replace ('/^(http:).*(\/)$/', 'http://www.test.com/test/', $src)

那应该可以解决问题

preg_replace ('/^(http:).*(\/)$/', 'http://www.test.com/test/', $src)

That should do the trick

又怨 2024-12-11 19:33:09
$str = preg_replace(
    '~\bhttp://www\.fishingwithdon\.com/wp-content/~',
    'http://www.test.com/test/',
    $str
);

http://codepad.org/xTvLGXC8

但这不是一个简单的 str_replace 适合您的情况吗?

$str = preg_replace(
    '~\bhttp://www\.fishingwithdon\.com/wp-content/~',
    'http://www.test.com/test/',
    $str
);

http://codepad.org/xTvLGXC8

But wouldn't a simple str_replace be sufficient in your case?

橘虞初梦 2024-12-11 19:33:09
$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;

可以相应修改以适应不同的 url 情况,即(非 www、非 .com、https 与 http)

$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;

Can Modify accordingly to adjust for different url situations ie (non-www, non-.com, https vs http)

灯下孤影 2024-12-11 19:33:09

确定需要一个正则表达式吗? 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);

Are you sure that you need a regex for that? Wouldn't str_replace be sufficient? It even says:

If you don't need fancy replacing rules (like regular expressions), you should always use this function instead of preg_replace().

Example:

$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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文