我正在尝试转换一个包含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/…中的字母数字或反斜杠。。。。(很抱歉重复)