关于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) ;
...全文
113 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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个字节啊,结果呢?

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧