douzhuo1853 2014-09-28 22:37
浏览 40
已采纳

PHP - 'preg_replace regex'所有图像的URL

I tried to replace all image URLs with an other image URL but I didn't success to correctly write the regex.

My images are not necessarily in an img tag with src="".

It is mostly enclosed with ="image url"

Content to replace for example:

[side_section poster="image.jpg" position="left" bgrepeat="no-repeat" bgcolor="#f6f6f6" paddingtop="70" paddingbot="70" txtcolor="" ]

$content = (string) preg_replace('/(?[!=")(http:\\/\\/.+(png|jpeg|jpg|gif|bmp))/Ui', './images/placeholder.png', (string) $content);
  • 写回答

1条回答 默认 最新

  • dongliu5475 2014-09-28 22:56
    关注

    Here is what you need:

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

    The regex used is: ="([^"]*\.(?:png|jpeg|jpg|gif|bmp))"

    You can test the it here: DEMO

    However the string that you use to replace your image paths should look like this: '="./images/placeholder.png"'

    As an alternative use this function:

    function replaceImg($content, $path)
    {
        return (string) preg_replace('/="([^"]*\.(?:png|jpeg|jpg|gif|bmp))"/', '="'.$path.'"', (string) $content);
    }   
    

    example:

    $content = '[side_section poster="image.jpg" position="left" bgrepeat="no-repeat" bgcolor="#f6f6f6" paddingtop="70" paddingbot="70" txtcolor="" ]';
    echo replaceImg($content, './images/placeholder.png');
    

    OUTPUT

    [side_section poster="./images/placeholder.png" position="left" bgrepeat="no-repeat" bgcolor="#f6f6f6" paddingtop="70" paddingbot="70" txtcolor="" ]
    

    example 2:

    $content = 'position="left" poster="image.jpg"';
    echo replaceImg($content, './images/placeholder.png');
    

    OUTPUT

    position="left" poster="./images/placeholder.png"
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改