实际上PHP核心是把所有的文本都安ASIIC来看待的,GBK编码下一个中文字符是2个字节,所以substr时候有可能截取办个中文字符例如stbstr("a中", 0, 2)就把“中”截断了。
创新互联公司来电联系:18982081108,为您提供成都网站建设网页设计及定制高端网站建设服务,创新互联公司网页制作领域十年,包括木屋等多个行业拥有多年的营销推广经验,选择创新互联公司,为企业保驾护航。
mb_string有的服务器没有编译进去。
下边有一个截取中文字符的函数,要求是GBK编码的。
$str是字符串,$strlen是要截取的长度,一个中文算两个字符。
用这个函数就不会出现乱码了
?php
/* 截取一定长度的完整的中文字符 */
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;
}
}
strip_tags是PHP自带的过滤HTML标签的函数。
$row=mb_substr(htmlspecialchars(strip_tags($latestnews['content'])),0,26,'UTF-8')
如果想把script/script之间的也去掉,只能正则了:
$str = preg_replace("|script.*.*/script|Usi", '', $str);
?php
//方法一
$str = "abcstat=100remain=1589";
$start = strrpos($str, '=');
echo substr($str , $start+1);
//方法二
$str = "abcstat=100remain=1589";
$arr = explode('=', $str);
echo $arr[2];
?
取值的方法有很多种,简单的给出2个
望采纳Thx
1、从第4个字符开始截取到字符串末尾,类似asp中的left:
输出: lacecake.com
2、PHP substr函数从右边截取3个字符,类似asp中的right:
输出:.com
3、PHP substr函数从第4个字符开始截取3个字符:
输出:lac
4、有时我们知道一个字符串的开始和结尾,中间是不定长的字符,这时除了用PHP substr函数的正则外我们还可以用substr实现(当然要得到中间的字符方法有N种,在此只是举例substr的应用):
本例去掉开头4个字符和结尾3个字符,输出中间的字符串:
输出:lacecake.
用substr可以截取字符串,用法如下
echo
substr("abcdef",
1,
3);
//
返回
"bcd"
你也可以用css来实现:
div
id="news"xxxxx/div
css文件里
div#news{width:5px;position:absolute;left:468px;top:118px;z-index:9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
关键是overflow:hidden;text-overflow:ellipsis;white-space:nowrap;这句,它会把你超出div的部分变成...