我在php中转换这2种类型时遇到了问题。这是我在谷歌搜索的代码
function strToHex($string){
$hex='';
for ($i=0; $i < strlen($string); $i++){
$hex .= dechex(ord($string[$i]));
}
return $hex;
}
function hexToStr($hex){
$string='';
for ($i=0; $i < strlen($hex)-1; $i+=2){
$string .= chr(hexdec($hex[$i].$hex[$i+1]));
}
return $string;
}
我检查它,发现这是当我使用异或加密。
我有绳子 "this is the test"
,在用一个键进行异或之后,我得到了字符串形式的结果 ↕↑↔§P↔§P ♫§T↕§↕
. 在那之后,我试着用strtohex()函数把它转换成hex 12181d15501d15500e15541215712
. 然后,我测试了hextostr()函数 ↕↑↔§P↔§P♫§T↕§q
. 那么,我该怎么解决这个问题呢?为什么在转换这个2样式值时会出错?
8条答案
按热度按时间krcsximq1#
对于在这里结束并且只是寻找(二进制)字符串的十六进制表示的人。
文件编号:bin2hex,hex2bin。
tvokkenx2#
对于ord($char)<16的任何字符,您将得到一个长度仅为1的十六进制back。您忘记添加0填充。
这应该可以解决:
tv6aics13#
PHP:
字符串到十六进制:
十六进制到字符串:
zqry0prt4#
我用的是:
gzszwxb45#
fjaof16o6#
使用@bill shirley answer加上一点附加
用法:
pxiryf3j7#
我只有一半的答案,但我希望它是有用的,因为它添加了unicode(utf-8)支持
到字符串
资料来源:http://www.php.net/manual/en/function.chr.php#hcom55978
ecr0jaav8#
您可以尝试以下代码将图像转换为十六进制字符串