如何在 PHP 5.6 中将具有无符号字节值的数组写入二进制文件
How to write array with unsigned byte values to a binary file in PHP 5.6
如何将这个带有无符号字节 (0-255) 的数组写入二进制文件?
数组如下所示:
请注意,我没有添加任何索引,因为当您使用 [] 时,PHP 会自动将值添加到数组变量中的下一个可用索引。所以第一个my_PNG[]=137;与 my_PNG[0]=137; 相同。下次使用 [] 时返回下一个索引 1 等等
my_PNG = array();
my_PNG[]=137;
my_PNG[]=80;
my_PNG[]=78;
my_PNG[]=71;
my_PNG[]=13;
my_PNG[]=10;
my_PNG[]=26;
my_PNG[]=10;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=13;
my_PNG[]=73;
my_PNG[]=72;
my_PNG[]=68;
my_PNG[]=82;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=1;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=1;
my_PNG[]=8;
my_PNG[]=6;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=31;
my_PNG[]=21;
my_PNG[]=196;
my_PNG[]=137;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=13;
my_PNG[]=73;
my_PNG[]=68;
my_PNG[]=65;
my_PNG[]=84;
my_PNG[]=120;
my_PNG[]=156;
my_PNG[]=99;
my_PNG[]=96;
my_PNG[]=96;
my_PNG[]=96;
my_PNG[]=248;
my_PNG[]=15;
my_PNG[]=0;
my_PNG[]=1;
my_PNG[]=4;
my_PNG[]=1;
my_PNG[]=0;
my_PNG[]=95;
my_PNG[]=229;
my_PNG[]=195;
my_PNG[]=75;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=73;
my_PNG[]=69;
my_PNG[]=78;
my_PNG[]=68;
my_PNG[]=174;
my_PNG[]=66;
my_PNG[]=96;
my_PNG[]=130;
这是 PNG 文件中的每个字节,其中只有一个黑色像素。
我想将这个数组写入或以某种方式保存到一个文件中,以便它可以在服务器上用作 PNG 图像。
我测试过:
file_put_contents('img.png', pack("C*",$my_PNG));
但是它只保存了一个字节到文件中。在过去的两天里,我还测试了很多其他的东西。所以我终于想得到一些帮助。
假设输入数组是一个字节数组,你只需要使用
把它写成二进制。
file_put_contents($filename, pack("C*", ...$my_PNG));
如何将这个带有无符号字节 (0-255) 的数组写入二进制文件?
数组如下所示:
请注意,我没有添加任何索引,因为当您使用 [] 时,PHP 会自动将值添加到数组变量中的下一个可用索引。所以第一个my_PNG[]=137;与 my_PNG[0]=137; 相同。下次使用 [] 时返回下一个索引 1 等等
my_PNG = array();
my_PNG[]=137;
my_PNG[]=80;
my_PNG[]=78;
my_PNG[]=71;
my_PNG[]=13;
my_PNG[]=10;
my_PNG[]=26;
my_PNG[]=10;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=13;
my_PNG[]=73;
my_PNG[]=72;
my_PNG[]=68;
my_PNG[]=82;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=1;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=1;
my_PNG[]=8;
my_PNG[]=6;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=31;
my_PNG[]=21;
my_PNG[]=196;
my_PNG[]=137;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=13;
my_PNG[]=73;
my_PNG[]=68;
my_PNG[]=65;
my_PNG[]=84;
my_PNG[]=120;
my_PNG[]=156;
my_PNG[]=99;
my_PNG[]=96;
my_PNG[]=96;
my_PNG[]=96;
my_PNG[]=248;
my_PNG[]=15;
my_PNG[]=0;
my_PNG[]=1;
my_PNG[]=4;
my_PNG[]=1;
my_PNG[]=0;
my_PNG[]=95;
my_PNG[]=229;
my_PNG[]=195;
my_PNG[]=75;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=0;
my_PNG[]=73;
my_PNG[]=69;
my_PNG[]=78;
my_PNG[]=68;
my_PNG[]=174;
my_PNG[]=66;
my_PNG[]=96;
my_PNG[]=130;
这是 PNG 文件中的每个字节,其中只有一个黑色像素。 我想将这个数组写入或以某种方式保存到一个文件中,以便它可以在服务器上用作 PNG 图像。
我测试过:
file_put_contents('img.png', pack("C*",$my_PNG));
但是它只保存了一个字节到文件中。在过去的两天里,我还测试了很多其他的东西。所以我终于想得到一些帮助。
假设输入数组是一个字节数组,你只需要使用 把它写成二进制。
file_put_contents($filename, pack("C*", ...$my_PNG));