php专区

 首页 > php专区 > PHP应用 > php函数大全 > php中文处理函数

php中文处理函数

分享到:
【字体:
导读:
          *php使用ISO-8859-1处理字符串,也就是以单字节处理字符串。中文码属于多字节字符,在使用substr,strlen,str_peplace等函数时很容易产生错误,处理中文特殊操作,必须使用一组中文处理函数。下面是GBK的substr,s

  /*
php使用ISO-8859-1处理字符串,也就是以单字节处理字符串。中文码属于多字节字符,在使用substr,
strlen,str_peplace等函数时很容易产生错误,处理中文特殊操作,必须使用一组中文处理函数。下面是
GBK的substr,strlen操作函数,前者并不像php的substr一样可以使用负数作为start,lenght.希望大家
来不断完善这些函数,达到高效实用的程度。
*/
//gbk str handle
function gbk_substr(&$str,$start,$length=-1)
{
if($length==0) return "";
if($start<0) $start=0;
for($i=0;$i<$start;$i++)
{
if(ord(substr($str,$i,1))>=0x81)
{
$start++;
$i++;
}
}
if($start>gbk_strlen($str)) return "";
$ss="";
if($length==-1)
{
$ss=substr($str,$start);
}
else
{
echo "leghth=".$length."";
for($i=$start;$i<$start+$length;$i++)
{
if(ord(substr($str,$i,1))>=0x81)
{
$ss.=substr($str,$i,2);
$length++;
$i++;
}
else
{
$ss.=substr($str,$i,1);
}
}
}
return $ss;
}
function gbk_strlen(&$str)
{
$len=strlen($str);
$l=0;
for($i=0;$i<$len;$i++)
{
if(ord(substr($str,$i,1))>=0x81) $i++;
$l++;
}
return $l;
}
function gb2312_strlen(&$str)
{
$len=strlen($str);
$l=0;
for($i=0;$i<$len;$i++)
{
if(ord(substr($str,$i,1))>=0xa1) $i++;
$l++;
}
return $l;
}
?>
分享到:
一些常用的函数
  这是一些使用频率比较高的函数,有的来自别人的程序...... 1.产生随机字符串函数 function random($length) {  $hash = &#039;&#039;;  $chars = &#039;ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz&#039;;  $max = strlen($chars) - 1;  mt_srand((double)microtime() * 1000000);  f...
PHP的面向对象编程
  面向对象编程的概念:   不同的作者之间说法可能不一样,但是一个OOP语言必须有以下几方面:   抽象数据类型和信息封装   继承   多态   在PHP中是通过类来完成封装的:     class Something {   // 在OOP类中,通常第一个字符为大写   var $x;   function setX($v) {   // 方法开始为...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……