-1

php と 1 つの正規表現を使用して、次のことを実行できます。コンテンツ内のすべてのハイパーリンクを取得し、ハイパーリンクのトップ レベル ドメインが配列から指定された 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 に答える