【问题标题】:How do i remove duplicate links from a page except first我如何从页面中删除重复的链接,除了第一个
【发布时间】:2011-05-12 09:29:45
【问题描述】:

我对某些内容有问题,这些内容一次又一次地具有相同的链接,所以我想删除除单个之外的所有重复链接,有谁知道如何做到这一点????

这是我删除所有链接的代码

function anchor_remover($page) {
    $filter_text = preg_replace("|<<blink>a *<blink>href=\<blink>"(.*)\">(.*)</a>|","\\2",$page); 
    return $filter_text; 
}

add_filter('the_content', 'anchor_remover');

基本上我需要这个用于wordpress,过滤内容并删除重复链接应该只有一个链接。

【问题讨论】:

  • 不知道你在说什么 :( 请在你的问题中更具体一些。你最好提供一些与问题相关的信息,比如你至少在哪里存储这些链接。
  • 我想从一个页面中删除所有相同的链接,但至少应该有一个链接,希望你能理解我..?
  • 能否提供一些代码示例或入门示例?
  • 你想保留 html 节点吗?还是您想仅在 php 中处理链接?就是那个问题。如果您不提供更多信息,您的问题的简单答案是array_unique....
  • 缺失 preg_replace("|href=\"(.)\">(.*)|", "\\2",$page);

标签: php preg-replace preg-match-all strip-tags array-unique


【解决方案1】:

使用 preg_replace_callback:

<?php
/*
 * vim: ts=4 sw=4 fdm=marker noet
 */
$page = file_get_contents('./dupes.html');

function do_strip_link($matches)
{
        static $seen = array();

        if( in_array($matches[1], $seen) )
        {
                return $matches[2];
        }
        else
        {
                $seen[] = $matches[1];
                return $matches[0];
        }
}
function strip_dupe_links($page)
{
        return preg_replace_callback(
                '|<a\s+href="(.*?)">(.*?)</a>|',
                do_strip_link,
                $page
        );
}

$page = strip_dupe_links($page);
echo $page;

输入:

<html>
        <head><title>Hi!</title></head>
        <body>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="foo.html">foo</a>
                <a href="bar.html">bar</a>
        </body>
</html>

输出:

<html>
        <head><title>Hi!</title></head>
        <body>
                <a href="foo.html">foo</a>
                foo
                foo
                foo
                foo
                foo
                foo
                foo
                foo
                foo
                <a href="bar.html">bar</a>
        </body>
</html>

【讨论】:

  • 亲爱的梅尔,你太棒了,这对我帮助很大,ILU...再次感谢
猜你喜欢
  • 2021-06-10
  • 2013-09-07
  • 2021-05-05
  • 2019-08-22
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多