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 href="https://example.com/post-title/" 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 href="https://example.com/post-title/" 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 关注
- 97 浏览
添加回答
举报