使用PHP转换字符串中所有html链接的最简单方法


Simplest way to convert all html links in a string using PHP

我正在尝试转换一个包含html文本的文本块-我想找到所有http链接并将其转换为链接跟踪目的。

因此,例如字符串中的任何类似内容都将转换为后一个

<a href="http://www.google.com">Some Link</a>
<a href="http://www.mysite.com/tracking.php?url=www.google.com">Some Link</a>

考虑到原始字符串将由各种html、图像等组成,任何人都能做到这一点吗?

使用此正则表达式:(更新)

<?php
$str = '<h1>Page Title</h1><a href="http://www.google.com/">Google</a>';
$text = preg_replace("/href='"http':'/'/([a-zA-Z0-9'-]+'.[a-zA-Z0-9]+'.[a-zA-Z]{2,3}('/*)?)/","href='"http://www.mysite.com/tracking.php?url=$1'"",$str);
echo $text;
?>

输出:

<h1>Page Title</h1><a href="http://www.mysite.com/tracking.php?url=www.google.com/"">Google</a>
$str = '<h1>Page Title</h1><a href="http://www.google.com">Google</a>';
$text = preg_replace('href='"http'://([a-zA-Z0-9'-'.]+'.[a-zA-Z]{2,3}(/'S*)?)'"', 'href='"YOUR_TRACKING_URL=$1'"', $str);
echo $text;

警告:preg_replace()[function.preg replace]:分隔符不能是/home/…中的字母数字或反斜杠。。。。(很抱歉重复)

相关文章: