1 回答

TA貢獻1772條經驗 獲得超5個贊
首先我們定義匹配正則表達式(PCRE 兼容):
~<blockquote>\s*(.+?)<p?class="entry-title">(.+?)<\/blockquote>~s
請參閱RegExr現場直播;點擊“解釋”即可理解該表達式。然后我們的替代品:
\1<p>\2
然后,這是一個添加了周圍內容的測試塊:
<blockquote>
<h3>Te sugerimos</h3>
<p class="entry-title"><a target="_blank" rel="noopener noreferrer" style="outline: none;"><strong>POST TITLE</strong></a></p>
</blockquote>
<p>Other stuff</p>
<blockquote>Not matched</blockquote>
當應用上面的正則表達式時,例如在 中preg_replace($pattern, $replace, $content),上面的塊將轉換為:
<h3>Te sugerimos</h3>
<p><a target="_blank" rel="noopener noreferrer" style="outline: none;"><strong>POST TITLE</strong></a></p>
<p>Other stuff</p>
<blockquote>Not matched</blockquote>
我認為這是您想要的輸出。
現在,如何將其應用到您的所有內容?您有三個基本選擇:
使用 MySQL 的REGEXP_REPLACE函數——無論是在終端、PHPMyAdmin 中還是從 PHP 腳本中。
在 PHP 中處理清理:對具有此模式的所有帖子運行選擇查詢;然后用
preg_replace
;修改內容?最后更新數據庫條目。下載數據庫轉儲,在您最喜歡的文本編輯器(支持正則表達式)中打開它,或將其通過管道傳輸到您選擇的工具中,并進行必要的替換;最后重新加載到您的數據庫中。(發生這種情況時,您可能希望將站點置于維護模式!)
無論您選擇哪種方式執行此操作,請務必先備份數據。
- 1 回答
- 0 關注
- 169 瀏覽
添加回答
舉報