【问题标题】:Select <a> tags from databse and add rel="nofollow"从数据库中选择 <a> 标签并添加 rel="nofollow"
【发布时间】:2017-05-22 15:49:23
【问题描述】:

我不确定如何实现以下内容:

我有一个数据库表“帖子”包含 ID、内容,我在帖子表中有超过 20000 个帖子,我想进行 mysql 查询以查找内容记录中没有 rel= 的所有外部标签"nofollow" 属性,然后添加 rel="nofollow" 并更新帖子。

关于如何实现这个有什么建议吗?

【问题讨论】:

  • 您需要先尝试一下。向我们展示您尝试过的代码,然后我们将从那里为您提供帮助。
  • 我给你一个提示,使用存储过程更容易,看看这个:dev.mysql.com/doc/refman/5.7/en/string-functions.html
  • 考虑修改数据,而是在获取数据之后显示数据之前“修复”输出。
  • 您实际上是否将 HTML 标记存储在数据库中?如果是这样,那不是一个好主意。 HTML/PHP/MySQL 都是完全不同的动物,应该这样对待。
  • 感谢@RickJames 的建议,您说的完全正确,我会选择这个解决方案。

标签: php mysql regex select


【解决方案1】:

我在 Stackoverflow 上找到了这个解决方案,抱歉找不到它的参考。它对我有用。

$content = nofollow($content,'example.com');
function nofollow($html, $skip = null) {
    return preg_replace_callback(
        "#(<a[^>]+?)>#is", function ($mach) use ($skip) {
            return (

                !($skip && strpos($mach[1], $skip) !== false) &&
                strpos($mach[1], 'rel=') === false
            ) ? $mach[1] . ' rel="nofollow">' : $mach[0];
        },
        $html
    );
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2014-04-26
    • 1970-01-01
    • 2012-11-30
    • 1970-01-01
    相关资源
    最近更新 更多