我尝试用其他图片网址替换所有图片网址,但我没有成功正确编写正则表达式。
我的图片不一定位于带有img
的{{1}}标记中。
大部分都附有src=""
要替换的内容,例如:
="image url"
答案 0 :(得分:2)
以下是您的需求:
$content = '[side_section poster="image.jpg" position="left" bgrepeat="no-repeat" bgcolor="#f6f6f6" paddingtop="70" paddingbot="70" txtcolor="" ]';
$newContent = (string) preg_replace('/="([^"]*\.(?:png|jpeg|jpg|gif|bmp))"/', '="./images/placeholder.png"', (string) $content);
echo $newContent;
使用的正则表达式是:="([^"]*\.(?:png|jpeg|jpg|gif|bmp))"
您可以在此处测试: DEMO
但是,用于替换图像路径的字符串应如下所示:'="./images/placeholder.png"'
作为替代方案,使用此功能:
function replaceImg($content, $path)
{
return (string) preg_replace('/="([^"]*\.(?:png|jpeg|jpg|gif|bmp))"/', '="'.$path.'"', (string) $content);
}
示例强>:
$content = '[side_section poster="image.jpg" position="left" bgrepeat="no-repeat" bgcolor="#f6f6f6" paddingtop="70" paddingbot="70" txtcolor="" ]';
echo replaceImg($content, './images/placeholder.png');
<强>输出强>
[side_section poster="./images/placeholder.png" position="left" bgrepeat="no-repeat" bgcolor="#f6f6f6" paddingtop="70" paddingbot="70" txtcolor="" ]
示例2 :
$content = 'position="left" poster="image.jpg"';
echo replaceImg($content, './images/placeholder.png');
<强>输出强>
position="left" poster="./images/placeholder.png"