php获取ascii的值,php chr() ord() 获取ASCII编码 中文截取

ASCII编码是计算机所能显示字符的编码,它的取值范围是0-255,其中包括标点、字母、数字、汉字等。在编程过程中,经常把指定的字符转化为ASCII码进行比较。

下面是PHP提供的转换ASCII码和字符的函数。

1.chr()函数

该函数用于将ASCII码值转化为字符串。其函数声明如下:

string chr (int ascii);

2.ord()函数

该函数用于将字符串转化为ASCII码值。其函数声明如下:

int ord(string str);

示例:

使用chr()函数和ord()函数进行字符串与ASCII码之间的转换,程序代码如下:

$str1=chr(88);

echo $str1;               //返回值为X

echo "/t";

$str2=ord('S');

echo $str2;               //返回值为83

?>

中文字符截取

ord() chr() int() intval() 的区别

ord()->本函数返回字符的 ASCII (美国国家标准交换码) 序数值。本函数和 chr() 函数相反

php chr() ord()中文截取乱码问题解决方法

$lenth = 19;

$str = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?";

echo strlen($str)<=$lenth ? $str : (substr($str,0,$lenth).chr(0)."....");

?>

/*

@ 另一种方法,使用ord()函数:

@ 适用于 gb2312 编码:

*/

$str = "怎么将新闻的很长的标题只显示前面一些字,后面用.....来代替?";

function gb2312_substr($str, $limit) {

$restr ='';

for($i=0;$i< $limit-3;$i++) {

$restr .= ord($str[$i])>127 ? $str[$i].$str[++$i] : $str[$i];

}

return $restr;

}

/*

@ 以下仅适用于 utf-8 编码;

*/

function utf8_substr($str, $limit) {

$restr = '';

for($i=0;$i< $limit-3;$i++) {

$restr .= ord($str[$i])>127 ? $str[$i].$str[++$i].$str[++$i] : $str[$i];

}

return $restr;

}

另外一种方法:

/**

* 截取UTF-8编码下字符串的函数

*

* @access  public

* @param   string      $str        被截取的字符串

* @param   int         $start      截取的起始位置

* @param   int         $length     截取的长度

* @param   bool        $append     是否附加省略号

* @return  null

*/

function sub_str($str, $start=0, $length=0, $append=true)

{

$str = trim($str);

$reval = '';

if (0 == $length)

{

$length = strlen($str);

}

elseif (0 > $length)

{

$length = strlen($str) + $length;

}

if (strlen($str) <= $length) return $str;

for($i = 0; $i < $length; $i++)

{

if (!isset($str[$i])) break;

if (196 <= ord($str[$i]))

{

$i += 2 ;

$start += 2;

}

}

if ($i >= $start) $reval = substr($str, 0, $i);

if ($i < strlen($str) && $append) $reval .= "...";

return $reval;

}

//解释下上面第一个:chr(0)不是null,null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000虽然chr(0)不会显示出什么,但是他是一个字符。虽然chr(0)不会显示出什么,但是他是一个字符。当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。

?>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chenhua_hqkj/archive/2009/09/22/4580247.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值