Почему мой PHP выглядит закомментированным, когда я просматриваю его в браузере?
Я создаю html-страницу, но хочу разбить заголовок, поэтому мне не нужно менять все файлы.
Я пытаюсь добавить файл php.include и сохранить страницы в виде .php-файлов.
По какой-то причине файл header.php не отображается в моем файле, когда я его просматриваю.
вот мой код. Правильно ли это?
php include 'header.php'; ?> когда я проверяю элемент с использованием chrome, php, похоже, комментируется
PHP не проходит через парсер PHP, прежде чем попасть в браузер, поэтому браузер получает PHP-код вместо сервера, выполняющего его.
- Вы загружаете страницу через HTTP (например, не просто дважды щелкаете файл в файловом менеджере)
- Сервер, на котором вы используете, поддерживает PHP
- Сервер настроен так, чтобы обрабатывать файл как PHP (обычно это делается путем предоставления ему расширения .php)
Это то, что я получил, я взял ваш код и сохранил его как index.php
- Убедитесь, что ваш файл на самом деле интерпретируется как PHP, а не только стандартный HTML.
- Включите все сообщения об ошибках ( error_reporting = E_ALL | E_STRICT | E_WARNING в php.ini)
- Убедитесь, что ваши ошибки отображаются ( display_errors = on в php.ini)
Попробуйте использовать require а не include поскольку require остановит выполнение, если он не может загрузить файл и показать ошибку
Вам нужно проверить, может ли html-страница запускать php-код или нет.
Если вы используете сервер Apache для запуска html-страницы, то способ выполнить PHP на странице .html – это изменить файл .htaccess. Поместите следующий код в файл .htaccess:
//for .html: AddType application/x-httpd-php .html // for .htm AddType application/x-httpd-php .htm
Для получения дополнительной информации прочитайте следующую ссылку: http://php.about.com/od/advancedphp/p/html_php.htm
Другая возможная причина может быть: Файл недоступен в данном месте, поэтому для этого проверьте error_log.
Ваш скрипт header.php должен начинаться с «» И перейти к настройкам php и снять отметку с «короткого открытого тега».
Почему браузер видит код PHP как комментарий?
Возникла такая странная ситуация. Решил написать, для своих нужд, мини движок для сайта. Не хочу учиться сразу с фреймворка или юзать чьи то решения. Просто для учебы, и ничего сверхсекретного. По сути пару страниц шаблона, главная страница и класс для отображения страниц. Но столкнулся с такой бедой, на главной странице код PHP работает отлично, а вот на второстепенных страницах не работает от слова совсем. Тупо пустая страница с одной строкой HTML и одним выводом phpinfo() выводит только HTML.
В режиме разработки браузер отображает мой код PHP вот так:
Я уже думал, что я где-то начудил с тегами HTML, может где не закрыл, ибо использую отдельно файлы футера и хедера, но проверил уже все. Что может быть не так?
В index.php все работает, подключаются файлы, создаётся объект, работает переключение страниц. Только вот на этих страницах код уже не работает.
Простой 20 комментариев

1) Настройки сервера кривые, может только index.php и отрабатывает.
2) Есть вероятность все дело в short_open_tag

Dmitry Bay, как проверить первый пункт?
По второму, так я ещё не использовал сокращений, всегда открываю и закрываю полным тэгом.





_page_file = $_GET["page"]; //Небольшая защита $this->_page_file = str_replace(".", null, $_GET["page"]); $this->_page_file = str_replace("/", null, $_GET["page"]); $this->_page_file = str_replace("", null, $_GET["page"]); //Проверяем, если шаблон не существует if (!file_exists("templates/main/" . $this->_page_file . ".php")) < $this->_setError("Шаблон не найден"); //Ошибку на экран $this->_page_file = "main"; //Открываем главную страницу > > //Если в GET запросе нет переменной page, то открываем главную else $this->_page_file = "main"; > //Записывает ошибку private function _setError($error) < $this->_error = $error; > //Возвращает текст ошибки public function getError() < return $this->_error; > //Возвращает текст открытой страницы public function getContentPage() < return file_get_contents("templates/main/" . $this->_page_file . ".php"); > //Возвращает заголовок открытой страницы public function getTitle() < switch ($this->_page_file) < case "main": return "Главная страница"; break; case "about": return "Про портал"; break; case "news": return "Новости"; break; case "polls": return "Опрос"; break; case "login": return "Вход"; break; default: break; >> > ?>
include_once "class/Engine.php"; //Подключаем класс-движка $engine = new Engine(); //Создаем объект класса Engine include_once "templates/main/header.php"; //Подключаем шапку сайта if ($engine->getError()) < //Если возникли ошибки, выводим сообщение на экран echo "" . $engine->getError() . ""; > echo $engine->getContentPage(); //Выводим страницы сайта include_once "templates/main/footer.php";//Подключаем подвал сайта
В вашем коде, php код берется просто как код без всякого выполнения, тоесть отдается как текст браузеру.
echo eval(' ?' . '>' . $engine->getContentPage() . '


P747, вот оно. Спасибо. Я даже понял зачем это))) Получается я в одном тэге php открывал еще один. Спасибо.


Чувак, ты правда не понял что тебе Lander, написал? Что весь красивый класс "Engine" заменяется одной командой include?


Во-первых костыль, во-вторых небезопасно, а главное - бессмысленно.
Сейчас весь движок - это такой карго культ - выглядит красиво и солидно, но несет очень мало смысла.
Но главный косяк в том, что заголовок - это не единственная часть страницы, которую нужно знать до вывода шапки сайта.
Некоторым страницам в шапке нужна информация, которую можно узнать только в коде страницы - например - заголовок новости.
Некоторым страницам надо еще вывести допольнительный НТТР заголовок
Некоторые страницы используют допольнительные CSS или JS
Некотоыре сраницы выводят не хтмл а джейсон, и шапка сайта им как корове седло
Некоторые страницы вообще ничего не выводят, им шапка тоже не нужна
У тебя мысль правильная, но сработала она не до конца.
Движок нужен не для того чтобы выводить шапку перед контентом. А для того, чтобы отделить логику от вывода
Сначала у тебя должен отработать код страницы, а потом - если нужно - выводим шапку, контент и подвал.
То есть каждая страница должна состоять из двух частей - из логики и из представления.
А движок должен сначала инклюдить логику, а потом - представление. Передавая в него переменные, с данными, коорые были получены в первой части.
Все php вставки превращаются в комментарии в html
Не разбираюсь в устройстве сервера. php мне нужен только для чтения файлов, в js это делается как-то сложно . В будущем, я думаю, понадобится и для другого.
В общем:
Подключал php файл к html-странице, используя include. Его нужно писать в . Но когда я загружаю страницу, то оно превращается в . Пробовал искать решение, но там говорится о apache и подобных серверах, а у меня чистый php.
Windows 7
php: 7.2.29, чистый, apache и т.п. не устанавливал.
Файл htaccess.php в одной папке с главной страницей. Его содержание:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
Ещё, есть файл sample.php, но там только echo "Testing. ". Конечно же, не выводится, а консоль молчит.
Вставки PHP в Html
Пытался вставить форму регистрации на сайт(Html): <?php if (empty($_SESSION) or.
Не срабатывают php вставки в html коде
Доброй ночи! Для кого с наступившим НГ, а для кого с наступающим НГ. php код не срабатывает в.
Можно ли делать PHP-вставки в HTML-код?
Есть файл с раcширением php Фактически, это html-страница: <html> <head></head> <body> .
Удалить все комментарии и теги из HTML файла
Есть задание: Написать сценарий для sed и awk для удаления тегов и комментариев HTML. Теги и.
Сообщение от Fifth 
без апача Вы можете использовать только встроенный в php сервер БЕЗ ПОДДЕРЖКИ .htaccess
Сообщение от Fifth 
Сообщение от Fifth 
htaccess.php в одной папке с главной страницей. Его содержание:
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
нет такого понятия, как htaccess.php
чтобы работал .htaccess, то нужен apache
Добавлено через 22 секунды
круг замкнулся
Php комментируется в HTML.
Протестировал это в моем браузере и на веб-сервере, когда я просматриваю исходный код, код закомментирован .
5 ответов
Чтобы запустить скрипты PHP, вы должны сохранить файл в виде файла .php . Вам также потребуется выполнить его на сервере. Вы не можете запускать php прямо из своего браузера, так как PHP является препроцессором HTML - ваш браузер не имеет ничего общего с PHP, он получает только HTML, который генерируется сервером.
Так что, поскольку теги PHP недействительны в файлах HTML, когда он не предварительно обрабатывается сервером, браузер не распознает его, поэтому он автоматически преобразует его в комментарии, поскольку он не знает, что еще с ним делать.
Если файл обслуживается Apache, вы не включили PHP-интерпретатор для запуска в html файлах. Apache (по умолчанию) не запускает php-интерпретатор в html файлах.
Как отмечали другие, браузер не знает, что делать с тегом php.
Если вы хотите интерпретировать php в html файлах вместо того, чтобы переименовывать файлы в .php, вы можете добавить расширение .html к интерпретатору php, как показано ниже:
AddType application/x-httpd-php .php .html
Эта строка находится в файле httpd.conf.
Я не предлагаю, что это правильный способ сделать это, но я считаю, что он отвечает на ваш первый вопрос.
Я знаю, что это немного поздно, но у меня была та же проблема и исправлено это, изменив URL-адрес из файла://www/[Project] на localhost/[Project].
Даже если файл сохраняется как .php, он будет комментировать PHP, если файл открывается из файловой системы.
Это не обслуживается на сервере Apache. Если у вас нет интерпретатора php, то да, вы закомментируете весь php.
Создайте файл с именем hello.php и поместите его в корневой каталог вашего веб-сервера (DOCUMENT_ROOT) со следующим содержимым:
Пример # 1 Наш первый PHP script: hello.php
Используйте свой браузер для доступа к файлу с URL-адресом вашего веб-сервера, заканчивающимся ссылкой на файл /hello.php. При локальном развитии этого URL-адреса будет выглядеть как http://localhost/hello.php или http://127.0.0.1/hello.php , но это зависит от конфигурации веб-сервера. Если все настроено правильно, этот файл будет проанализирован PHP, и в ваш браузер будет отправлен следующий вывод: