Как считать html страницу php. Использование PHP в страницах с расширением html
П ри создании даже персонального сайта, далеко не каждый может предусмотреть все возможные способы его дальнейшего использования. Очень важно подготовить почву для дальнейшего развития сайта. Если в прошлом вы создали сайт и по умолчанию присвоили всем страницам расширение.html , а только потом решили использовать PHP, то тогда читайте дальше.
Раньше для использования SSI, названия страниц сайта должны были заканчиваться расширением.shtml , но сегодня большинство интернет-серверов сконфигурированы так, что SSI можно использовать и на страницах с расширением.html , что весьма удобно. С PHP совсем другая история — расширение.php является расширением по умолчанию. Разработчики сайтов, заранее зная, что будет использоваться данный язык программирования, стразу присваивают правильное расширение.
Но что делать, когда все страницы заканчиваются расширением.html ?
Заменяем расширение HTML на PHP
Это можно сделать несколькими способами. Самый явный способ — дать всем страницам расширение.php или изменить уже существующие расширения (.html, .shtml и т.д.). У этого способа есть недостатки. Например уже проиндексированным страницам с расширением.html придётся заново индексироваться поисковыми системами. Или ещё хуже — все внешние ссылки, которые ссылаются явным образом на ту или иную страницу, будут недействительны. И придется оповещать владельцев каждого сайта об этих изменениях и создавать для каждой страницы еще одну страницу с 301 ошибкой. Конечно, изменить одно расширение на другое допустимо, но что делать если сайт уже имеет много страниц и много ссылок на разные страницы с других сайтов?
По осознанной причине на данный момент все страницы этого сайта заканчиваются расширением html, и мне никак не хотелось делать вышеприведённые изменения, тем самым создавая себе лишние трудности.
Можно обойтись и другим способом. Если сервер, на котором размещается сайт, поддерживает mod_rewrite (в большинстве случаев поддерживает), и есть доступ к файлу.htaccess , то можно добавить следующие строки в этот самый файл:
RewriteEngine on RewriteRule ^(.*)\.html $1\.php
Добавив этот код в.htaccess , можно не волноваться. Все запрашиваемые несуществующие страницы с расширением.html будут автоматически заменяться расширением.php благодаря чудесам от Apache. Но и этот способ является не единственным. Можно прописать следующее в том же самом.htaccess файле:
AddHandler application/x-httpd-php .php .html .htm
На мой взгляд самый удачный способ. Это делает HTML-страницы равными PHP-страницам, то есть все функции PHP теперь могут быть использованы на страницах с расширением HTML. Если нет доступа к файлу.htaccess , то можно написать письмо хостинг компании, и вежливо попросить админов прописать в конфигурации Apache (httpd.conf) нужное значение для сайта.
Кстати, если до этого на сайте использовалось SSI следующим образом:
то тогда в новом PHP’шном состоянии этот код нужно заменить на:
include("file.txt"); ?>
Ну вот и всё, думаю какой-нибудь из вышеприведённых способов поможет.
Часто возникает вопрос о том, как расположить одну форму на всех страницах вашего Zend приложения. Допустим я хочу расположить форму подписки в файле layout.phtml для того, чтобы она располагалась на каждой странице. Команда layout->content() работает с действиями и контроллерами... Как же реализовать то, что нам нужно?
Одно из решений данной задачи - это создание помощника действия.
Начнём с настройки ZF приложения:
$ zf create project layoutform $ cd layoutform $ zf enable layout
Очистите файл application/views/scripts/index/index.phtml и вставьте что-то вроде этого:
application/views/scripts/index/index.phtml:
This is the home page
Теперь можем начинать.
Форма
Создадим новую форму:
$ zf create form signup
А так же поля, которые нам необходимы:
application/forms/Signup.php:
Class Application_Form_Signup extends Zend_Form { public $processed = false; public function init() { $this->addElement("text", "name", array("label" => "Name", "required" => true, "validators" => array(array("StringLength", false, array("max"=>75)),),)); $this->addElement("text", "email", array("label" => "Email", "required" => true, "validators" => array(array("StringLength", false, array("max"=>150)), "EmailAddress",),)); $this->addElement("submit", "go", array("label" => "Sign up",)); } }
Форма у нас есть. Осталось её вывести.
Помощник действия
Мы используем помощник действия для того чтобы инициализировать форму.
Добавьте строку в application.ini:
application/configs/application.ini:
Resources.frontController.actionhelperpaths.Application_Controller_Helper = APPLICATION_PATH "/controllers/helpers"
Теперь система знает в каком месте искать помощники действий, так что можем идти дальше:
application/Bootstrap.php:
bootstrap("frontController"); $signup = Zend_Controller_Action_HelperBroker::getStaticHelper("Signup"); Zend_Controller_Action_HelperBroker::addHelper($signup); } }
Помощник действия будет выглядеть следующим образом:
application/controllers/helpers/Signup.php:
getActionController()->view; $form = new Application_Form_Signup(); $request = $this->getActionController()->getRequest(); if($request->isPost() && $request->getPost("submitsignup")) { if($form->isValid($request->getPost())) { $data = $form->getValues(); // process data $form->processed = true; } } $view->signupForm = $form; } }
Тут ничего особенного нет. Просто обратите внимание на класс родитель.
Помощник вида
Для того чтобы отобразить форму, создадим помощник вида, который будет выглядеть следующим образом:
application/views/helpers/SignupForm.php:
Sign up for our newsletter
"; if($form->processed) { $html .= "Thank you for signing up
"; } else { $html .= $form->render(); } return $html; } }
Всё, что нам осталось, так это сделать вывод формы в layout.phtml:
application/layouts/scripts/layout.phtml:
headMeta()->prependHttpEquiv("Content-Type", "text/html; charset=UTF-8"); $this->headTitle("Layout form test"); echo $this->doctype(); ?>
headMeta()->setIndent(4); ?> headTitle()->setIndent(4); ?>Получилось
Вот и всё. Мы добились той функциональности, которую задумали.
PHP — это встраиваемый серверный язык программирования. Большая часть его синтаксиса заимствована из C , Java и Perl . А также добавлена пара уникальных характерных только для PHP функций . Основная цель этого языка — создание динамически генерируемых PHP HTML страниц .
PHP в HTML
При создании сложных веб-страниц вы столкнетесь с необходимостью объединить PHP и HTML для реализации конкретных задач. На первый взгляд это может показаться сложным, так как PHP и HTML являются двумя независимыми дисциплинами, но это не так. PHP предназначен для взаимодействия с HTML , и его код может быть включен в разметку страницы.
В HTML-страницы PHP-код включается с помощью специальных тегов. Когда пользователь открывает страницу, сервер обрабатывает PHP-код , а затем отправляет результат обработки (не сам PHP-код ) в браузер.
HTML и PHP довольно просто объединить. Любая часть PHP-скрипта за пределами тегов игнорируется PHP-компилятором и передается непосредственно в браузер. Если посмотреть на пример, приведенный ниже, то можно увидеть, что полный PHP-скрипт может выглядеть следующим образом:
Привет, сегодня .