php截取函数

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:43:55
用uchome做了一个网站,现在要用到它里面的数据调用,代码如下:
<li><a href="http://127.0.0.1/./space.php?uid=$value[uid]&do=blog&id=$value[blogid]" target = "_blank">$value['subject']</a></li>
我想把调用出来的结果限制它输出几个字,$value['subject']这个就是调用的要显示出来的数据,怎么样在这上面加个PHP的截取函数的功能,就能让它只显示出来几个字以后用....代替,麻烦高手们帮助解决一下,谢谢了!

感觉几个回答都不是太好,因为一般$value['subject']看字面意思应该是中文,如果直接用substr的话处理不是太好,因为一个汉字是2个字符,这样容易出现1个字符的乱码。
解决方法:
/* 截取一定长度的完整的中文字符 */

function cnsubstr($str,$strlen=10) {

if(empty($str)||!is_numeric($strlen)){
return false;
}
if(strlen($str)<=$strlen){
return $str;
}

//得到第$length个字符 并判断是否为非中文 若为非中文
//直接返回$length长的字符串
$last_word_needed=substr($str,$strlen-1,1);
if(!ord($last_word_needed)>128){
$needed_sub_sentence=substr($str,0,$strlen);
return $needed_sub_sentence;
}else{
for($i=0;$i<$strlen;$i++){
if(ord($str[$i])>128){
$i++;
}
}//end of for
$needed_sub_sentence=substr($str,0,$i);
return $needed_sub_sentence;
}
}
直接调用这个函数就可以了。
例如:根据楼主问的文题就可以这样来做了
假如楼主想显示20个汉字,即40个字符。
if(str