PHP-как изменить заголовок страницы после включения заголовка.РНР?

страница.на PHP:

<?php
include("header.php");
$title = "TITLE";
?>

заголовок.на PHP:

<title><?php echo $title; ?></title>

Я хочу, чтобы мой заголовок был установлен после включения файла заголовка. Возможно ли это сделать? Я видел некоторые подобные вещи на PHP-fusion телевизорах:http://docs.php-fusion.it/temi:output_handling

9 ответов


расширение на Dainis Abols ответ, и ваш вопрос по обработке вывода,

рассмотрим следующее:

ваш заголовок.php имеет тег заголовка <title>%TITLE%</title>; "%"важны, так как вряд ли кто-либо набирает %TITLE%, поэтому u может использовать это для str_replace() позже.

затем, вы можете использовать выходной буфер вот так

<?php
    ob_start();
    include("header.php");
    $buffer=ob_get_contents();
    ob_end_clean();

    $buffer=str_replace("%TITLE%","NEW TITLE",$buffer);
    echo $buffer;
?>

и это должно сделать это.

редактировать

Я считаю парень идея!--12--> работает лучше, так как он дает вам значение по умолчанию, если вам это нужно, т. е.:

  • название сейчас <title>Backup Title</title>
  • код:
<?php
    ob_start();
    include("header.php");
    $buffer=ob_get_contents();
    ob_end_clean();

    $title = "page title";
    $buffer = preg_replace('/(<title>)(.*?)(<\/title>)/i', '' . $title . '', $buffer);

    echo $buffer;
?>

что вы можете сделать, так это сохранить вывод в переменной, например:

.в PHP

<?php
   $output = '<html><title>%TITLE%</title><body>';
?>

PS: вам нужно удалить все echos / печатает etc так, что весь возможный выход будет сохранен в $output переменной.

это можно легко сделать, определив $output = ''; в начале файла, а потом найти/заменить echo to $output .=.

а затем заменить %TITLE% что вы нужно:

<?php
    include("header.php");
    $title = "TITLE";

    $output = str_replace('%TITLE%', $title, $output);
    echo $output;
?>

другой способ-использовать javascript в вашем коде вместо:

<title><?php echo $title; ?></title>

положите это туда:

<script type="text/javascript">
    document.title = "<?=$title;?>"
</script>

или jQuery, если вы предпочитаете:

<script type="text/javascript">
    $(document).ready(function() {
        $(this).attr("title", "<?=$title;?>");
    });
</script>

немного расширяясь на we.ответ Мамата, вы могли бы использовать человек вместо простой замены и не требуют %title% в целом. Что-то вроде этого:--6-->

<?php
ob_start();
include("header.php");
$buffer=ob_get_contents();
ob_end_clean();

$title = "page title";
$buffer = preg_replace('/(<title>)(.*?)(<\/title>)/i', '' . $title . '', $buffer);

echo $buffer;
?>

1. Просто добавьте переменную $title перед require function

<?php

$title = "Your title goes here";
require("header.php");

?>

2. Добавьте следующий код в заголовок.в PHP

<title><?php echo $title; ?></title>

вы можете установить с помощью JavaScript

<script language="javascript">
    document.title = "The new title goes here.";
</script>

добавить этот код на верхней странице

<?php
    $title="This is the new page title";
?>

добавьте этот код в файл заголовка шаблона (include)

<title><?php echo $title; ?></title>

Это очень легко. Поместите этот код в заголовок.в PHP

        <? 
$sitename = 'Your Site Name'
$pagetitle;

if(isset($pagetitle)){
 echo "<title>$pagetitle." | ". $sitename</title>";
} 
  else {
echo "<title>$sitename</title>";
}
?>

затем на странице ставим туда:

 <?
    $pagetitle = 'Sign up'
    include "header.php";
    ?>

Итак, если вы находитесь в индексе.php, название-это имя вашего сайта. И, например, если вы находитесь на странице регистрации, заголовок-Sign up / Your Site Name


каждый простой, просто используя функцию, я создал ее .

   <?
function change_meta_tags($title,$description,$keywords){
        // This function made by Jamil Hammash
    $output = ob_get_contents();
    if ( ob_get_length() > 0) { ob_end_clean(); }
    $patterns = array("/<title>(.*?)<\/title>/","<meta name='description' content='(.*)'>","<meta name='keywords' content='(.*)'>");
    $replacements = array("<title>$title</title>","meta name='description' content='$description'","meta name='keywords' content='$keywords'");

    $output = preg_replace($patterns, $replacements,$output);  
    echo $output;
}
?>

прежде всего, вы должны создать функцию.php-файл и поместите эту функцию внутрь, затем сделайте require под метатегами в заголовке.РНР. Для использования данной функции change_meta_tags ("новый заголовок","новое описание", новые ключевые слова); . Не используйте эту функцию в заголовке.на PHP !! только с другими страницами .


использовать jQuery такой:

$("title").html('your title');