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"
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看