duandao6414 2013-12-13 18:33
浏览 42
已采纳

Php preg_replace更改图像宽度

I have some images in my database

http://***.com/2013/12/reign-death-midseason-finale-featured.jpg?w=500
http://***.com/reign-death-midseason-finale-featured.png?w=120
http://***.com/2013/12/finale-featured.jpg?w=50
http://***.com/2013/finale-featured.jpg?w=50&h=50
http://***.com/2013/12/reign-death-midseason-finale-featured.jpg

I want to change the images with w= to same width and ?w=50&h=50 also. all with W should come as w=600 and w=600&h=600. This is what I was trying str_replace but there is a problem with this that w= always change and in some cases there is height also and it also need to be changed, i have search net and found that it can be done with preg_replace don't know how.

EDIT

Answer needed is if(hight is null) result is case 1 w=600 and if h is not null case 2 w=600&h=600 please help

  • 写回答

2条回答 默认 最新

  • duanmian1085 2013-12-13 19:25
    关注

    Sorry it took me a while, I was kinda busy

    try the following

    $pattern = '~(?<=\W(w|h)\=)(\d+?)(?=\D|$)~';
    $replace = '600';
    $subject = 'http://localhost/2013/finale-featured.jpg?w=50&h=50';
    echo preg_replace($pattern,$replace,$subject);
    

    try this with many variations of your URIs

    PS: this kind of advanced string finding/replacing is the domain of regular expressions. If you find you need to do a lot of this, consider starting to learn about them, it's a whole language in itself. I used some assertions (lookahead (?<=) and lookbehind (?=)) for this particular solution

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法
  • ¥15 数学建模竞赛求指导帮助