2014-03-19 55 views
1

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

$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'); 

回答

0

php://temp是可用于将数据存储在存储器中的流 - 但它可以通过一个文件句柄仅用于,而不是一个文件系统。 打开另一个文件句柄php://temp会给你另一部分的内存,从而一个新的“文件”。

您需要一个仅限内存的文件系统,如PEAR的Stream_Var package,它允许您以文件系统的形式访问变量。