㈠ 新版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是數喊慧組?
完全碧脊沒這個必要上面定義的函數是處理字元串的,在實際編程中,你不會傻到用這個函數去處理數組.只會處理數組元素...
數組你自己用判斷函數 輸出下不就行了?