⑴ php 16进制转换遇到奇怪的问题
据我曾经遇到过类似问题的经验,你需要仔细查看下SQL语句,比如:如果某个变量内容里有单引号或双引号,那么,$db->query($sql)就会执行有误。
用echo "$sql"的办法查看输出的SQL语句是个简单的办法,但需要注意一点:输出的内容是在html里,也就是说,会经过浏览器的编码,你看到的并不一定是你输出的。
⑵ php 如何将 16进制字符串转为16进制字符数组 或者将 2进制字符串转为16进制字符数组
echo ord(pack("H*", 'F'));
这个方法可以把hex转成bin数据直接写文件什么的都可以了
我不确定你要的答案是什么, 不过php中并不存在字符数组这个c的概念
至于bin转hex, 直接用bin2hex()即可, 不过由于php没有字符数组, 余下的如果不是你要的, 再转其它吧
php中字符本身就可以使用$var[x]的形式直接调用单个字符, 如果楼主想问的不是这些, 欢迎追问
⑶ PHP里,16进制格式字符串,转换成具体值的方法
还有 hexdec 这个函数number hexdec ( string $hex_string )
Example #1 hexdec() 例子
<?php
var_mp(hexdec("See"));
var_mp(hexdec("ee"));
// both print "int(238)"
var_mp(hexdec("that")); // print "int(10)"
var_mp(hexdec("a0")); // print "int(160)"
?>
⑷ php 怎么将utf-8格式的汉字转换成16进制
//字符串转换成16进制
function str2hex($str){
$hex = ''
for($i=0,$length=mb_strlen($str); $i<$length; $i++){
$hex .= dechex(ord($str{$i}));
}
return $hex;
}
//16进制转换成字符串
function hex2str($hex){
$str = ''
$arr = str_split($hex, 2);
foreach($arr as $bit){
$str .= chr(hexdec($bit));
}
return $str;
}
function test(){
//utf8字符测试
$str = '中文'
echo mb_strlen($str);
echo '<br>'
$hex = str2hex($str);
echo $hex;
echo '<br>'
$dec = hex2str($hex);
echo $dec;
echo "<br>";
echo "<hr>";
//gbk测试
$gbkstr = mb_convert_encoding($str,'GBK','UTF-8');
echo mb_strlen($gbkstr);
echo '<br>'
$hex = str2hex($gbkstr);
echo $hex;
echo '<br>'
$dec = mb_convert_encoding(hex2str($hex), 'UTF-8', 'GBK');
echo $dec;
echo "<br>";
}
⑸ PHP16进制格式字符串,转换成具体值的方法
最简单的就是base_convert()函数,可以实现2进制,8进制,10进制,16进制间的任意转换,
还有hexdec()可以实现16进制转换成10进制。
⑹ js和php中的 16进制转字符串问题,高手进,在线等!!!
functionhex2bin(data){
vardata=(data||'')+'';
vartmpStr='';
if(data.length%2){
console&&console.warning('hex2bin():');
returnfalse;
}
if(/[^da-z]/ig.test(data)){
console&&console.warning('hex2bin():');
returnfalse;
}
for(vari=0,j=data.length;i<j;i+=2){
tmpStr+='%'+data[i]+data[i+1];
}
returndecodeURIComponent(tmpStr);
}