首頁 >後端開發 >php教程 >正規表示式 - PHP正規批量替換Img中src疑問?

正規表示式 - PHP正規批量替換Img中src疑問?

WBOY
WBOY原創
2016-08-22 11:45:371600瀏覽

1、一個描述內容,形如:
<p><img src="file:///C:/Users/Administrator/Desktop/%E6%B8%AC%E8%A9%A6/data/5201608091357/contentPic/%E9%BA%BB%E7%9F%AD%E8%A3%9916/1643805e-1%20.jpg" alt="正規表示式 - PHP正規批量替換Img中src疑問?" ><br><img src="file:///C:/Users/Administrator/Desktop/%E6%B8%AC%E8%A9%A6/data/5201608091357/contentPic/%E9%BA%BB%E7%9F%AD%E8%A3%9916/1643805e-2.jpg" alt="正規表示式 - PHP正規批量替換Img中src疑問?" ><img src="file:///C:/Users/Administrator/Desktop/%E6%B8%AC%E8%A9%A6/data/5201608091357/contentPic/%E9%BA%BB%E7%9F%AD%E8%A3%9916/1643805e-3.jpg" alt="正規表示式 - PHP正規批量替換Img中src疑問?" ><br></p>

2、現在我的需求是批量替換src中的圖片路徑,能夠改成路徑為/upload/img/,請問正則改怎麼寫呢?

回覆內容:

1、一個描述內容,形如:
<p><img src="file:///C:/Users/Administrator/Desktop/%E6%B8%AC%E8%A9%A6/data/5201608091357/contentPic/%E9%BA%BB%E7%9F%AD%E8%A3%9916/1643805e-1%20.jpg" alt="正規表示式 - PHP正規批量替換Img中src疑問?" ><br><img src="file:///C:/Users/Administrator/Desktop/%E6%B8%AC%E8%A9%A6/data/5201608091357/contentPic/%E9%BA%BB%E7%9F%AD%E8%A3%9916/1643805e-2.jpg" alt="正規表示式 - PHP正規批量替換Img中src疑問?" ><img src="file:///C:/Users/Administrator/Desktop/%E6%B8%AC%E8%A9%A6/data/5201608091357/contentPic/%E9%BA%BB%E7%9F%AD%E8%A3%9916/1643805e-3.jpg" alt="正規表示式 - PHP正規批量替換Img中src疑問?" ><br></p>

2、現在我的需求是批量替換src中的圖片路徑,能夠改成路徑為/upload/img/,請問正則改怎麼寫呢?

str_replace('file:///C:/Users/Administrator/Desktop/測驗/data/5201608091357/contentPic/麻短裙16/','/upload/img/',$str)

1.因為你的前綴是固定的話,用str_replace的效率其實更高的。
2.如果不是固定的話,可以參考以下的方法preg_replace_callback
3.調試記得用查看原始碼的形式。

<code><?php
    $str = '<p><img src="file:///C:/Users/Administrator/Desktop/测试/data/5201608091357/contentPic/麻短裙16/1643805e-1.jpg" /><br /><img src="file:///C:/Users/Administrator/Desktop/测试/data/5201608091357/contentPic/麻短裙16/1643805e-2.jpg" /><br /><img src="file:///C:/Users/Administrator/Desktop/测试/data/5201608091357/contentPic/麻短裙16/1643805e-3.jpg" /><br />';

    echo $str;

    $pregRule = "/file:\/\/\/C:\/Users\/Administrator\/Desktop\/测试\/data\/5201608091357\/contentPic\//";

    $result = preg_replace_callback($pregRule, function(){
        return "/upload/img/";
    }, $str);
    echo $result;</code>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn