PHP не может читать файлы, содержащие код PHP, в виде текстовых файлов.
-
19-08-2019 - |
Вопрос
Я наткнулся на следующую особенность:
$handle = fopen(realpath("../folder/files.php"), "r");
Не могу прочитать файл, но как только я удаляю теги PHP из файла, он становится читаемым, и мои скрипты печатают непутное содержимое файла на странице.Кроме того, file.php никогда не выполняется, поэтому мне интересно, в чем проблема.
Я предполагаю, что Apache или PHP почему-то не позволяют читать файлы, содержащие теги PHP, как просто текст.
Как я могу включить его для моего конкретного файла (конечно, делать это глобально было бы небезопасно)?
Использование PHP 5.2.x и Apache 2.0.
Решение
Я понял.Я использовал 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
или используйте & Quot; просмотреть исходный код & Quot; команда, чтобы убедиться, что вы смотрите на то, что на самом деле там, а не только то, что браузер выбрал для отображения.
Хм, file_get_contents () работает для меня. Это проблема только для fopen?
Изменить: какую ошибку вы получаете точно?
Вадих М. решил проблему. Теги PHP скрывают весь вывод php исходного кода в браузере, но View Source показывает их. Спасибо!
Я использую htmlspecialchars($line);
Это решило проблему. Р>
переименовать файл прочитай это получить ваши данные изменить их переименуйте ваш файл:)