1

所以给出这个简单的例子:

<?php
$memory = fopen('php://memory', 'r+');

fwrite($memory, 'asdf', 4);

$value = fread($memory, 3);

var_dump($value);

我期待$value包含字符串"asd",但我得到一个空字符串。这个例子有什么明显的地方需要改变吗?我的期望不正确吗?如果$value确实应该包含"asd"可能导致这种情况发生的原因(可能是配置/php.ini 问题)?

4

2 回答 2

4

由于写入数据后流的内部指针位于索引 4,因此您需要fseek回到流的开头:

// fwrite
fseek($memory, 0);  // same as rewind($memory);
// fread
于 2012-11-02T22:54:42.127 回答
0

Alternatively, this would also work (and is basically the equivalent to fseek($memory, 0);):

rewind($memory);
于 2012-11-02T23:40:14.410 回答