从内存中读取phar文件?

时间:2014-03-19 17:00:33

标签: php phar

有没有办法可以从phar访问文件而无需先将phar保存到磁盘?在以下代码中,$fileContentsString是从网络加载的phar文件的内容。如何获取该字符串并从中读取文件而无需先将字符串另存为磁盘?我已经尝试将字符串写入php://temp,然后使用Phar::loadPhar来读取它,但是失败了。

$tmpFilePath = TMP_PATH . '/' . $filename;

// Save the file to TMP_PATH
$fp = fopen($tmpFilePath, 'w');
fwrite($fp, $fileContentsString);
fclose($fp);

$contents = file_get_contents('phar://' . $tmpFilePath . '/json.txt');

1 个答案:

答案 0 :(得分:0)

php://temp是一个可用于在内存中存储数据的流 - 但它只能通过文件句柄使用,而不能用作文件系统。 在php://temp上打开另一个文件句柄会给你另一部分内存,从而一个新的"文件"。

您需要一个仅限内存的文件系统,例如PEAR' Stream_Var package,它允许您将变量作为文件系统访问。