聯系官方銷售客服
1835022288
028-61286886
用自定義函數過濾掉內容中img標簽里style所有元素,在custop.php用了下面的代碼,但是發現會把p標簽里的style也都過濾了,有沒有大神能幫忙看看
$content = preg_replace( '/(<img.*?)(style=.+?[\'|"])|((width)=[\'"]+[0-9]+[\'"]+)|((height)=[\'"]+[0-9]+[\'"]+)/i', '$1' , $content);
首先要知道你用在什么地方,在custop.php只能定義函數不能寫你這一句代碼
這一段表示查找img標簽的下一個style
如果你有一個img標簽里面沒有style,就會把下一個標簽里的style刪除
我不是很懂正則,具體怎么弄您再研究研究
有大神能幫忙么
回復@云畔設計 是custop.php里函數的一部分
有個辦法
你先把 $content 里的 p替換一下
$content = str_replace("<p style=","<p_s_t_y_l_e=",$content);
$content = preg_replace( '/(<img.*?)(style=.+?[\'|"])|((width)=[\'"]+[0-9]+[\'"]+)|((height)=[\'"]+[0-9]+[\'"]+)/i', '$1' , $content);
$content = str_replace("<p_s_t_y_l_e=","<p style=",$content);
輸出就保留了 p style
不過這個有個漏洞,就是如果 p和style 不是連一起的話,可能無法判斷到!
試試這個
我這個是讓你的img標簽里面只剩下src="***"
剛才在 CSDN 看到一段代碼,可以實現
上面會只剩下 src
下面這段則會保留除了 style 之外的
樓主原來的也類似您這種
這種如果img里面沒有style,就會把下一個其他標簽的style刪除,也就是樓主想解決的問題
回復@小黃人 18html.com
回復@臥龍隱者
不存在的,我這里只替換 <img> 內的,不會自動跳到下一個
這就奇怪了,我這邊不行
回復@小黃人 18html.com
回復@臥龍隱者
那就不清楚了,會不會是PHP版本問題
回復@臥龍隱者
試試這個,測試可以通過,結尾加個結束就好了
這樣就行了,高手
回復@小黃人 18html.com
回復@臥龍隱者
測試了下,長文應該有問題!你那一句是通過了!長文復雜情況下,可能會出問題
回復@臥龍隱者
同一行會替換下一個
><p
如果換行,就不會替換
>
<p
原來如此
樓主的好像也是要換行
回復@小黃人 18html.com
回復@臥龍隱者
這樣吧,在原內容上,先給 > 弄個換行,這樣在替換的時候就不會延續了
對于前端也不影響