您的位置:首页 > 其它

生成搜索风格的字符串即关键字用指定颜色并适当剪裁字符串

2007-04-20 09:43 351 查看
<?
/*
* 可以避免乱码的截取汉字
* 参数 $str 为字符串,$start 为开始字符,$len 结束字符
* 返回截取后的字符
*/
function msubstr($str, $start, $len) {
$tmpstr = "";
$strlen = $start + $len;
for($i = 0; $i < $strlen; $i++) {
if(ord(substr($str, $i, 1)) > 0xa0) {
$tmpstr .= substr($str, $i, 2);
$i++;
} else
$tmpstr .= substr($str, $i, 1);
}
return $tmpstr;
}
/*****************************************************************
*功能:
* 将一个字符串转换为搜索风格的字符串,即关键字用特殊颜色标记
* 字符串长度超出指定长度则截取。
*参数:
* $key: 关键字
* $str: 原始字符串
* $len: 字符串保留长度
* $keycolor: 关键字颜色,默认为红色
*返回值:搜索风格的字符串
*日期:2007-04-19
*作者:高西林
*版权:高西林
*修改记录:
*****************************************************************/
function search_style($key,$str,$len,$keycolor='#FF0000')
{
$oldstr = $str;
$keystyle = "<font color=/"$keycolor/">$key</font>";
if(strlen($str) > $len)
{
$index = stripos($oldstr,$key);
$keylen = strlen($key);
if($index + $keylen <= $len)
{
$oldstr = msubstr($str,0, $len);
}
else
{
$oldstr = msubstr($str,$index + $keylen - $len, $len);
}
}
$newstr = preg_replace("/$key/i", $keystyle, $oldstr);
return $newstr;
}
?>

<?php
///使用实例
echo search_style("风格","搜索风格测试",20)."...";
?>

运行结果如下:

搜索风格测试...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: