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

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

  1. 获取存储过程返回值及代码中获取返回值

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  2. 获取存储过程返回值及代码中获取返回值(转)

    获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...

  3. R语言使用glmnet包的glmnet函数拟合lasso回归模型:使用cv.glmnet函数获取最佳lambda值、coef函数获取每个特征的系数以及截距

    R语言使用glmnet包的glmnet函数拟合lasso回归模型:使用cv.glmnet函数获取最佳lambda值.coef函数获取每个特征的系数以及截距 目录

  4. Javascript创建select 以及获取select的值、文本;获取radio,check的值

    2019独角兽企业重金招聘Python工程师标准>>> //创建一个select标签var s = document.createElement("select" ...

  5. java获取泛型的值_java 反射之获取泛型对象的所有字段与对应的值(包括父类的)...

    public static void main(String[] args) throwsIntrospectionException { SysUser obj= newSysUser(); obj ...

  6. 【Kotlin 协程】Flow 异步流 ② ( 使用 Flow 异步流持续获取不同返回值 | Flow 异步流获取返回值方式与其它方式对比 | 在 Android 中使用 Flow 异步流下载文件 )

    文章目录 一.使用 Flow 异步流持续获取不同返回值 二.Flow 异步流获取返回值方式与其它方式对比 三.在 Android 中 使用 Flow 异步流下载文件 一.使用 Flow 异步流持续获取 ...

  7. a到z的ascii码值是多少_a的ascii码值十六进制是多少

    a的ascii码值十六进制是多少 ascii码中: A到Z分别是65到90,十六进制是41到5a a到z分别是97到122,十六进制是61到7a 所以a的ascii码值的十六进制是61. ASCII知 ...

  8. linux获取bind返回值信息,v$sql_bind_capture 获取绑定变量信息

    截取自 v$sql_bind_capture       对于游标中定义的每一个绑定变量都会有视图中的一行对应.主要包含三个部分:指向父游标(hash_value, address)和子游标(hash ...

  9. ajax获取nodejs的值,jquery - NodeJS如何获取服务器中的数据,通过POST从jquery ajax调用发送 - 堆栈内存溢出...

    我的客户正在进行ajax调用 {{ function callNode(){ console.log("I am called"); var data = {"email ...

最新文章

  1. ADO.NET实用经验(转自代码中国)
  2. Glow-流生成模型(一)
  3. stm32 led屏控制卡_室内LED显示屏如何安装?
  4. 【开源项目】基于C++使用ffmpeg和QT开发播放器
  5. 怎么把python模型部署到线上_如何将机器学习模型成功部署到.Net环境中
  6. tf.keras CNN网络搭建笔记
  7. Python错误,pip安装包或更新时因超时而报错误
  8. SAP License:ERP系统有哪些?
  9. 宏碁笔记本linux,Acer宏碁(Acer宏碁)Acer 4752G-2332G50Mnkk Linux笔记本电脑整体评测-ZOL中关村在线...
  10. 武器系统仿真技术(二):末端制导系统蒙特卡洛仿真法
  11. 在MingW下编译llvm/clang
  12. 服务器远程预览本地设备视频, 预览多个,打不开视频流
  13. 将QQ语音的slk格式转化为wma
  14. java的正确学习姿势
  15. Oracle数据库违反唯一约束条件
  16. mysql 两表拼接_数据库将两张表进行横向连接(拼接成一张表的形式显示)
  17. 价值平均定期投资策略分析(二)定期递增法
  18. Spring横切面(advice),增强(advisor),切入点(PointCut)
  19. FPGA设计思想与技巧之串并转换和流水线操作
  20. VMware Pro v14.1.1 官方版本及激活密钥(转载)

热门文章

  1. zigbee现存网络下更换协调器
  2. nginx html 缓存及不缓存配置
  3. 自动化测试生命周期的六个阶段
  4. 又见block(一):block是什么?
  5. 利用有穷自动机去除C语言代码行注释(//)以及块注释(/* */)
  6. OC中的常用数据类型
  7. python决策树 value_机器学习之ID3算法详解及python代码实现
  8. checkra1n越狱错误79_苹果越狱工具 checkra1n 更新:支持 iOS 13.4.1
  9. 什么是弱类型的语言,什么是强类型的语言。
  10. 验证码图片显示不出文字