WebDesign: заголовочный файл, но с пользовательскими заголовками страниц? - PullRequest
12 голосов
/ 28 апреля 2010

Я использовал заголовки для создания шаблонов для сайтов. Это просто и очень удобно для отладки.

Теперь я сталкиваюсь с проблемой использования заголовка НО с пользовательскими заголовками страниц. Если это мой header.php >

<html>
    <head>
        <title> My Site : ??? </html>
    </head>
<body>


</body>
</html>

мне нужно ??? подлежит замене для каждой страницы.

Возможно ли это? Если так, то как? Спасибо. :)

Ответы [ 8 ]

21 голосов
/ 28 апреля 2010

Не зная больше о вашей схеме включения файлов, самый простой способ будет:

page2.php

<?php
$pageTitle = 'Page 2';
include 'header.php';
?>

<div>My content</div>

<?php include 'footer.php'; ?>

header.php

<html>
    <head>
        <title> My Site : <?php echo $pageTitle ?> </title>
    </head>
<body>

footer.php

</body>
</html>
2 голосов
/ 28 апреля 2010

Ответ webbiedave - отлично, но в конечном итоге вы должны научиться использовать либо приличный язык шаблонов (Smarty, Twig ), либо PHP-фреймворк, который имеет свои собственные шаблоны. Kohana и Codeigniter довольно просты.

1 голос
/ 28 апреля 2010

Если бы я добавил некоторый код перед включением заголовка, это поможет?

<?php
    $currentPage = "Random Page Title";
    include "header.php";
?>

А затем использовать значение в header.php, чтобы вывести заголовок страницы?

0 голосов
/ 11 апреля 2013

Исправлена ​​1 небольшая ошибка в записи header.php в Webbiedave

</html> should be </title>

<html>
    <head>
        <title> My Site : <?php echo $pageTitle ?> </title>
    </head>
<body>
0 голосов
/ 15 августа 2012

Вы также можете использовать что-то вроде этого:

, если вы объедините имена файлов php с заголовками страниц

, вы можете использовать explode или str replace, чтобы сделать его более удобным для замены запятыхили подчеркивания, например.

   <?php
    echo basename($_SERVER['REQUEST_URI']);
    ?>

или

  <?php
    // my_page_title.php
   $var=basename($_SERVER['REQUEST_URI']);
   $pagetitle=str_replace("_"," ",$var);

    // my page title
    ?>       
    <title> My Site : <?php echo $pagetitle; ?> </title>
0 голосов
/ 31 марта 2011

Вы можете вызвать javascript для динамического изменения заголовка страницы, это лучшее решение, если у вас есть главный файл index.php, который вызывает все остальные, включая

0 голосов
/ 04 мая 2010

Да, это определенно поможет. Но вам нужно сделать небольшую настройку.

Прежде всего, убедитесь, что вы подключаетесь к базе данных, если хотите запрашивать / извлекать данные из базы данных. Чтобы это произошло, включите страницу «config.php» в самом начале скрипта, в которой будет присутствовать логика подключения к вашей базе данных.

Затем напишите свой запрос для извлечения данных из этой базы данных и присвойте это значение требуемой переменной для использования ее на странице заголовка.

Наконец, включите страницу "header.php".

Для страницы "config.php": -

Логика подключения к базе данных, например, использование функций «mysql_connect ()» и «mysql_select_db ()».

Для страницы "custom.php": -

<?php
  include "config.php";

  $sql = "SELECT pageTitle FROM db_table WHERE condition = 'something'";
  $sql_exe = mysql_query($sql) or die("Error in Fetching Page Title");
  if( mysql_num_rows($sql_exe) ) {
    $currentPage = mysql_result($sql_exe, 0, 0);
  }
  else {
    $currentPage = "Random Page Title";
  }
  mysql_free_result($sql_exe);

  include "header.php";
?>

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

0 голосов
/ 28 апреля 2010

вы можете запросить в БД заголовок страницы, а затем распечатать его с помощью php:)

Edit:

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

...