求救,print 显示中文字符的困扰~~~~ 不要使用substr, 使用mb_substr函数,是几个字符就截取几个。 mb_substr函数支持编码方式(GB2312, UTF-8)。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用了mb_substr().可是系统报错,说是用了未定义的函数! 我使用的是php5,说没定义mb_substr()函数,不会是不支持吧 加载mb库没有啊。另外,不用它也一样可以做到。呵呵,那就是中文编码的问题了,呵呵ord($str[$i])是否小于128。呵呵 用自己写的函数:function sub_str($str,$len){ $str = (string)$str; $len = (int)$len; $strlen = strlen($str); if($len>$strlen) $len = $strlen; $i = 0; $fixlen = 0; while($i<$len){ $chr = $str[$i]; $i++; if(ord($chr)<0x80) $fixlen++; elseif($i<$len){ $i++; $fixlen += 2; } } return substr($str,0,$fixlen);} <?phh print sub_str($s_v_content, 0, 20);?>, print iconv_substr($s_v_content, 0, 20, 'gbk');php5中内嵌iconv函数组,不需要另外加载哈哈,php5想把日本鬼子赶出php舞台啦! 不行啊,我现在用的是老的PHP,4.X版本的,在原来系统中进行修改的,所以不可能对PHP进行配置或加载的,各位大侠行行好,还有没有简单易行的方法!! 我怎么用substr()也不会出现 这种情况啊奇数什么都试了不过用 iconv_substr($s_v_content, 0, 20, 'gbk')中文也算一个字符也还挺方便的 我想这个问题,对PHP程序员来说,也不算是难事,为什么就没人解答呢,郁闷!!! ipsearch2008(ipsearch)已经给出你代码了啊,还不结帐,呵呵 还是不行ipsearch2008(ipsearch)的代码,似呼没什么变化,还是会出现 朋友,请关注一下此帖:http://community.csdn.net/Expert/topic/4338/4338855.xml?temp=.8305628 唠叨以前发的。<?//用法与substr函数一样function c_substr($str,$start=0) { $ch = chr(127); $p = array("/[\x81-\xfe]([\x81-\xfe]|[\x40-\xfe])/","/[\x01-\x77]/"); $r = array("",""); if(func_num_args() > 2) $end = func_get_arg(2); else $end = strlen($str); if($start < 0) $start += $end; if($start > 0) { $s = substr($str,0,$start); if($s[strlen($s)-1] > $ch) { $s = preg_replace($p,$r,$s); $start += strlen($s); } } $s = substr($str,$start,$end); $end = strlen($s); if($s[$end-1] > $ch) { $s = preg_replace($p,$r,$s); $end += strlen($s); } return substr($str,$start,$end);}?> substr你怎么用,这个函数就怎么用。 生成的静态页 怎么把里面PHP地址改成html地址 究竟tpl模板文件应放在哪里??? 我是一个小菜鸟,眼前一片迷茫求指导。 PHP GD库 验证码 分享我写的http类,有不好的地方欢迎大家一起斧正 问个简单的循环问题 mysql数据查询问题 请问PHP如何读取指定目录及其子目录下当天上传的所有文件. 关于mail() 我用$_GET['..']接受浏览器传过来的参数,为什么会报错呢? 在公司开发....不爽,散分 大虾,帮助啊,小第初学PHP可环境不会配置,88分啊!!
另外,不用它也一样可以做到。呵呵,那就是中文编码的问题了,呵呵ord($str[$i])是否小于128。
呵呵
function sub_str($str,$len){
$str = (string)$str;
$len = (int)$len; $strlen = strlen($str);
if($len>$strlen) $len = $strlen; $i = 0;
$fixlen = 0;
while($i<$len){
$chr = $str[$i];
$i++;
if(ord($chr)<0x80) $fixlen++;
elseif($i<$len){
$i++;
$fixlen += 2;
}
} return substr($str,0,$fixlen);
} <?phh print sub_str($s_v_content, 0, 20);?>,
奇数什么都试了不过用 iconv_substr($s_v_content, 0, 20, 'gbk')中文也算一个字符
也还挺方便的
还不结帐,呵呵
http://community.csdn.net/Expert/topic/4338/4338855.xml?temp=.8305628
<?
//用法与substr函数一样
function c_substr($str,$start=0) {
$ch = chr(127);
$p = array("/[\x81-\xfe]([\x81-\xfe]|[\x40-\xfe])/","/[\x01-\x77]/");
$r = array("","");
if(func_num_args() > 2)
$end = func_get_arg(2);
else
$end = strlen($str);
if($start < 0)
$start += $end; if($start > 0) {
$s = substr($str,0,$start);
if($s[strlen($s)-1] > $ch) {
$s = preg_replace($p,$r,$s);
$start += strlen($s);
}
}
$s = substr($str,$start,$end);
$end = strlen($s);
if($s[$end-1] > $ch) {
$s = preg_replace($p,$r,$s);
$end += strlen($s);
}
return substr($str,$start,$end);
}
?>