代码如下 | 复制代码 |
<?php //a字符 $str=(pack("a*", "中国")); echo $str,"=",strlen($str),"字节n"; getascill($str); //h字符 $str=(pack("h*", "fffe")); echo $str,"=",strlen($str),"字节n"; getascill($str); //c字符 $str=(pack("c*", "55","56","57")); echo $str,"=",strlen($str),"字节n"; getascill($str); //i字符 短整形 32位 4个字节 64位8个字节 //s字符 短整形 2个字节 //l字符 长整形 4个字节 //f字符 单精度浮点 4个字节 //d字符 双精度浮点 8个字节 function getascill($str) |
更多详细内容请查看:http://www.111cn.net/phper/php-function/php-ord.htm
实例二
代码如下 | 复制代码 |
<? /* @ 另一种方法,使用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; } //解释下上面第一个:chr(0)不是null,null是什么都没有,而chr(0)的值是0。表示成16进制是0x00,表示成二进制是00000000虽然chr(0)不会显示出什么,但是他是一个字符。虽然chr(0)不会显示出什么,但是他是一个字符。当汉字被截断时,根据编码规则他总是要把后边的其他字符拉过来一起作为汉字解释,这就是出现乱码的原因。 ?> |
时间: 2024-09-24 16:05:27