欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP substr 截取字符串出現(xiàn)亂碼問題解決方法[utf8與gb2312]

 更新時間:2011年12月16日 15:20:20   作者:  
在PHP中,使substr函數(shù)截取字符串末位會出現(xiàn)亂碼,因為中文UTF-8編碼,每個漢字占3字節(jié),而GB2312占2字節(jié),英文占1字節(jié),截取位不準(zhǔn)確,造成斷開的字符會把其后的..拉過來一起做一個字,所以出現(xiàn)了亂碼。
substr --- 取得部份字符串
語法 : string substr (string string, int start [, int length])
說明 :
substr( )傳回 string的一部份字符串,由參數(shù) start和 length指定。
如果 start是正數(shù),傳回的字符串將會從 string的第 start個字元開始。
Example :
復(fù)制代碼 代碼如下:

<?php
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>

如果 start是負(fù)數(shù),傳回的字符串將會從 string結(jié)尾的第 start個字開始。
Example :
復(fù)制代碼 代碼如下:

<?php
$rest = substr ("abcdef", -1); // returns "f"
$rest = substr ("abcdef", -2); // returns "ef"
$rest = substr ("abcdef", -3, 1); // returns "d"
?>

如果有給予參數(shù) length而且是正數(shù)時,傳回的字符串將會從 start傳回 length個字元。
如果有給予參數(shù) length而且是負(fù)數(shù)時,傳回的字符串將會結(jié)束于 string結(jié)尾的第 length個字元。
Example :
復(fù)制代碼 代碼如下:

<?php
$rest = substr ("abcdef", 1, -1); // returns "bcde"
?>

dongyue,2005-01-07 11:10:41
substr --- 取得部份字符串
語法 : string substr (string string, int start [, int length])
說明 :
substr( )傳回 string的一部份字符串,由參數(shù) start和 length指定。
如果 start是正數(shù),傳回的字符串將會從 string的第 start個字元開始。
Example :
復(fù)制代碼 代碼如下:

<?php
$rest = substr ("abcdef", 1); // returns "bcdef"
$rest = substr ("abcdef", 1, 3); // returns "bcd"
?>

如果 start是負(fù)數(shù),傳回的字符串將會從 string結(jié)尾的第 start個字開始。
Example :
復(fù)制代碼 代碼如下:

<?php
$rest = substr ("abcdef", -1); // returns "f"
$rest = substr ("abcdef", -2); // returns "ef"
$rest = substr ("abcdef", -3, 1); // returns "d"
?>

如果有給予參數(shù) length而且是正數(shù)時,傳回的字符串將會從 start傳回 length個字元。
如果有給予參數(shù) length而且是負(fù)數(shù)時,傳回的字符串將會結(jié)束于 string結(jié)尾的第 length個字元。
Example :
復(fù)制代碼 代碼如下:

<?php
$rest = substr ("abcdef", 1, -1); // returns "bcde"
?>

Utf-8、gb2312都支持的漢字截取函數(shù)
復(fù)制代碼 代碼如下:

//截取中文字符串
/*
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="腳本之家一個不錯的網(wǎng)站";
echo cut_str($str, 8, 5, 'gb2312');

相關(guān)文章

  • PHP+jquery實時顯示網(wǎng)站在線人數(shù)的方法

    PHP+jquery實時顯示網(wǎng)站在線人數(shù)的方法

    這篇文章主要介紹了PHP+jquery實時顯示網(wǎng)站在線人數(shù)的方法,較為詳細(xì)的分析了實時顯示在線人數(shù)的原理與代碼實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • php編譯安裝php-amq擴展簡明教程

    php編譯安裝php-amq擴展簡明教程

    這篇文章主要介紹了php編譯安裝php-amq擴展的方法,較為詳細(xì)的分析了php-amq擴展的功能及下載、編譯安裝的具體步驟與相關(guān)注意事項,需要的朋友可以參考下
    2016-06-06
  • PHP 采集心得技巧

    PHP 采集心得技巧

    今天給大家共享一下我的采集代碼! 思路: 采集程序的思路很簡單大體可以分為以下幾個步驟
    2009-05-05
  • PHP中curl_setopt函數(shù)用法實例分析

    PHP中curl_setopt函數(shù)用法實例分析

    這篇文章主要介紹了PHP中curl_setopt函數(shù)用法,以實例形式分析了curl_setopt函數(shù)的功能、定義、用途及相關(guān)的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 數(shù)組與類使用PHP的可變變量名需要的注意的問題

    數(shù)組與類使用PHP的可變變量名需要的注意的問題

    本篇文章是對數(shù)組與類使用PHP的可變變量名需要的注意的問題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP中余數(shù)、取余的妙用

    PHP中余數(shù)、取余的妙用

    這篇文章主要介紹了PHP中余數(shù)、取余的妙用,這個是在WEB開發(fā)中一個經(jīng)常使用的小技巧,不管是在表格、ul、li或者是換行等HTML處理中,需要隔幾行換行,隔幾行加入ul或li的結(jié)束標(biāo)記等時候,特別的有用,需要的朋友可以參考下
    2015-06-06
  • PHP調(diào)用MySQL的存儲過程的實現(xiàn)代碼

    PHP調(diào)用MySQL的存儲過程的實現(xiàn)代碼

    MySQL好像從5.0開始才引入存儲過程,反正以前做應(yīng)用的時候從沒碰過,不過現(xiàn)在因為主要作內(nèi)部系統(tǒng)
    2008-08-08
  • require(),include(),require_once()和include_once()區(qū)別

    require(),include(),require_once()和include_once()區(qū)別

    面試中最容易提到的一個PHP的問題,我想和大家共勉一下: require()和include()有許多相似之處,也有些不同。理解它們的不同點非常重要,否則很容易犯錯誤。
    2008-03-03
  • 分享下php5類中三種數(shù)據(jù)類型的區(qū)別

    分享下php5類中三種數(shù)據(jù)類型的區(qū)別

    這篇文章主要介紹了php5類中三種數(shù)據(jù)類型的區(qū)別,需要的朋友可以參考下
    2015-01-01
  • 詳解PHP設(shè)計模式之橋接模式

    詳解PHP設(shè)計模式之橋接模式

    橋接,顧名思義,就是用來連接兩個部分,使得兩個部分可以互相通訊。橋接模式將系統(tǒng)的抽象部分與實現(xiàn)部分分離解耦,使他們可以獨立的變化。本文通過示例詳細(xì)介紹了橋接模式的原理與使用,需要的可以參考一下
    2022-12-12

最新評論