PHP截取数据的值多于10个字符用....表示,不足的不改 我的数据库有是个字段其中有六个市长度超过100的,如果在页面显示,排版不好排,所以想截取这六个字段的钱十个字符其他的用....表示 大家用什么好的想法吗 而且我在查询数据库是是全部查询 数据放在集合中要怎么写才能简单一些 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怕中文出问题的话,用mbstring的。 function getAll(){ $business = D('business'); $this->count(); $list=$business->select(); //用视图查之后放到list中 页面输出 print_r($list[title]); 这一步不对吗?为什么页面不显示值呢 if(mb_strlen($list[title]) < 6) { $data = $list[title]; } else { $list[title]= mb_substr($title , 0, 10, 'utf-8').'...'; $data = $list[title]; } $this->assign('list',$data); $this->display('getAll'); } PHP中 怎么输出集合中的某一个值 //前几天项目用到的,自己随便写的一个函数function cutString($string='',$length=60,$endString='...'){ $string = trim($string); if('' == $string) { return ''; } $oldLength = strlen($string); $newString= array(); for($i=0;$i<$length;$i++) { $tmpString = substr($string, 0, 1); if(ord($tmpString)>127) { $i++; if($i<$length) { $newString[] = substr($string, 0, 3); $string = substr($string,3); } } else { $newString[] = substr($string, 0, 1); $string = substr($string, 1); } } $newString = implode('',$newString); return strlen($newString) < $oldLength ? $newString.$endString : $newString;} 中文的话用这个: function getSubStr($s) { $substr=strlen($s)>20?substr(0,20,$str).chr(0).'...':$s; return $substr; // 20表示10个中文 }如果中英混合的话就用ASCII码值判断下英文取多少,中文取多少 方法调用$this->cut_str($list[0]['title']);function cut_str($sourcestr, $cutlength = 80, $etc = '...') { $returnstr = ''; $i = 0; $n = 0.0; $str_length = strlen($sourcestr); //字符串的字节数 while ( ($n<$cutlength) and ($i<$str_length) ) { $temp_str = substr($sourcestr, $i, 1); $ascnum = ord($temp_str); //得到字符串中第$i位字符的ASCII码 if ( $ascnum >= 252) //如果ASCII位高与252 { $returnstr = $returnstr . substr($sourcestr, $i, 6); //根据UTF-8编码规范,将6个连续的字符计为单个字符 $i = $i + 6; //实际Byte计为6 $n++; //字串长度计1 } elseif ( $ascnum >= 248 ) //如果ASCII位高与248 { $returnstr = $returnstr . substr($sourcestr, $i, 5); //根据UTF-8编码规范,将5个连续的字符计为单个字符 $i = $i + 5; //实际Byte计为5 $n++; //字串长度计1 } elseif ( $ascnum >= 240 ) //如果ASCII位高与240 { $returnstr = $returnstr . substr($sourcestr, $i, 4); //根据UTF-8编码规范,将4个连续的字符计为单个字符 $i = $i + 4; //实际Byte计为4 $n++; //字串长度计1 } elseif ( $ascnum >= 224 ) //如果ASCII位高与224 { /** * 进入它 * Enter description here ... * @var unknown_type */ $returnstr = $returnstr . substr($sourcestr, $i, 3); //根据UTF-8编码规范,将3个连续的字符计为单个字符 $i = $i + 3 ; //实际Byte计为3 $n++; //字串长度计1 echo "$returnstr"; } elseif ( $ascnum >= 192 ) //如果ASCII位高与192 { $returnstr = $returnstr . substr($sourcestr, $i, 2); //根据UTF-8编码规范,将2个连续的字符计为单个字符 $i = $i + 2; //实际Byte计为2 $n++; //字串长度计1 } elseif ( $ascnum>=65 and $ascnum<=90 and $ascnum!=73) //如果是大写字母 I除外 { $returnstr = $returnstr . substr($sourcestr, $i, 1); $i = $i + 1; //实际的Byte数仍计1个 $n++; //但考虑整体美观,大写字母计成一个高位字符 } elseif ( !(array_search($ascnum, array(37, 38, 64, 109 ,119)) === FALSE) ) //%,&,@,m,w 字符按1个字符宽 { $returnstr = $returnstr . substr($sourcestr, $i, 1); $i = $i + 1; //实际的Byte数仍计1个 $n++; //但考虑整体美观,这些字条计成一个高位字符 } else //其他情况下,包括小写字母和半角标点符号 { $returnstr = $returnstr . substr($sourcestr, $i, 1); $i = $i + 1; //实际的Byte数计1个 $n = $n + 0.5; //其余的小写字母和半角标点等与半个高位字符宽... } } if ( $i < $str_length ) { $returnstr = $returnstr.$etc; //超过长度时在尾处加上省略号 } return $returnstr; }大家帮我看看哪错了 为什么页面的值不输出 post乱码问题 小偷程序 验证码填写正确,却显示错误。刷新验证码后,再填写,不再报错,是不是和session有关? 汉字无法插入数据库 请再帮忙看看,为什么不能成功的修改呢?谢谢 为什么不用文本数据库 PHP精灵1.1开发版(脱离apache)! 问高手们一个问题! 请问:列出子目录的一个怪问题 请问大家关于session的问题。 Fatal error: Call to undefined function curl_init() 死活解决不了 指定替换某一次匹配的内容
$business = D('business');
$this->count();
$list=$business->select();
//用视图查之后放到list中 页面输出
print_r($list[title]); 这一步不对吗?为什么页面不显示值呢
if(mb_strlen($list[title]) < 6)
{
$data = $list[title];
}
else
{
$list[title]= mb_substr($title , 0, 10, 'utf-8').'...';
$data = $list[title];
}
$this->assign('list',$data);
$this->display('getAll');
}
//前几天项目用到的,自己随便写的一个函数
function cutString($string='',$length=60,$endString='...')
{
$string = trim($string);
if('' == $string) {
return '';
} $oldLength = strlen($string);
$newString= array();
for($i=0;$i<$length;$i++) {
$tmpString = substr($string, 0, 1);
if(ord($tmpString)>127) {
$i++;
if($i<$length) {
$newString[] = substr($string, 0, 3);
$string = substr($string,3);
}
}
else {
$newString[] = substr($string, 0, 1);
$string = substr($string, 1);
}
} $newString = implode('',$newString); return strlen($newString) < $oldLength ? $newString.$endString : $newString;
}
{
$substr=strlen($s)>20?substr(0,20,$str).chr(0).'...':$s;
return $substr; // 20表示10个中文
}如果中英混合的话就用ASCII码值判断下英文取多少,中文取多少
{
$returnstr = '';
$i = 0;
$n = 0.0;
$str_length = strlen($sourcestr); //字符串的字节数
while ( ($n<$cutlength) and ($i<$str_length) )
{
$temp_str = substr($sourcestr, $i, 1);
$ascnum = ord($temp_str); //得到字符串中第$i位字符的ASCII码
if ( $ascnum >= 252) //如果ASCII位高与252
{
$returnstr = $returnstr . substr($sourcestr, $i, 6); //根据UTF-8编码规范,将6个连续的字符计为单个字符
$i = $i + 6; //实际Byte计为6
$n++; //字串长度计1
}
elseif ( $ascnum >= 248 ) //如果ASCII位高与248
{
$returnstr = $returnstr . substr($sourcestr, $i, 5); //根据UTF-8编码规范,将5个连续的字符计为单个字符
$i = $i + 5; //实际Byte计为5
$n++; //字串长度计1
}
elseif ( $ascnum >= 240 ) //如果ASCII位高与240
{
$returnstr = $returnstr . substr($sourcestr, $i, 4); //根据UTF-8编码规范,将4个连续的字符计为单个字符
$i = $i + 4; //实际Byte计为4
$n++; //字串长度计1
}
elseif ( $ascnum >= 224 ) //如果ASCII位高与224
{
/**
* 进入它
* Enter description here ...
* @var unknown_type
*/
$returnstr = $returnstr . substr($sourcestr, $i, 3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
$i = $i + 3 ; //实际Byte计为3
$n++; //字串长度计1
echo "$returnstr";
}
elseif ( $ascnum >= 192 ) //如果ASCII位高与192
{
$returnstr = $returnstr . substr($sourcestr, $i, 2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
$i = $i + 2; //实际Byte计为2
$n++; //字串长度计1
}
elseif ( $ascnum>=65 and $ascnum<=90 and $ascnum!=73) //如果是大写字母 I除外
{
$returnstr = $returnstr . substr($sourcestr, $i, 1);
$i = $i + 1; //实际的Byte数仍计1个
$n++; //但考虑整体美观,大写字母计成一个高位字符
}
elseif ( !(array_search($ascnum, array(37, 38, 64, 109 ,119)) === FALSE) ) //%,&,@,m,w 字符按1个字符宽
{
$returnstr = $returnstr . substr($sourcestr, $i, 1);
$i = $i + 1; //实际的Byte数仍计1个
$n++; //但考虑整体美观,这些字条计成一个高位字符
}
else //其他情况下,包括小写字母和半角标点符号
{
$returnstr = $returnstr . substr($sourcestr, $i, 1);
$i = $i + 1; //实际的Byte数计1个
$n = $n + 0.5; //其余的小写字母和半角标点等与半个高位字符宽...
}
}
if ( $i < $str_length )
{
$returnstr = $returnstr.$etc; //超过长度时在尾处加上省略号
}
return $returnstr;
}大家帮我看看哪错了 为什么页面的值不输出