Почему не создаётся phar?

Права на запись phar.readonly = 0 в php.ini поставил. Php 5.3.3 Registered Stream Filters zlib.*, bzip2.*
Создание, код:
$hello = "Hello!";
$phar = new Phar('test.phar');
$phar[hello.txt] = "$hello";

Результат выполнения:
Notice: Use of undefined constant hello - assumed 'hello' in /var/www/user/data/www/site.ru/folder/phar_create.php on line 9
Notice: Use of undefined constant txt - assumed 'txt' in /var/www/user/data/www/site.ru/folder/phar_create.php on line 9

Какие константы? Откуда?

Но файл test.phar в папке на сервере появляется. При попытке чтения:
Warning: file_get_contents(phar://test.phar/hello.txt): failed to open stream: phar error: "hello.txt" is not a file in phar "test.phar" in /var/www/user/data/www/site.ru/folder/phar_echo.php on line 7

Что я делаю не так?
  • Вопрос задан
  • 204 просмотра
Решения вопроса 2
27cm
@27cm
TODO: Написать статус
$hello = "Hello!";
$phar = new Phar('test.phar');
$phar['hello.txt'] = $hello;
Ответ написан
Комментировать
Ivanq
@Ivanq
Знаю php, js, html, css
В php не определены константы hello и txt. Php заменяет их на "hello" и "txt" соответственно, затем соеденяет их оператором ".". Получается "hellotxt".

Просто забери hello.txt в кавычки
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы