包中的中继器参数是什么



我需要将字符串转换为十六进制。我读到了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

最新更新