Использование лучше включает для страниц? - PullRequest
1 голос
/ 10 декабря 2011

На данный момент я использую включения, чтобы получить заголовок, нижний колонтитул и некоторый контент для других страниц.

Это приводит к большему количеству включений, чем я действительно хочу, потому что мне нужно добавить большесодержимое для включений.

Например:

<!DOCTYPE html>
<?php include('header.php'); ?>
<body>

<?php include('body-top.php');
   custom html
</?php include('footer.php');
</body>

Было бы неплохо, если бы я мог добавить переменные к включениям и на страницах, которые я хочу, чтобы отображались включения.

Я совсем не разбираюсь в PHP, так есть ли лучший способ использовать Включения?

Ответы [ 4 ]

1 голос
/ 10 декабря 2011

Это легко сделать:

index.php

$title = 'Hello World!';
include 'content.php';

content.php

<!DOCTYPE html>
<html>
<head> 
<title><?php echo $title; ?></title>
</head>
<body></body>
</html>

Проблема с этим подходом в том, что вы скоро столкнетесь с проблемами отслеживания того, что и где, поэтому использование функций, предложенных в других ответах, может быть хорошей идеей.Однако для небольших проектов это ИМХО достаточно хорошо.

1 голос
/ 10 декабря 2011

Количество ваших включений уже очень мало, их не нужно оптимизировать.

Также не обращайте внимания на людей, предлагающих Smarty или MVC, потому что это значительно увеличит количество включений (в обмен на другие преимущества,конечно) -

1 голос
/ 10 декабря 2011

звучит как работа для Smarty

Это выглядит так

<?php
require 'Smarty/libs/Smarty.class.php';

$smarty = new Smarty;

$smarty->assign('title','Hello World');
$smarty->assign('hello','Hello World, this is my first Smarty!');
$smarty->display('test.tpl');
?>

test.tpl

<html>
  <head>
    <title>{$title}</title>
  </head>
  <body>
    {$hello}
  </body>
</html>

Или, что еще лучше, используйте некоторые фреймворки PHP MVC, которые дадут вам еще больше полезного (не только система шаблонов)

0 голосов
/ 10 декабря 2011

Вы можете превратить ваши включенные файлы в функции.В PHP есть хитрый трюк, когда что-либо между фигурными скобками (например, { и }) выполняется только тогда, когда эта часть кода достигнута.Сюда входит HTML-код вне ваших тегов PHP.

Это может быть наш файл 'header.php', где мы упаковываем наш текущий код в функцию.

<?php function doHeader($title) {  ?>
<html>
<head> 
<title><?php echo $title; ?></title>
</head>
<?php  }  ?>

Затем мы делаемтестер для этого.Все, что наш тестер / вызывающий абонент выберет, чтобы передать, как $title обнаруживается в нашем выводе.

<?php 
// All included here
include_once('header.php');
?><!DOCTYPE html>
<?php doHeader('My page title'); ?>
<body></body>
</html>

Это производит вывод,

<!DOCTYPE html>
<html>
<head> 
<title>My page title</title>
</head>
<body></body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...