PHP使用preg_replace替换文本但不替换图像源

时间:2013-07-08 15:25:07

标签: php preg-replace

我是preg_replace的新手并遇到问题。

我有这种文字

$text  = 'welcome to example.com site and this is image from example.com <img alt="image of example.com site" src="http://example.com/image.jpg"/> have a nice day!';

是否可以使结果成为

welcome to yyy.com site and this is image from yyy.com <img alt="image of yyy.com site" src="http://example.com/image.jpg"/> have a nice day!

就像你在这里看到的那样,在纯文本和alt example.com 上改为 yyy.com 但是在img源代码上,img src仍然是示例.com(我希望保持这样)

如果可能使替换不区分大小写,那么eXample.com examplE.com exAmPLe.com将全部替换为yyy.com

注意:在某些img中,它们有alt属性,但有些属性没有alt属性

2 个答案:

答案 0 :(得分:0)

你可以使用lookbehinds:

preg_replace("/(?<!\/)xxx/", "yyy", $text);

答案 1 :(得分:0)

这里只是关于道德的说明。

如果网站example.com属于其他人,则您不应声明该图片的所有权(属于您的网站example2.com)。充其量,这是“hotlinking”;最糟糕的是,盗窃。如果您有权限来访问您网站上的图片,那很好。请注意,任何提取该图像的人都应该看到它来自example.com而不是example2.com,并且应该怀疑为什么你在 example2.com上声称它是。他们的安全软件甚至可以阻止这种跨站点活动。