PHP中的字符串到二进制转换

时间:2015-08-03 15:26:37

标签: php binary

我有以下问题,是否可以在PHP中将字符串转换为二进制文件?

问题在于我并不是指转换,我的意思是例如:

String = 101010

将此变量转换为二进制0b101010

用户以表单形式输入字符串,该表单通过GET发送到脚本。我需要创建一个看起来“完全像这样”的二进制文件,而不是将实际字符串转换为二进制值。

2 个答案:

答案 0 :(得分:1)

phplover's answer不同,在我看来,您根本不想转换字符串。

通常,0b前缀用于二进制文字或分配给int变量或常量。

虽然PHP没有二进制类型,但它足以拥有二进制字符串或表示该类数据的数组。

$str = '110101';// binary for 53

//or array($str[0], $str[1], ...)

字符串可以像这样使用:

$int = intval($str, 2);

echo $int; //prints 53

echo decbin($int); //prints 110101

printf('%032b', $int); //prints 00000000000000000000000000110101

总之:保留字符串

PHP intval function reference
PHP decbin function reference

答案 1 :(得分:0)

根据我的理解,您希望将任何字符串转换为二进制,您可以使用pack()base_convert()

执行此操作
$string = $_GET['YOUR_VARIABLE'];
$bin = unpack('H*', $string); // H for Hex string

$start[] = base_convert($bin[1], 16, 2); // Convert hexadecimal to binary and store it to your array

这个想法的功劳归于Francois Deschenes