我刚刚开始允许在我的博客上发表访客帖子,但为了避免垃圾邮件,我想自动限制每个帖子的链接数量。
如果作者创建的链接超过 3 个,则应删除其余链接,但不应删除锚文本。
这可能吗?
最好的问候金克里斯滕森
编辑:
感谢您的回复。我现在找到了以下解决方案:
$html = 'hejsdjhf ksdfh ksdhf ksdfh klsfh kldjfh klsdfh ksdfh ksdfh ksdfh ksd <a href="http://www.test.com">test</a> dkhjdfjkgh ksdfhg ksdhf kjsdhfkg jhsdfklgh sdlfkg <a href="http://www.test.com">test2</a> skdjfh kgh kshg kdjh gklhf gkldhg kjsdfhgk hjsdfkg hdkgh dksfgh ksdfhg ksdhf g <a href="http://www.test.com">test3</a>';
$regexp = "/<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>/siU";
if(preg_match_all($regexp, $html, $matches)) {
$link_count = count($matches[2]);
}
//echo $link_count;
$limit = $link_count - 2;
$regexp = "/<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>/siU";
echo preg_replace($regexp, "$2", $html, $limit);
我不知道它是否非常有效,但它有效:)