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