Вернуться   HitForum - Форумы Мариупольской Городской Сети > HiTech > Web-разработка

Web-разработка веб-дизайн и программирование, обсуждения сайтов

Ответ
 
Опции темы
Старый 29.11.2006, 22:11   #1
Местный житель
 
Аватар для Adrian
 
Мужчина
Регистрация: 10.12.2005
Адрес: 193.43.254.128/25
Сообщений: 191
Вес репутации: 13 Adrian стоит на развилке

Отправить сообщение для Adrian с помощью ICQ
По умолчанию PHP & экономия труда

Как сделать, чтобы PHP-файлы при формировании страницы брали верхушку из одного файла (от <html... заканчивая <body>), тело формировал сам PHP-файл, и опять же конец брал из еще одного файла (счетчики, ля-ля тополя (реклама типа)</body></html>) ?
Увидел реализацию в phpBB2-форуме, где шапка/концовка/etc. находятся в .tpl-файлах.
Гораздо экономнее написать один файл, и чтобы 20 .php-файлов черпали из него верхушку/концовку, и чтобы изменить например логотип, ненадо ковырять 20 файлов, а изменить один-единственный.
Adrian вне форума   Ответить с цитированием
Старый 30.11.2006, 09:24   #2
Звезда
 
Аватар для stormdog
 
Мужчина
Регистрация: 28.05.2005
Адрес: Мариуполь
Сообщений: 5,607
Вес репутации: 106 stormdog супергеройstormdog супергеройstormdog супергеройstormdog супергеройstormdog супергеройstormdog супергеройstormdog супергеройstormdog супергеройstormdog супергеройstormdog супергеройstormdog супергерой


По умолчанию

index.php

PHP код:
<html>
  <head>
     <title>...</title>
     <meta...>
   </head>
<body>
   <? include("шапка.tpl")?>
...
...
...
   <? include("концовка.tpl")?>
</body>
</html>
__________________

[Только зарегистрированные пользователи могут видеть ссылки. Регистрация!]
[Только зарегистрированные пользователи могут видеть ссылки. Регистрация!]
stormdog вне форума   Ответить с цитированием
Старый 30.11.2006, 09:47   #3
Местный житель
 
Аватар для master_vitek
 
Регистрация: 31.01.2006
Сообщений: 151
Вес репутации: 0 master_vitek нейтрален(-на)

Отправить сообщение для master_vitek с помощью ICQ
По умолчанию

Инструкция require. Эта инструкция позволяет разбить исходный текст на несколько файлов. Ее формат такой:

require имя_файла;

(этот файл может содержать сценарий на PHP)
Использование этой инструкции довольно удобно для включения в сценарии всяких "шапок".

Что оптимальнее require или include? Если файл нужно присоединить ровно один раз и в точно определенное место, лучше воспользоваться require.
__________________
Бойся того, кто однажды быв укушен, захочет укусить и тебя

Последний раз редактировалось XpaniteL; 30.11.2006 в 15:39.
master_vitek вне форума   Ответить с цитированием
Старый 30.11.2006, 15:35   #4
Бывалый
 
Аватар для XpaniteL
 
Регистрация: 28.11.2004
Сообщений: 311
Вес репутации: 14 XpaniteL скоро станет знаменитым(-ой)


По умолчанию

а можно хранить и в переменных
template.php
PHP код:
$header '<img src="logo.gif">';
$footer ''// низ 
index.php
PHP код:
echo $header;
...
echo 
$footer
XpaniteL вне форума   Ответить с цитированием
Старый 30.11.2006, 16:46   #5
Гуру
 
Аватар для Wandering Star
 
Мужчина
Регистрация: 05.05.2004
Адрес: Киев
Сообщений: 2,938
Вес репутации: 97 Wandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергерой


По умолчанию

Цитата:
Сообщение от master_vitek
Что оптимальнее require или include? Если файл нужно присоединить ровно один раз и в точно определенное место, лучше воспользоваться require.
читайте мануал, перед тем, как учить людей ... require отличается от include тем, что требует(!) наличия подключаемого файла, include же глубоко фиолетово, и даже если файл не существует - отработка скрипта не завершится ...
Что же касается подключения только(!) один раз, то для этого используются обе функции с постфиксом _once (т.е. "однажды"). require_once и include_once соответственно с сохранением всех остальных свойств присущих функциям-оригиналам ....
Wandering Star вне форума   Ответить с цитированием
Старый 01.12.2006, 08:50   #6
Местный житель
 
Аватар для master_vitek
 
Регистрация: 31.01.2006
Сообщений: 151
Вес репутации: 0 master_vitek нейтрален(-на)

Отправить сообщение для master_vitek с помощью ICQ
По умолчанию

Цитата:
Сообщение от SDog
что требует(!) наличия подключаемого файла
понятно, что требует...

а насчет require_once и include_once полностью согласен...
__________________
Бойся того, кто однажды быв укушен, захочет укусить и тебя
master_vitek вне форума   Ответить с цитированием
Старый 01.12.2006, 09:04   #7
Гуру
 
Аватар для Wandering Star
 
Мужчина
Регистрация: 05.05.2004
Адрес: Киев
Сообщений: 2,938
Вес репутации: 97 Wandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергерой


По умолчанию

Цитата:
Сообщение от master_vitek
понятно, что требует...
это мне понятно, но из этого:
Цитата:
Сообщение от master_vitek
Если файл нужно присоединить ровно один раз и в точно определенное место, лучше воспользоваться require.
такой вывод абсолютно не следует ...
Если открыть документацию к php, то там русским языком сказано:
Цитата:
require() and include() are identical in every way except how they handle failure. include() produces a Warning while require() results in a Fatal Error. In other words, don't hesitate to use require() if you want a missing file to halt processing of the page. include() does not behave this way, the script will continue regardless.
Вы задали вопрос
Цитата:
Сообщение от master_vitek
Что оптимальнее require или include?
и сами же на него не ответили ...
Wandering Star вне форума   Ответить с цитированием
Старый 01.12.2006, 09:22   #8
Местный житель
 
Аватар для master_vitek
 
Регистрация: 31.01.2006
Сообщений: 151
Вес репутации: 0 master_vitek нейтрален(-на)

Отправить сообщение для master_vitek с помощью ICQ
По умолчанию

Цитата:
Сообщение от SDog
и сами же на него не ответили ...
Как мы знаем, перед исполнением РНР транслирует программу во внутрен
нее представление. Это означает, что в памяти создается как бы "полу-
фабрикат", из которого исключены все комментарии, лишние пробелы, некоторые имена переменных и т. д. Впоследствии это внутреннее представление интерпретируется (выполняется). Однако мы знаем также, что в программе могут встретиться такие места, "подводные камни" для интерпретатора, которые РНР не сможет оттранслировать заранее. В этом случае он их пропускает, "откладывает на потом", чтобы в момент, когда управление дойдет до определенной точки, опять запустить транслятор.
Одним из таких "камней" как раз и является инструкция include. Как только управление программы доходит до нее, РНР вынужден приостановиться и ждать, пока транслятор не оттранслирует код включаемого файла. А это достаточно отрицательно сказывается на быстродействии программы, особенно большой.
__________________
Бойся того, кто однажды быв укушен, захочет укусить и тебя
master_vitek вне форума   Ответить с цитированием
Старый 01.12.2006, 21:29   #9
Гуру
 
Аватар для Wandering Star
 
Мужчина
Регистрация: 05.05.2004
Адрес: Киев
Сообщений: 2,938
Вес репутации: 97 Wandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергеройWandering Star супергерой


По умолчанию

Цитата:
Сообщение от master_vitek
РНР вынужден приостановиться и ждать, пока транслятор не оттранслирует код включаемого файла.
вы читать умеете? или вам англо-русский словарик подарить? эти функции по описанному вами критерию АБСОЛЮТНО идентичны ... так что когда речь заходит о быстродействии, то глубоко все равно что использовать.
Однако специально для тех, кто знает что такое интерпретатор, я могу копнуть глубже. Вплоть до версии 4.0.2 в PHP код файла указанного в инструкции require подключался вне зависимости от того будет ли он вызываться в программе (может быть спрятан в условной конструкции). Так что мы приходим к выводу, что для старых версий языка предпочтительно использование include ...
Wandering Star вне форума   Ответить с цитированием
Старый 02.12.2006, 15:42   #10
Бывалый
 
Аватар для XpaniteL
 
Регистрация: 28.11.2004
Сообщений: 311
Вес репутации: 14 XpaniteL скоро станет знаменитым(-ой)


По умолчанию

master_vitek, SDog вы отошли от темы.
XpaniteL вне форума   Ответить с цитированием
Ответ

  HitForum - Форумы Мариупольской Городской Сети > HiTech > Web-разработка


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

© 2003 - HitLine.
Часовой пояс GMT +3, время: 15:18.