Intereting Posts
«Недопустимое состояние» после удаления API Vimeo Настройка функций PHP на основе таймера Семантический Ui Modal дублируется при повторных вызовах Почему бы не использовать AES для шифрования паролей в PHP? Адаптер базы данных Zend – сложный запрос MySQL Скорость доступа к файлам и скорость доступа к базе данных Как добавить метаданные к изображению? Вызов python из php завершается с ошибкой при импорте numpy Отключить маршрутизацию Laravel для определенной папки / маршрута Ошибка Laravel Route не работает. Пытается получить свойство не объекта PHP Неустранимая ошибка: допустимый размер памяти 33554432 байт исчерпан (пытался выделить 41007872 байта) Почему изображения, поданные с моего веб-сервера, не кэшируются на клиенте? Формы Symfony (как автономный компонент с Doctrine) EntityType не работает Получение текущего скрипта, выполняющего имя файла в javascript Woocommerce: пользовательская цена, основанная на пользовательском вводе

PHP не может читать файлы, содержащие PHP-код, в виде текстовых файлов

Я наткнулся на следующую особенность:

$ handle = fopen (realpath ("../ folder / files.php"), "r");

не может прочитать файл, но как только я удаляю теги php из файла, он становится читаемым, и мои скрипты печатают непустой контент на странице. Кроме того, file.php никогда не выполняется, поэтому я задаюсь вопросом, почему это проблема.

Я предполагаю, что Apache или PHP не позволяют читать файлы, содержащие PHP-теги PHP, как текст.

Как я могу включить его для моего конкретного файла (курс, сделанный в глобальном масштабе, будет небезопасным)?

Использование PHP 5.2.x и Apache 2.0

Solutions Collecting From Web of "PHP не может читать файлы, содержащие PHP-код, в виде текстовых файлов"

Я понял. Я использовал Google chrome для отладки страницы, и я понял, что при просмотре источника Chrome почему-то скрывает PHP-теги. Я проверил те же тесты на Firefox, и просмотр источника показал, что все в порядке.

Ниже приведены данные теста:

Код:

$fh = fopen("test.php","r"); while ($line = fgets($fh)){ echo $line; } 

Файл для чтения (test.php):

 testing <?php testing2 ?> testing3 

Рендеринг (как для Chrome, так и для firefox):

 testing testing3 

Просмотр источника (с использованием firefox):

 testing <?php testing2 ?> testing3 

Просмотреть источник (используя Chrome – источник моей ошибки):

 testing testing3 

Вы уверены, что правильно интерпретируете вывод? Если вы печатаете содержимое файла непосредственно на вывод страницы, браузер не будет отображать текст внутри угловых скобок, потому что он считает его тегом. Служите своим контентом как text/plain , или используйте команду «просмотр источника» своего браузера, чтобы убедиться, что вы смотрите на то, что на самом деле есть, а не только на то, что браузер решил отобразить.

Hmm file_get_contents () работает для меня. Это вопрос только для fopen?

Изменить: какую ошибку вы получаете точно?

Вадим М. решил проблему. Теги PHP скрывают весь исходный вывод php в теге, заключенный в браузере, но View Source показывает их. Благодаря!

Я использую htmlspecialchars($line);

Он решил проблему.

переименуйте файл, прочитайте его, чтобы ваши данные изменили их, переименуйте свой файл 🙂