php 截取中文_PHP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:淺析動(dòng)態(tài)網(wǎng)頁技術(shù)PHP中錯(cuò)誤處理的一些方法已經(jīng)玩php一段時(shí)間了,基本是from 0開始的,經(jīng)常出現(xiàn)的問題也很多,慢慢的可以熟練的查詢文檔了,而且,經(jīng)驗(yàn)也不是很多。 先look here。: error_reporting(1048);//1,2,4,7,...,1048 ob_start(); session_start(); date_default_timezone_set('Asia/Sh
<?php< ?php
//截取中文字符串
function mysubstr(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;
}
?>
2. 截取utf8編碼的多字節(jié)字符串
<?php
< ?php
//截取utf8字符串
function utf8Substr(str, from, len)
{
return preg_replace('#^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.from.'}'.
'((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.len.'}).*#s',
'1',str);
}
?>
3. UTF-8、GB2312都支持的漢字截取函數(shù)
<?php
< ?php
/*
Utf-8、gb2312都支持的漢字截取函數(shù)
cut_str(字符串, 截取長度, 開始長度, 編碼);
編碼默認(rèn)為 utf-8
開始長度默認(rèn)為 0
*/
function cut_str(string, sublen, start = 0, code = 'UTF-8')
{
if(code == 'UTF-8')
{
pa = "/[\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]/";
preg_match_all(pa, string, t_string);
if(count(t_string[0]) - start > sublen) return join('', array_slice(t_string[0], start, sublen))."...";
return join('', array_slice(t_string[0], start, sublen));
}
else
{
start = start*2;
sublen = sublen*2;
strlen = strlen(string);
tmpstr = '';
for(i=0; i< strlen; i++)
{
if(i>=start && i< (start+sublen))
{
if(ord(substr(string, i, 1))>129)
{
tmpstr.= substr(string, i, 2);
}
else
{
tmpstr.= substr(string, i, 1);
}
}
if(ord(substr(string, i, 1))>129) i++;
}
if(strlen(tmpstr)< strlen ) tmpstr.= "...";
return tmpstr;
}
}
str = "abcd需要截取的字符串";
echo cut_str(str, 8, 0, 'gb2312');
?>
4. BugFree 的字符截取函數(shù)
<?php
< ?php
/**
* @package BugFree
* @version Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp
*
*
* Return part of a string(Enhance the function substr())
*
* @author Chunsheng Wang <[email protected]>
* @param string String the string to cut.
* @param int Length the length of returned string.
* @param booble Append whether append "...": false|true
* @return string the cutted string.
*/
function sysSubStr(String,Length,Append = false)
{
if (strlen(String) < = Length )
{
return String;
}
else
{
I = 0;
while (I < Length)
{
StringTMP = substr(String,I,1);
if ( ord(StringTMP) >=224 )
{
StringTMP = substr(String,I,3);
I = I + 3;
}
elseif( ord(StringTMP) >=192 )
{
StringTMP = substr(String,I,2);
I = I + 2;
}
else
{
I = I + 1;
}
StringLast[] = StringTMP;
}
StringLast = implode("",StringLast);
if(Append)
{
StringLast .= "...";
}
return StringLast;
}
}
String = "CodeBit.cn -- 簡單、精彩、通用";
Length = "18";
Append = false;
echo sysSubStr(String,Length,Append);
?>
分享:PHP函數(shù):PHP的通用檢測(cè)函數(shù)總結(jié)// ※CheckMoney(C_Money) 檢查數(shù)據(jù)是否是99999.99格式 // ※CheckEmailAddr(C_mailaddr) 判斷是否為有效郵件地址 // ※CheckWebAddr(C_weburl) 判斷是否為有效網(wǎng)址 // ※CheckEmpty(C_char) 判斷字符串是否為空 // ※CheckLengthBetween(C_char, I_len1, I_
相關(guān)PHP教程:
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
- 相關(guān)鏈接:
- 教程說明:
PHP教程-php 截取中文
。