Php 如何从页面中删除重复链接(第一个链接除外)
我有一个问题与一些内容,其中有相同的链接一次又一次,所以我想删除所有重复的链接,除了一个单一的,有人知道如何做到这一点 这是我删除所有链接的代码Php 如何从页面中删除重复链接(第一个链接除外),php,preg-replace,preg-match-all,strip-tags,array-unique,Php,Preg Replace,Preg Match All,Strip Tags,Array Unique,我有一个问题与一些内容,其中有相同的链接一次又一次,所以我想删除所有重复的链接,除了一个单一的,有人知道如何做到这一点 这是我删除所有链接的代码 function anchor_remover($page) { $filter_text = preg_replace("|<<blink>a *<blink>href=\<blink>"(.*)\">(.*)</a>|","\\2",$page); return $fil
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');
功能锚固件移除器($page){
$filter_text=preg_replace(“|(.*)|”,“\\2”,“$page”);
返回$filter\u文本;
}
添加_过滤器(“_内容”、“锚定_移除器”);
基本上,我需要wordpress的这个,过滤内容和删除重复链接应该只有一个链接。使用preg\u replace\u回调:
<?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节点吗?或者你想用php处理链接吗?这就是问题所在。如果你不提供更多信息,你的问题的简单答案就是array\u unique
…缺少preg\u replace(“| |”、“\\2”、$page);亲爱的梅尔,你太棒了,这对我帮助很大,ILU…再次感谢
<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>