0

我有一个大型 Wordpress 网站(>10,000 个帖子),我想从其帖子中删除所有出站链接 + 锚文本。

我能够通过正则表达式搜索和替换每个帖子来编写一些可以完成工作的东西。但是因为我有这么多帖子,这个脚本实际上是无用的(共享服务器上的内存和执行时间问题)。

在消耗最少内存的同时在数据库上进行正则表达式搜索和替换的最佳方法是什么?我可以通过 mysql 进行正则表达式搜索和替换吗?

您是否还可以确认这是匹配所有链接的正则表达式,除了包含“mysite.com”的链接(内部链接除外):

(<a.*>)(?!mysite\.com)(.*)(<\/a>)
4

1 回答 1

1

如果我遇到同样的情况,我会编写一个脚本来批量处理数据。这使您的脚本性能更高,并且如果您正在运行复制,将确保它不会导致下游复制滞后。

我建议以 200 个为一组进行工作(使用 OFFSET 和 LIMIT 进行读取查询),然后休眠 2-5 秒,然后处理下一批。

我不会谈论您提供的正则表达式,因为错误的响应可能会导致您的链接断开。我还建议您编写一个带有一些示例链接的小型测试脚本,您可以在这些链接上测试正则表达式,一旦您将其锁定,然后将其添加到主脚本中。

于 2013-08-06T17:43:54.940 回答