PHP转义文章内容字符串中的网址
2013-09-22 金城 2432
如果正文的内容中含有未转义的网址(含有中文或其他非字母字符构成的网址),又遇上不同地域默认的文件字符编码的不同,再加上浏览器的不同。一些内容中的非转义网址就不会得到浏览器的正确解析而出现404错误。
下面的例子可以转义文章内容中的网址:
$content="<a href=\"member/name/张三\">张三</a><a href=\"member/name/李四\">李四</a><a href=\"member/name/王二麻\">王二麻</a>";
function at($content){
$s = preg_replace('/href="([^"]+)"/','href="<My*Flag>$1</My*Flag>"/',$content);
$rlt=preg_match_all('/<My\*Flag>[^\*]+<\/My\*Flag>/',$s,$matches,PREG_PATTERN_ORDER);
//print_r($matches);
if($rlt){
$l=count($matches[0]);
for($i=0;$i<$l;$i++){
$mi=$matches[0][$i];
$s=str_replace($mi,urlencode(strip_tags($mi)),$s);
}
}
return $s;
}
echo at($content);
function at($content){
$s = preg_replace('/href="([^"]+)"/','href="<My*Flag>$1</My*Flag>"/',$content);
$rlt=preg_match_all('/<My\*Flag>[^\*]+<\/My\*Flag>/',$s,$matches,PREG_PATTERN_ORDER);
//print_r($matches);
if($rlt){
$l=count($matches[0]);
for($i=0;$i<$l;$i++){
$mi=$matches[0][$i];
$s=str_replace($mi,urlencode(strip_tags($mi)),$s);
}
}
return $s;
}
echo at($content);
- 上一篇:MySQL同结构多表联合查询
- 下一篇:JQuery读取gb2312编码文件