【问题标题】:String to binary conversion in PHPPHP中的字符串到二进制转换
【发布时间】:2015-08-25 15:28:33
【问题描述】:

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

问题是我并不是真的指转换本身,我的意思是例如:

字符串 = 101010

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

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

【问题讨论】:

  • 你只想在字符串前加0b还是什么?
  • 目前我的代码如下所示: $start['2'] = 0b0111111110011100010011011011110; $start['3'] = 0b0111111110011100100011011011110;这些是二进制值,我需要在用户输入的情况下创建这些值,例如 1010011
  • 请解释更多你想要转换的内容,字符串值的可能性是什么?只是二进制数吗?

标签: php binary


【解决方案1】:

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

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

虽然 PHP 没有 binary 类型,但有一个表示这种数据的二进制字符串或数组就足够了。

$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

【讨论】:

    【解决方案2】:

    据我了解,您想将任何字符串转换为二进制,您可以使用 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

    【讨论】:

      猜你喜欢
      • 2014-06-09
      • 2014-01-19
      • 1970-01-01
      • 2016-07-25
      • 2021-02-24
      • 2014-04-29
      • 1970-01-01
      相关资源
      最近更新 更多