㈠ 新版Thinkphp(3.2.3)中的msubstr()函数怎么用啊
OrgUtilString::msubstr($str,$start,$length,$charset,$suffix);
您好,静态类按照上面这样用就行了,后面都是路径。或者您也可以在公橡知共Common.php里写个函数方便以后直接调用。
/**
*字符串截取,支持中文和其他编码
*@accesspublic
*@paramstring$str需要转梁告消换的字符串
*@paramstring$start开始位置
*@paramstring$length截取长度
*@paramstring$charset编码格式
*@paramstring$suffix截断显示字友贺符
*@returnstring
*/
functionmsubstr($str,$start=0,$length,$charset="utf-8",$suffix=true){
returnOrgUtilString::msubstr(strip_tags($str),$start,$length,$charset,$suffix);
}
㈡ thinkPHP里面有分割字符串的函数吗
thinkphp没有分割字符串,有截取字符串.
php自带函数可以分割字符串如下:
explode(separator,string,limit)
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit 可选。规定所返回的数组元素的最大数目。
$text="1,2,3";
$lines=explode(",",$text);//这里使用逗号分隔
$string="Helloworld.Beautifuldaytoday.";
$str=explode("",$string);//使用空格分隔
strtok(string,split)
string 必需。规定要分割的字符串.
split 必需。规定一个或多个分割字符。
$string="Helloworld.Beautifuldaytoday.";
$token=strtok($string,"");//用空格分隔
str_split(string,length)
string 必需。规定要分割的字符串。
length 可选。规定每个数组元素的长度。默认是 1。
print_r(str_split("Hello"));
thinkphp自带截取字符串如下:
对于英文字符可使用如下形式:
{$vo.title|substr=0,5}
如果是中文字符thinkphp提供了msubstr,用法如下:
functionmsubstr($str,$start=0,$length,$charset=”utf-8″,$suffix=true)//使用如下
{$vo.title|msubstr=5,5,'utf-8′,true}
msubstr函数说明如下:
msubstr($str, $start=0, $length, $charset=”utf-8″, $suffix=true)
$str:要截取的字符串
$start=0:开始位置,默认从0开始
$length:截取长度
$charset=”utf-8″:字符编码,默认UTF-8
$suffix=true:是否在截取后的字符后面显示省略号,默认true显示,false为不显示
㈢ php如何索引某中文字符在字符串中的位置,谢谢
程序一:PHP截取中文字符串方法 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;
}程序二:PHP截取gb2312字符串,解决半字符问题
function substring($str, $start, $length){ //比较好用字符串截取函数
$len = $length;
if($length < 0){
$str = strrev($str);
$len = -$length;
}
$len= ($len < strlen($str)) ? $len : strlen($str);
for ($i= $start; $i < $len; $i ++)
{
if (ord(substr($str, $i, 1)) > 0xa0)
{
$tmpstr .= substr($str, $i, 2);
$i++;
} else {
$tmpstr .= substr($str, $i, 1);
}
}
if($length < 0) $tmpstr = strrev($tmpstr);
return $tmpstr;
}程序三:PHP截取UTF-8字符串,解决半字漏桐符问题/******************************************************************
* PHP截取UTF-8字符串,解决半字符问题。
* 英文、数字(半角)为1字节(8位),中文(全角)为3字节
* @return 取出的字符串, 当$len小于等于0时, 会返回整个字符串
* @param $str 源字符串
* $len 左边的子串的长度
****************************************************************/
function utf_substr($str,$len)
{
for($i=0;$i<$len;$i++)
{
$temp_str=substr($str,0,1);
if(ord($temp_str) > 127)
{
$i++;
if($i<$len)
{
$new_str[]=substr($str,0,3);
$str=substr($str,3);
}
}
else
{
$new_str[]=substr($str,0,1);
$str=substr($str,1);
}
}
return join($new_str);
}
?>php utf-8 字符串截取function cutstr($string, $length) {
preg_match_all("/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|\xe0[\xa0-\xbf][\x80-\xbf]|[\xe1-\xef][\x80-\xbf][\x80-\xbf]|\xf0[\x90-\xbf][\x80-\xbf][\x80-\xbf]|[\xf1-\xf7][\x80-\xbf][\x80-\xbf][\x80-\xbf]/", $string, $info);
for($i=0; $i $wordscut .= $info[0][$i];
$j = ord($info[0][$i]) > 127 ? $j + 2 : $j + 1;
if ($j > $length - 3) {
return $wordscut.” …”;
}
}
return join(”, $info[0]);
}
$string=”242432反对感是456犯得上广泛大使馆地方7890″;
for($i=0;$i {
echo cutstr($string,$i)."
“;
}
?>截取utf-8字符粗搜橘串函数为了支持多语言,数据库里的字符串可能保存为UTF-8编码,在网站开发中可能需要用php截取字符串的一部分。为了避免出现乱码现岩团象,编写如下的UTF-8字符串截取函数关于utf-8的原理请看 UTF-8 FAQUTF-8编码的字符可能由1~3个字节组成,具体数目可以由第一个字节判断出来。(理论上可能更长,但这里假设不超过3个字节)
第一个字节大于224的,它与它之后的2个字节一起组成一个UTF-8字符
第一个字节大于192小于224的,它与它之后的1个字节组成一个UTF-8字符
否则第一个字节本身就是一个英文字符(包括数字和一小部分标点符号)。以前为某网站设计的代码(也是现在用在首页的长度截取的函数)//$sourcestr 是要处理的字符串
//$cutlength 为截取的长度(即字数)
function cut_str($sourcestr,$cutlength)
{
$returnstr='';
$i=0;
$n=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>=224) //如果ASCII位高与224,
{
$returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
$i=$i+3; //实际Byte计为3
$n++; //字串长度计1
}
elseif ($ascnum>=192) //如果ASCII位高与192,
{
$returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
$i=$i+2; //实际Byte计为2
$n++; //字串长度计1
}
elseif ($ascnum>=65 && $ascnum<=90) //如果是大写字母,
{
$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 ($str_length>$cutlength){
$returnstr = $returnstr . "...";//超过长度时在尾处加上省略号
}
return $returnstr;}
㈣ PHP指字符数量截断,在后面加上省略号。
substr可以截断字符串,但是不能显示省略号,用 Smarty 的的 truncate 方法可以把页面的字符串截断并显示省略号。
㈤ Thinkphp模板如何进行中文字符串截取
Common/common.php中定义函数:
function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true)
{
if(function_exists("mb_substr")){
if ($suffix && strlen($str)>$length)
return mb_substr($str, $start, $length, $charset)."枯谈...";
else
return mb_substr($str, $start, $length, $charset);
}
elseif(function_exists('敬握iconv_substr')) {
if ($suffix && strlen($str)>亮败庆$length)
return iconv_substr($str,$start,$length,$charset)."...";
else
return iconv_substr($str,$start,$length,$charset);
}
$re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset], $str, $match);
$slice = join("",array_slice($match[0], $start, $length));
if($suffix) return $slice."…";
return $slice;
}
㈥ thinkphp用msubstr截取,为什么所以的字后面都有省略号
1. 这个是官方手册的介绍:
msubstr($str, $start=0, $length, $charset=”utf-8″,
$suffix=true)
$str:要截取的字符串
$start=0:开始位置,默认从0开始
$length:截塌正取长度
$charset=”utf-8″:字符编码,默认UTF-8
$suffix=true:是否在截团春悔取后的字符后面显示省森陆略号,默认true显示,false为不显示
2. {$vo.title|msubstr=5,5,’utf-8′,false} 这样使用, 则第五个字符之后,将会被截取,最后一个参数的话,设置为true则会显示省略号.
㈦ 使用 PHP 读取文本(TXT)文件 并分页显示
view source print? <?php // you should save this file as m php session_start(); if ( empty ( $page )) { $page = ;} if (isset( $_GET [ page ])==TRUE) { $page = $_GET [ page ]; } ?> <> <head> <meta equiv= "Content Type" content= "text/; charset=UTF " /> <title> qqview Read Result</title> <style type= "text/css" > <! STYLE {font size: px} STYLE {font size: px} > </style> </head> <body> <table width= " %" bgcolor= "#CCCCCC" > <tr> <td > <?php if ( $page ){ $counter = file_get_contents ( "example txt" ); // read the file into a string $length = strlen ( $counter ); $page_count = ceil ( $length / ); function msubstr( $str $start $len ){ $strlength = $start + $len ; $tmpstr = "" ; for ( $i = ; $i < $strlength ; $i ++) { if (ord( substr ( $str $i ))== x a) { $tmpstr = <br /> ; } if (ord( substr ( $str $i ))> xa ) { $tmpstr = substr ( $str $i ); $i ++; } else { $tmpstr = substr ( $str $i ); } } return $tmpstr ; } // 截取中文字符串 $c =msubstr( $counter ( $page )* ); $c =msubstr( $counter $page * ); echo substr ( $c strlen ( $c ) strlen ( $c ) strlen ( $c )); }?> </td> </tr> </table> <table width= " %" bgcolor= "#cccccc" > <tr> <td width= " %" align= "center" valign= "middle" ><span class = "STYLE " > <?php echo $page ;?> / <?php echo $page_count ;?> 页 </span></td> <td width= " %" height= " " align= "left" valign= "middle" > <span class = "STYLE " > <?php echo "<a href=m php?page= >首页</a> " ; if ( $page != ){ echo "<a href=m php?page=" ( $page ) ">上一页</a> " ; } if ( $page < $page_count ){ echo "<a href=m php?page=" ( $page + ) ">下一页</a> " ; } echo "<a href=m php?page=" $page_count ">尾页</a>" ; ?> </span> </td> </tr> </table> </body> </> lishixin/Article/program/PHP/201311/21215
㈧ PHP 定义一个用于截取一段字符串的函数msubstr(),大家帮我看一下$tmpstr这是个单变量还是数组
什么数郑慧答组数组的...晕死你说的是截取中文字符串问题 定义的是函数而这个函数的作用是截取带有中文的字符串.
这里面哪里有关于数组的问题?
再说数组 不还是编程人员自己定义的吗?
你自己定义的数组还需要怎么看出?
还是说你担心$str是数喊慧组?
完全碧脊没这个必要上面定义的函数是处理字符串的,在实际编程中,你不会傻到用这个函数去处理数组.只会处理数组元素...
数组你自己用判断函数 输出下不就行了?