Главная » Разработчику » Использование PHP в страницах с расширением html. Форма в вашем layout PHP в HTML с помощью short_open_tag
Использование PHP в страницах с расширением html. Форма в вашем layout PHP в HTML с помощью short_open_tag
Многие
читатели в любой книге о компьютерах
пролистывают все, что не представляет
непосредственного интереса, и переходят к
тому, что они действительно
хотят
знать. Лично я поступаю
именно так. Впрочем, в этом нет ничего
страшного -- редко встречаются технические
книги, которые необходимо читать от корки
до корки. А может, вы именно так и поступили
-- пропустили восемь начальных глав и
взялись за эту главу, потому что у нее было
самое интересное название? Да и кому
захочется тратить время на подробности,
когда на работе «горит» очередной проект?
К счастью,
подобная торопливость не помешает вам
нормально усвоить материал второй части
книги, посвященной использованию PHP для
построения сайтов и взаимодействия с Web. В
этой главе вы научитесь легко
модифицировать содержимое web-страниц и
осуществлять навигацию в Web при помощи
ссылок и различных стандартных функций.
Следующая глава дополнит изложенный
материал - в ней подробно рассматриваются
средства взаимодействия с пользователем в
формах HTML В главе 11 описана организация
интерфейса с базами данных. В остальных
главах второй части рассматриваются
нетривиальные аспекты web-программирования
на PHP.
Однако
следует помнить о том, что материал части 1
абсолютно
необходим
для
нормального владения PHP. Предполагается,
что вы все же прочитали первую часть,
поэтому в примерах будут использоваться
многие из описанных ранее концепций. Итак,
если вы пролистали часть книги, вам
придется время от времени возвращаться к
предыдущим главам и наверстывать упущенное.
Простые ссылки
<а href = "date.php">
$link = "date.php";
print "<а href
= \"$link\">View today"s date \n"
Вероятно, у
вас возник вопрос -- почему в коде ссылки
перед кавычками (") ставится обратная
косая черта (\)? Дело в том, что кавычки в PHP
являются специальными символами и
используются в качестве ограничителей
строк. Следовательно, кавычки-литералы в
строках должны экранироваться.
Если
необходимость экранировать кавычки вас
раздражает, просто включите режим magic_quotes_gpc
в файле php.ini. В результате все апострофы,
кавычки, обратные косые черты и нуль-символы.
в тексте автоматически экранируются!
Разовьем
приведенный пример. Для быстрого вывода
списка ссылок в браузере можно
воспользоваться массивом:
// -
специальное обозначение точки-маркера endfor;
Файловые компоненты (шаблоны)
Мы подошли к
одной из моих любимых возможностей PHP.
Шаблоном (применительно к web-программированию)
называется часть web-документа, которую вы
собираетесь использовать в нескольких
страницах. Шаблоны, как и функции PHP,
избавляют вас от лишнего копирования/вставки
фрагментов содержания страницы и
программного кода. С увеличением масштабов
сайта значение шаблонов возрастает,
поскольку они позволяют легко и быстро
проводить модификации на уровне целого
сайта. В этом разделе будут описаны
некоторые возможности, которые открываются
при использовании простейших шаблонов.
Как правило,
общие фрагменты содержания/кода (то есть
шаблоны) сохраняются в отдельных файлах.
При построении web-документа вы просто «включаете»
эти файлы в соответствующие места страницы.
В PHP для этого существуют две функции: include() и require().
include() и require()
Одним из
самых выдающихся аспектов PHP является
возможность построения шаблонов и
программных библиотек и их последующей
вставки в новые сценарии. Применение
библиотек экономит время и усилия по
использованию общих функциональных
возможностей на разных web-сайтах. Читатели,
обладающие
опытом
программирования на других языках (например,
С, C++ или Java), хорошо знакомы с концепцией
библиотек функций и их использованием в
программах для расширения функциональных
возможностей.
Включение
одного или нескольких файлов в сценарий
осуществляется стандартными функциями PHP
require() и include(). Как будет показано в
следующем разделе, каждая из этих функций
применяется в определенной ситуации.
Функции
В PHP
существуют четыре функции для включения
файлов в сценарии PHP:
include();
include_once();
require();
require_once().
Несмотря на
сходство имен, эти функции решают разные
задачи.
Функция include() включает содержимое файла в сценарий.
Синтаксис функции include():
include (file
файл]
У функции
include() есть одна интересная особенность --
ее можно выполнять условно. Например, если
вызов функции включен в блок команды if. то
файл включается в программу лишь в том
случае, если условие i f истинно. Если
функция includeO используется в условной
команде, то она
должна
быть
заключена в фигурные скобки или в
альтернативные ограничители. Сравните
различия в синтаксисе листингов 9.1 и 9.2.
Листинг
9.1.
Неправильное
использование include()
if (some_conditional)
include
("text91a.txt"); else
include
("text91b.txt");
Листинг
9.2.
Правильное
использование include()
if (some_conditional) :
include
("text91a.txt");
include
("text91b.txt");
Весь код
PHP во включаемом файле
обязательно
заключается в теги PHP. Не
стоит полагать, что простое сохранение
команды PHP в файле обеспечит ее правильную
обработку:
Вместо этого
необходимо заключить команду в
соответствующие теги, как показывает
следующий пример:
print "this is an
invalid include file";
Функция
include_once() делает то же, что и include(), за одним
исключением: прежде чем включать файл в
программу, она проверяет, не был ли он
включен ранее. Если файл уже был включен,
вызов include_once() игнорируется, а если нет --
происходит стандартное включение файла. Во
всем остальном include_once() ничем не отличается
от include(). Синтаксис функции include_once():
include_once (file
файл)
В целом
функция require() похожа на include() -- она тоже
включает шаблон в тот файл, в котором
находится вызов require(). Синтаксис функции
require():
require (file
файл)
Тем не менее,
между функциями require() и include() существует
одно важное различие. Файл, определяемый
параметром require(), включается в сценарий
независимо от местонахождения require() в
сценарии. Например, при вызове requi ге() в
блоке if при ложном условии файл все равно
будет включен в сценарий!
Во многих
ситуациях бывает удобно создать файл с
переменными и другой информацией, которая
используется в масштабах сайта, и затем
подключать его по мере необходимости. Хотя
имя этого файла выбирается произвольно, я
обычно называю его init.tpl (сокращение от «initializaion.template»).
В листинге 9.3 показано, как выглядит очень
простой файл init.tpl. В листинге 9.4 содержимое
init.tpl включается в сценарий командой require().
Передача
URL при вызове require() допускается лишь при
включенном режиме «URL fopen wrappers» (этот режим
включен по умолчанию).
С
увеличением размеров сайта может оказаться,
что некоторые файлы включаются в сценарий
по несколько раз. Иногда это не вызывает
проблем, но в некоторых случаях повторное
включение файла приводит к сбросу значений
изменившихся переменных. Если во
включаемом файле определяются функции,
могут возникнуть конфликты имен. Учитывая
сказанное, мы приходим к следующей функции
-- require_once().
Функция
require_once() гарантирует, что файл будет
включаться в сценарий всего один раз. После
вызова requi rе_оnсе() все дальнейшие попытки
включения того же файла игнорируются.
Синтаксис функции requiге_оnсе():
Вероятно, вы
станете чаще использовать функции
включения файлов по мере того, как ваши web-приложения
начнут увеличиваться в размерах. Эти
функции часто встречаются в примерах
данной книги, чтобы сократить избыточность
программного кода. Первые примеры
рассматриваются в следующем разделе,
посвященном принципам построения базовых
шаблонов.
Построение компонентов
При
определении структуры типичной web-страницы
я обычно разбиваю ее на три части: заголовок,
основную часть и колонтитул. Как правило, в
большинстве правильно организованных web-сайтов
присутствует заголовок, который
практически не изменяется; в основной части
выводится запрашиваемое содержание сайта,
поэтому она часто изменяется; наконец,
колонтитул содержит информацию об
авторских правах и навигационные ссылки.
Колонтитул, как и заголовок, обычно
остается неизменным. Не поймите меня
превратно -- я вовсе не пытаюсь подавлять
ваши творческие устремления. Мне
встречалось немало великолепных сайтов, не
следовавших этим принципам. Я всего лишь
пытаюсь выработать общую структуру,
которая может послужить отправной точкой
для дальнейшей работы.
Заголовок
Заголовочный
файл (вроде приведенного в листинге 9.5)
присутствует практически в каждом из моих
web-сайтов с поддержкой PHP. В этом файле
содержится
информация,
действующая на уровне всего сайта, --
например, заголовок, контактные данные и
некоторые компоненты кода HTML-страницы.
Листинг
9.5.
Пример
файла заголовка
// Файл: header.tpl
// Назначение:
заголовочный файл для сайта PhpRecipes .
Довольно
часто доступ к включаемым файлам со стороны
посетителей ограничивается, особенно если
эти файлы содержат конфиденциальную
информацию (например, пароли). В Apache можно
запретить просмотр некоторых файлов
редактированием файлов http.conf или htaccess.
Следующий пример показывает, как запретить
просмотр всех файлов с расширением.tpl:
Order allow,deny
Allow from 127.0.0.1
PHP
и проблемы безопасности сайтов подробно
описаны в главе 16.
Обратите
внимание на использование глобальной
переменной $site_email в файле колонтитула.
Значение этой переменной действует в
масштабах всей страницы, а мы предполагаем,
что файлы header.tpl и footer.tpl будут включены в
одну итоговую страницу. Также обратите
внимание на присутствие пути $site_path в ссылке
Privacy (Конфиденциальность). Я всегда включаю
в шаблоны полные пути ко всем ссылкам --
если бы URL ссылки состоял из одного имени
privacy.php, то файл колонтитула был бы жестко
привязан к конкретному каталогу.
Основная часть
В основной
части страницы подключается содержимое
заголовка и колонтитула. В сущности, именно
основная часть содержит информацию,
интересующую посетителей сайта. Заголовок
эффектно выглядит, колонтитул содержит
полезные сведения, но именно ради основной
части страницы пользователи снова и снова
возвращаются на сайт. Хотя я не смогу
предоставить каких-либо рекомендаций по
поводу конкретной структуры страниц,
шаблоны, подобные приведенному в листинге
9.7, основательно упрощают
администрирование страниц.
Листинг
9.7.
Пример
основной части страницы (index_body.tpl)
Welcome to PHPRecipes.
the starting place for PHP scripts, tutorials,
and information about gourmet
cooking!
Все вместе: заголовок, колонтитул и основная часть
Вероятно,
мое настроение лучше всего выражается
фразой полковника «Ганнибала» Смита (Джордж
Пеппард) из знаменитого сериала «Команда А»:
«Люблю, когда все становится на свои места».
Я испытываю нечто подобное, когда
разрозненные шаблоны объединяются и
образуют полный web-документ. Комбинируя три
секции документа: header.tpl, index_body.tpl и footer.tpl, --
можно быстро построить простейшую страницу
вроде той, что приведена в листинге 9.8.
Листинг
9.8.
Построение
страницы index.php включением нескольких
файлов
// Файл: index.php
// Назначение:
домашняястраница PHPRecipes
// Вывести
заголовок
include ("header.tpl");
// Вывести
основную часть
include ("index_body.tpl");
// Вывести
колонтитул
include ("footer.tpl");
Ну как? Три
простые команды -- и перед вами готовая
страница. Текст итоговой страницы приведен
в листинге 9.9.
Листинг
9.9.
Страница
HTML, построенная в листинге 9.8 (index.php)
На рис. 9.1
показано, как полученная страница выглядит
в браузере. Хотя я обычно не пользуюсь
рамками таблиц, на этот раз я их вывел, чтобы
на рисунке более наглядно выделялись три
части страницы.
Рис. 9.1.
Внешний
вид страницы, построенной в листинге 9.8
Оптимизация шаблонов
Во втором (на
мой взгляд, более предпочтительном)
варианте шаблоны оформляются в виде
функций, находящихся в отдельном файле. Тем
самым обеспечивается дополнительное
структурирование ваших шаблонов. Я называю
этот файл инициализационным файлом и храню
в нем другую полезную информацию. Поскольку
мы уже рассмотрели относительно длинные
примеры заголовка и колонтитула,
содержимое листингов 9.10 и 9.11 было слегка
сокращено для наглядной демонстрации новой
идеи.
// Содержимое
основной части This is some body information
// Вывести
колонтитул Show_footer();
Проект: генератор страниц
Хотя в
большинстве созданных мною web-сайтов
основное содержимое страниц формировалось
на основании информации, прочитанной из
базы данных, всегда найдется несколько
страниц, которые практически не изменяются.
В частности, на них могут выводиться
сведения о команде разработчиков,
контактные данные, реклама и т. д. Я обычно
храню эту «статическую» информацию в
отдельной папке и использую сценарий PHP
для ее загрузки при поступлении запроса.
Конечно, у вас возникает вопрос -- если это
статическая информация, для чего нужен
сценарий PHP? Почему бы не загружать
обычные страницы HTML? Преимущество PHP
заключается в том, что вы можете
использовать шаблоны и вставлять
статические фрагменты по мере
необходимости.
<а href =
"=$site_path:?>/static.php?content=$content">Static Page
Name
Начнем с
создания статических страниц. Для простоты
я ограничусь тремя страницами, содержащими
информацию о сайте (листинг 9.12), рекламу (листинг
9.13) и контактные данные (листинг 9.14).
Листинг
9.12.
Информация
о сайте (about.html)
About
PHPRecipes
What programmer doesn"t
mix all night programming with gourmet cookies. Here at PHPRecipes. hardly a
night goes by without one of our coders
mixing a little bit of HTML with a tasty
plate of Portobello Mushrooms or even Fondue. So we decided to bring you the
best of what we love most: PHP and food!
That"s right, readers.
Tutorials, scripts, souffles and more. 0nly at PHPRecipes.
Advertising
Information
Regardless of whether
they come to learn the latest PHP techniques or for brushing up on how
to bake chicken, you
can bet our readers are decision makers. They are the Industry
professionals who make
decisions about what their company purchases.
Переходим к
построению страницы static.php, которая выводит
запрашиваемую статическую информацию. В
этот файл (см. листинг 9.15) включаются
компоненты страниц нашего сайта и
инициализационный файл site_init.tpl.
Листинг
9.15.
Общий
вывод статических страниц (static.php)
Если
щелкнуть на любой из этих ссылок, в браузере
загружается соответствующая статическая
страница, внедренная в static.php!
Итоги
В этой главе
вы познакомились с первоочередной задачей,
для решения которой и создавался PHP, --
динамическим построением web-страниц. Были
рассмотрены следующие вопросы:
обработка URL;
построение
динамического содержания;
включение и
построение базовых шаблонов.
Глава
завершается генератором страниц --
программой, которая загружает статические
страницы в шаблон и позволяет легко
организовать поддержку большого
количества статических страниц HTML.
Следующая
глава посвящена использованию PHP в
сочетании с формами HTML, заметно повышающими
степень интерактивности вашего сайта. А
потом -- взаимодействие с базами данных! Вам
предстоит узнать много интересного.
>
Php начинающим
На этой страничке попробуем объяснить логику построения динамического сайта.
Php - исполняемый сервером скрипт. Что это означает? На сервере установлен специальный интерпретатор,
который понимает те или иные языковые конструкции. Сам php файл, он считывает построчно, как бы бежит
по нему сверху вниз. Если находит, например слово
exit
, то останавливается и дальше ничего не считывает, а исполняет, то что нашел до этого
слова, например
print
"Здорово!"
Напечатает Здорово!
print
"Здорово!";
exit
; ?>
Это самый простейший php файл, но на самом
деле, на практике приходиться иметь дело со
сложным php файлом. Страничек на сайте много,
у нас на данный момент 24 тысячи, нам бы
пришлось написать столько же php файлов, или,
просто html файлов. Но, php позволяет сделать
все это дело в одном исполняемом файле. То
есть, надо организовать в самом этом файле
ссылки типа, если это - делаем то, если то -
делаем это. Php позволяет очень хорошо организовать ссылки. Общая схема такова:
Вы видите в скрипте, что появились отсеки типа
если (то-то){
то делаем это }
Тогда, что получилось, если первое условие исполнилось, то есть $uslovie
1
== "yes",
то исполняем скрипт в скобках {
}
, которые относятся к данному отсеку скрипта, далее
в этом отсеке стоит
exit
- здесь программа заканчивается. То
есть, с помощью отсеков мы можем разбить php
файл на составные части. А, что же такое
условие - if($uslovie
== "yes")
??? Это и сеть та
самая ссылка, в данном случае, что - то
исполнится, если переменная $uslovie
будет
равна yes
.
Назовем файл all.php
. Чтобы
организовать в командной строке ссылки на
него, просто добавляем all.php?uslovie=yes
. Если
вы видите знак вопроса в командной строке,
то это и есть ссылка в данном случае, $uslovie
==
"yes"
. Тогда создадим html файл, в котором
пропишем ссылки на наш исполняемый скрипт.
Вы видите две ссылки. Если вы кликните на
ссылках, то исполняться будет файл all.php
,
и в первом случае скрипту будет передано,
что переменная $uslovie
1
==yes
, а во втором
случае, $uslovie
2
==yes
. По первой ссылке исполнится
первый отсек
и программа остановится, по
второй ссылке программа пробежит первый
отсек и исполнится что - то из второго
отсека
(смотри выше). Обратите внимание,
что в ссылках знак доллара не пишется,
программа делает их переменными при
передаче скрипту, то есть при передаче в
командную строку.
Теперь мы знаем как организовать
ссылки на php файл, как разбить его на отсеки
и, как организовать ссылки в html тексте на
наш файл. Но, есть еще одно но... Дело в том,
что если таким способом организовать сайт,
то в первоначальном виде, когда ссылок
будет не очень много, Вы не увидите проблем.
Допустим будет 10 отсеков, все они спокойно
улягутся в одном файле. Но если, ссылок
очень много, например у нас 24000 страниц, то в
принципе невозможно все отсеки уместить в
один php файл. Вы сами замучаетесь искать тот
или иной отсек в одном файле для, например,
его изменения. Кроме этого, файл будет очень
большой по размеру, наш all.php, занимал бы 1Мб.
Кроме этого надо понимать еще одну вещь, на
многих серверах есть ограничение по
размеру исполняемых файлов (например 50Кб),
если будет превышение, такой файл
игнорируется и не исполняется. В связи с
этими выкладками мы уменьшили размер
основного файла до 8Кб, хотя за собой он
несет нагрузку по исполнению на 1Мб. Как же
это сделать? Php предоставляем прекрасную
возможность по разбивке php файла на куски
посредством команды инклюд
....
Теперь становится понятно, как мы
уменьшили наш основной файл до 8Кб, потому
что все остальные подключаемые файлы имеют
суммарный размер 1 Мб, а мы их спрятали в
отдельную папку и подключаем по мере
надобности, то есть в зависимости от ссылок
в командной строке. Команда инклюд,
подключает файлы как - будто они и были
прописаны в основном скрипте, поэтому, если
во вставляемых файлах вы будете обращаться
к базам данных, либо к html файлам, то отсчет
надо будет вести именно от основного файла,
в нашем случае all.php
. Например, есть папка
html
, в ней лежит файл one.htm
, как его
вывести на печать. Тогда файл one.php выглядит
так:
include
"html/one.htm";
print
exit
; ?>
Мы распечатали содержимое one.htm
,
плюс напечатали Это первый отсек программы
,
и остановили программу. То есть, исходя из
теории html, мы должны были бы подключить файл
one.htm
так: include "../html/one.htm"
, так как
папка html
лежит на один уровень выше
файла one.php
. Но, в php - это не так, команда
инклюд просто добавляет код в скрипт и он
становится его неотъемлемой частью, значит
отсчет всех ссылок пойдет относительно
основного файла, а не подключаемых.
New Page
uslovie1
=yes"
>Просто Первая ссылка
uslovie1
=yes&act
=yes"
>
uslovie2
=yes"
>Просто Вторая ссылка
uslovie2
=yes&act
=yes"
>Вторая ссылка,
но и еще act=yes
Тогда php файл one.php
преобразуем в такой:
if
($act
== "yes"){
include
"html/one.htm";
exit
; }
print
"Это первый отсек программы";
exit
; ?>
Если нажали на ссылку uslovie1
=yes"
>Просто Первая ссылка,
напечатается Это первый отсек программы,
если
нажали на ссылку uslovie1
=yes&act
=yes"
>Первая ссылка,
но и еще act=yes, то распечатается
содержимое файла html/one.htm
, и программа
остановится.
403 Кб
Скачайте архив, сделано так, что Php знать необязательно,
надо знать только HTML.
Даа.))
Для меня проще будет сделать копию index.php и переименовать например в contact.php и внем изменить middle на middle2 с новым содержанием.
Чайник я немного в php
Я так и не понял.
У меня есть сайт.
index файл в корне. В другой папке файлы top middle buttom например.
Есть менюшка. Вот хочу, чтобы при нажатии на пункт меню показывался другой middle.
Как такое сделать, и куда впихнуть???
Ответ:
Ну как куда. Всё очень просто, это примерно сделать скрипт меню menus.html
че-то без массива $_GET
[
"uslovie"]
; у меня ваши примеры не работают
Ответ:
у вас не сервере отключена поддержка глобальных переменных, если так, то можете в начале всех своих скриптов ставить строку
if
(isset
($_GET
)) {
foreach
($_GET
as $key
=>$val
) {
$$key
=$val
; }
}
тогда сможете использовать наши скрипты без использования $_GET
[
"
uslovie"
]
, а просто ставить $uslovie
Довольно занятный ресурс у вас..
Спасибо за инфу.
Ответ:
Вы давно обещали разобрать как создается PHP сайт.Почему не выполнили обещание?Может напишите все-таки статью на эту тему(а если ещё и с MySQL то вообще всё шоколадно будет).
Ответ:
Очень да. Только, там это, вместо too.htm наверное надо two.htm
Не существенно, но чтоб порядок))
Ответ:
Подскажите где можно прочитать и выучит наизусть все операторы и коды PHP например: echo
, include
, else
, if
, print
, foreach
, isset
и т.д., что они означают и для чего служат?
Ответ:
Александр, был месяц в отпуске, плюс сейчас завершаю новую версию всего сайта. Как закончу, сделаю небольшую страницу по этому поводу.
Mobilesfinks, пока я собралась доустанавливать php 4, уже вышла новая версия сайта в php 5. И проблем не стало, все заработало %tashus%
Ответ:
Здравствуйте!
Подскажите, пожалуйста, как сделать, чтобы на каждой странице менялся ЗАГОЛОВОК вверху окна: тоесть "
New Page"
...
Например, если перейти по ссылке "
1"
, то чтобы окно называлось "
Первый раздел. Математика"
- тоесть чтобы HTML-код был
Первый раздел. Математика...
А если по ссылке "
2"
, например, то чтобы окно называлось "
Второй раздел. География"
- тоесть чтобы HTML-код был Второй раздел. География...
Как сделать, чтобы оно изменялось с помощью РНР?
Ответ:
html.html
Надо доустановить PHP4 к Денверу. Все изменения установочный скрипт внесет сам.
Потом в папке где у тебя лежит файл all.php создаёшь
файл с именем "
.htaccess"
и в него вносишь строчку
Страница:
1
Текущая страница:
1
Всего сообщений:
22
Часто возникает вопрос о том, как расположить одну форму на всех страницах вашего Zend приложения. Допустим я хочу расположить форму подписки в файле layout.phtml для того, чтобы она располагалась на каждой странице. Команда layout->content() работает с действиями и контроллерами... Как же реализовать то, что нам нужно?
Одно из решений данной задачи - это создание помощника действия.
Вот и всё. Мы добились той функциональности, которую задумали.
П
ри создании даже персонального сайта, далеко не каждый может предусмотреть все возможные способы его дальнейшего использования. Очень важно подготовить почву для дальнейшего развития сайта. Если в прошлом вы создали сайт и по умолчанию присвоили всем страницам расширение.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 файле:
На мой взгляд самый удачный способ. Это делает HTML-страницы равными PHP-страницам, то есть все функции PHP теперь могут быть использованы на страницах с расширением HTML. Если нет доступа к файлу.htaccess , то можно написать письмо хостинг компании, и вежливо попросить админов прописать в конфигурации Apache (httpd.conf) нужное значение для сайта.
Кстати, если до этого на сайте использовалось SSI следующим образом:
то тогда в новом PHP’шном состоянии этот код нужно заменить на:
include("file.txt"); ?>
Ну вот и всё, думаю какой-нибудь из вышеприведённых способов поможет.
Главная » Разработчику » Использование PHP в страницах с расширением html. Форма в вашем layout PHP в HTML с помощью short_open_tag