-1

可以使用 php 和一个正则表达式来执行以下操作。如果超链接的顶级域与数组中的给定 tld 名称匹配,则获取内容内的所有超链接并重写它们。

现在有一个正则表达式,它重写给定内容中的所有超链接

preg_replace('/<a(.*)href="([^"]*)"(.*)>/','<a$1href="goto.php?url=$2"$3>', $content);

例子

$tld = array("http://www.example.com","http://www.test.com");

if <a href="www.example.com">example</a> than <a href="/goto.php?url= www.example.com"</a>;
4

1 回答 1

1

你可能想巩固你的正则表达式......

$pattern = <<<EOL
/<a([^>]+)href\s*=\s*(['" ]?)([^"'> ]*)(['" ]?)([^>]*)>/si
EOL;

$replacement = "<a$1href='goto.php?url=$3'$5>";

preg_replace($pattern, $replacement, $content);

现在无法测试这个,所以可能有一个错字......

于 2012-09-06T17:35:06.357 回答