为一个莫名其妙的问题已经折腾2天了,项目时间紧张,快崩溃了,求救啊~最开始代码如下:
function utf8Substr($str, $len, $from=0 , $dot='..')
{
$strNew = preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
return ($str!=$strNew)?$strNew.$dot:$str;
}
可返回被截取的中英文字符串
参数为原字符串、要截取的长度、起始长度、当字符串截取后后面要增加的字符
后经过测试,发现不能成功截图带有HTML的字符串后修改如下:
function utf8Substr($str, $len, $from=0 , $dot='..')
{
$str = strip_tags($str);
$strNew = preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
return ($str!=$strNew)?$strNew.$dot:$str;
}
这个函数基本都能正常工作了,但最近发现一个问题,就是用ewebeditor编辑后存入数据库的内容,带有链接的就不能成功截取了,查看了一下,编辑器把链接都写为:<A href="*"></A>这样,怀疑是strip_tags没处理干净,所有就又写了一行$str = str_replace('<A','<a',$str); $str = str_replace('</A','</a',$str);
结果发现转出来,链接的样式还是大写。现在问题2个,1:为什么没转为大写字符串?2、为什么带有超链这个函数就把所有内容都显示出来了,根本没有截取
function utf8Substr($str, $len, $from=0 , $dot='..')
{
$strNew = preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
return ($str!=$strNew)?$strNew.$dot:$str;
}
可返回被截取的中英文字符串
参数为原字符串、要截取的长度、起始长度、当字符串截取后后面要增加的字符
后经过测试,发现不能成功截图带有HTML的字符串后修改如下:
function utf8Substr($str, $len, $from=0 , $dot='..')
{
$str = strip_tags($str);
$strNew = preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$len.'}).*#s',
'$1',$str);
return ($str!=$strNew)?$strNew.$dot:$str;
}
这个函数基本都能正常工作了,但最近发现一个问题,就是用ewebeditor编辑后存入数据库的内容,带有链接的就不能成功截取了,查看了一下,编辑器把链接都写为:<A href="*"></A>这样,怀疑是strip_tags没处理干净,所有就又写了一行$str = str_replace('<A','<a',$str); $str = str_replace('</A','</a',$str);
结果发现转出来,链接的样式还是大写。现在问题2个,1:为什么没转为大写字符串?2、为什么带有超链这个函数就把所有内容都显示出来了,根本没有截取
并不存在 strip_tags没处理干净
a.info {position:relative; z-index:0; text-decoration:none;font-size:9pt;line-height:23px; }
a.info:hover {z-index:1; }
a.info span {display: none }
a.info:hover span {display:block;position:absolute;top:50px;left:60px;width:200px;border:2px solid #cccccc; background:#f8f8f8; color:#333;padding:5px;text-align:left; }
.myBtn {background-color:#efefef; border:#666 solid 1px; padding-left:8px;padding-right:7px;}
</style><a class="info" href="<?=$urlView?>"
target="<?=($ctrl=='content_list')?'main':'_self'?>"><?=utf8Substr($contView,$maxLen-1)?>
<span><?=strip_tags($contView)?></span></a>现在加入了<?=strip_tags($contView)?>就可以了,之前直接用的$contView,带有链接就直接显示了出来,不带链接时效果正常