我需要将字符串转换为十六进制。我读到了pack
函数。以下两者有什么区别?
$hexRepresentation = pack('H','I will be converted to hexa');
和
$hexRepresentation = pack('H*','I will be converted to hexa');
关于中继器参数的文档对我来说不是很清楚。
1)如果你想将字符串二进制转换为十六进制 - 有一个更好的函数:bin2hex
2)包函数可以将数据转换为二进制字符串。我想你的意思是 - 打开包装
正如文档中提到的 - PHP 的 pack\unpack 函数是 Perl 的 pack\unpack 的一个端口。
此函数的行为取决于您使用的格式。
对于 h 和 H 格式包:
重复计数的 * 使用输入字段的所有字符。
你可以在这里查看 perl 的文档
例:
<?php
$string='I will be converted to hexa';
var_dump(unpack('H10',$string));
//array(1) {
// [1]=>
// string(10) "492077696c"
//}
var_dump(unpack('H*',$string));
//array(1) {
// [1]=>
// string(54) "492077696c6c20626520636f6e76657274656420746f2068657861"
//}
var_dump(bin2hex($string));
//string(54) "492077696c6c20626520636f6e76657274656420746f2068657861"
另外,您可以在这里自己尝试:https://3v4l.org/a4BVi