关于16进制的问题

wzbob 2005-03-18 06:10:34
$str="大家好";
$length=strlen($str);
for($i=0;$i<$length;$i++)
{
$str1=substr($str,$i,1);
$a=(integer)dechex(ord($str1));
$str.=chr(0x.$a);
}
请大家帮我看看怎么将上面的变量转换成下面$cur-count
这种形式呢
/*
$cur_count=chr(0xE6).chr(0x88).chr(0x91).chr(0xE7).chr(0x88).chr(0xB1).chr(0xE4).chr(0xBD).chr(0xA0).chr(0xEF).chr(0xBC).chr(0x81) ;
...全文
62 点赞 收藏 5
写回复
5 条回复
xuzuning 2005年03月19日
$str="大家好";
$length=strlen($str);
for($i=0;$i<$length;$i++)
{
$str1 = substr($str,$i,1);
$a = dechex(ord($str1));
$cur_count .= "chr(0x$a)";
}
echo $cur_count;//out chr(0xb4)chr(0xf3)chr(0xbc)chr(0xd2)chr(0xba)chr(0xc3)


在 $a=(integer)dechex(ord($str1)); 中
dechex函数返回的是串
(integer)强制转换为数
那么一个串转换成数会得到什么呢?多半是“0”吧?
回复 点赞
-神仙- 2005年03月18日
你自己测试过没有
ord取得的是数字
数字是无所谓10进制或16进制的
这只是写法的差别
回复 点赞
wzbob 2005年03月18日
你们最好测试一下啊,大哥们
$a=ord($str1)
得到的是字符串E6
怎么给他转换成16进制的数字
0xE6
$a=(integer)dechex(ord($str1));
转化下来全是0
回复 点赞
-神仙- 2005年03月18日
$a=(integer)dechex(ord($str1));

$a=ord($str1);就可以了
回复 点赞
myvicy 2005年03月18日
3个汉字6个字节啊,结果呢?
回复 点赞
发动态
发帖子
基础编程
创建于2007-09-28

9735

社区成员

14.0w+

社区内容

从PHP安装配置,PHP入门,PHP基础到PHP应用
社区公告
暂无公告