Прочитать 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');

person Community    schedule 19.03.2014    source источник


Ответы (1)


php://temp — это поток, который можно использовать для хранения данных в памяти, но его можно использовать только через дескриптор файла, а не как файловую систему. Открытие другого дескриптора файла на php://temp даст вам другую часть памяти и, следовательно, новый «файл».

Вам нужна файловая система только для памяти, такая как пакет Stream_Var PEAR, который позволяет вам обращаться к переменным как к файловой системе.

person cweiske    schedule 02.03.2015