PHP以真正的二进制方式读取二进制文件
我在谷歌上搜索了我的问题,但没有找到解决方案。 我想读取一个文件并将缓冲区转换为二进制,如 10001011001011001。
如果我从文件中有类似的内容
bmoov���lmvhd�����(tF�(tF�_�
K�T��������������������������������������������@���������������������������������trak���\tkh
d����(tF�(tF������� K������������������������������������������������@������������$edts��
如何将所有字符(也包括这个东西��)转换为 101010101000110010 表示?
我希望有人能帮助我:)
I searched google for my problem but found no solution.
I want to read a file and convert the buffer to binary like 10001011001011001.
If I have something like this from the file
bmoov���lmvhd�����(tF�(tF�_�
K�T��������������������������������������������@���������������������������������trak���\tkh
d����(tF�(tF������� K������������������������������������������������@������������$edts��
How can I convert all characters (including also this stuff ��) to 101010101000110010 representation??
I hope someone can help me :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
对每个字节使用 ord() 获取其十进制值,然后 sprintf 以二进制形式打印它(并通过在前面填充 0 强制每个字节包含 8 位)。
$ php 测试.php
Use ord() on each byte to get its decimal value and then sprintf to print it in binary form (and force each byte to include 8 bits by padding with 0 on front).
$ php test.php
您可以做的是将文件读入字符串变量,然后使用 以二进制数字表示形式打印字符串
sprintf
Docs:如果您只是寻找十六进制表示形式,则可以使用
bin2hex
文档:如果您正在寻找更好形式的十六进制转储,请参阅相关问题:
On thing you could do is to read the file into a string variable, then print the string in your binary number representation with the use of
sprintf
Docs:If you're just looking for a hexadecimal representation, you can use
bin2hex
Docs:If you're looking for a nicer form of hexdump, please see the related question:
按字读取文件(一次 32 位)比按字节读取文件更快:
Reading a file word-wise (32 bits at once) would be faster than byte-wise: