仅使用PHP将字节添加到二进制文件?

时间:2010-06-16 14:20:57

标签: php file byte fwrite

我正在尝试将随机字节添加到二进制(.exe)文件以使用php增加它的大小。 到目前为止我得到了这个:

function junk($bs)
{
    // string length: 256 chars
    $tmp = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa';

    for($i=0;$i<=$bs;$i++)
    {
        $tmp = $tmp . $tmp;
    }
    return $tmp;
}

$fp = fopen('test.exe', 'ab');
fwrite($fp, junk(1));
fclose($fp);

这个工作正常,结果exe是有用的但是如果我想做垃圾(100)来为文件添加更多大小我得到php错误“致命错误:允许的内存大小......”

我可以通过哪种其他方式实现此目的而不会出现错误?循环fwrite xxx次可以吗?

2 个答案:

答案 0 :(得分:2)

是的,多次循环fwrite()应达到同样的效果。

答案 1 :(得分:1)

我会试试这个:

$fp = fopen('test.exe', 'ab');
for ($i = 0, $i < 10000, $i++) {
fwrite($fp, 'a');
}
fclose($fp);

另外,如果您撰写的字符与NAP相符,我个人更愿意。 但是,如果它有效,它就有效......