Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用REGEX大量删除Wordpress帖子中应用的旧样式?_Php_Regex_Linux_Wordpress - Fatal编程技术网

Php 如何使用REGEX大量删除Wordpress帖子中应用的旧样式?

Php 如何使用REGEX大量删除Wordpress帖子中应用的旧样式?,php,regex,linux,wordpress,Php,Regex,Linux,Wordpress,你好 我有一个大型杂志网站,我刚从Divi迁移到X Pro。每个帖子里都有一个指向另一个帖子的提示。总共有超过10000篇文章,所以这不是编辑可以在每篇文章中手动修复的。此元素已添加到帖子内容中 <blockquote> <h3>Te sugerimos</h3> <p class="entry-title"><a href="https://example.com/post-title/" targe

你好

我有一个大型杂志网站,我刚从Divi迁移到X Pro。每个帖子里都有一个指向另一个帖子的提示。总共有超过10000篇文章,所以这不是编辑可以在每篇文章中手动修复的。此元素已添加到帖子内容中

<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>

苏杰里莫斯酒店

它应该只是一个
h3
标记,然后是一个
p
标记,没有
条目标题
类,当然也没有
块引号
标记

这些代码只是帖子的一部分。回到旧的Divi网站,编辑通常使用原生WP WYSIWYG编辑器撰写文章。是Divi,出于我不知道的原因,应用了所有这些……风格?不管怎么说,在我完成迁移后,一切都传递到了这个基于X-Pro的网站上

在这里,我检查了WP WYSIWYG中的每一篇文章,它们看起来都很正常,当我在网上看到任何文章时,都会有大量的文本。当我在PostEditor中检查HTML选项卡时,我看到了所有的垃圾代码

为了摆脱所有这些,我正在考虑使用REGEX,但老实说,我不知道如何告诉REGEX从
p
标记中删除每个
p
标记,该标记位于
blockquote
标记中,我也会删除,但前提是它包含所有这些元素

这将是一个救命稻草。我快疯了


提前谢谢

首先,让我们定义匹配的正则表达式(PCRE兼容):

~<blockquote>\s*(.+?)<p class="entry-title">(.+?)<\/blockquote>~s
我想这是你想要的结果

现在,如何将其应用于所有内容?您有三个基本选项:

  • 使用MySQL的函数——无论是在终端、PHPMyAdmin还是从PHP脚本。有关用法示例,请参见,然后与您的数据库结构匹配
  • 在PHP中处理清理:使用此模式对所有帖子运行select查询;然后用
    preg_replace
    修改内容;最后更新数据库条目
  • 下载一个数据库转储,在你最喜欢的文本编辑器中打开它(支持regex),或者将它导入你选择的工具中,并进行必要的替换;最后重新加载到数据库中。(发生此情况时,您可能希望站点处于维护模式!)

  • 无论您选择哪种方式,请务必首先备份您的数据。

    先生,非常感谢您提供了如此深刻的信息。我能修好一切。很高兴听到“AlainAlemany”。您选择了哪条路线来应用正则表达式?
    \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>
    
    <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>