我有以下问题,是否可以在PHP中将字符串转换为二进制文件?
问题在于我并不是指转换,我的意思是例如:
String = 101010
将此变量转换为二进制0b101010
用户以表单形式输入字符串,该表单通过GET发送到脚本。我需要创建一个看起来“完全像这样”的二进制文件,而不是将实际字符串转换为二进制值。
答案 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
总之:保留字符串。
答案 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