page.php:
<?php include("header.php"); $title = "TITLE"; ?>
header.php:
<title><?php echo $title; ?></title>
Я хочу, чтобы мой заголовок был установлен ПОСЛЕ, включая заголовочный файл. Можно ли сделать это? Я видел некоторые похожие вещи на php-fusion tvs: http://docs.php-fusion.it/temi:output_handling
расширяя ответ Dainis Abols, и ваш вопрос по обработке вывода,
рассмотрите следующее:
ваш заголовок.php имеет тег заголовка, установленный в <title>%TITLE%</title>
; «%» важны, так как вряд ли кто-либо набирает% TITLE%, поэтому вы можете использовать это для str_replace () позже.
то вы можете использовать выходной буфер так,
<?php ob_start(); include("header.php"); $buffer=ob_get_contents(); ob_end_clean(); $buffer=str_replace("%TITLE%","NEW TITLE",$buffer); echo $buffer; ?>
в<?php ob_start(); include("header.php"); $buffer=ob_get_contents(); ob_end_clean(); $buffer=str_replace("%TITLE%","NEW TITLE",$buffer); echo $buffer; ?>
и это должно сделать это.
РЕДАКТИРОВАТЬ
Я считаю, что идея Гая работает лучше, поскольку она дает вам по умолчанию, если вам это нужно, IE:
<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', '$1' . $title . '$3', $buffer); echo $buffer; ?>
в<?php ob_start(); include("header.php"); $buffer=ob_get_contents(); ob_end_clean(); $title = "page title"; $buffer = preg_replace('/(<title>)(.*?)(<\/title>)/i', '$1' . $title . '$3', $buffer); echo $buffer; ?>
Что вы можете сделать, вы сохраняете вывод в переменной, например:
header.php
<?php $output = '<html><title>%TITLE%</title><body>'; ?>
PS: вам нужно удалить все эхо / отпечатки и т. Д., Чтобы весь возможный вывод хранился в переменной $output
.
Это можно сделать легко, определив $output = '';
в начале файла, а затем найти / заменить echo
на $output .=
.
А затем замените %TITLE%
на то, что вам нужно:
<?php include("header.php"); $title = "TITLE"; $output = str_replace('%TITLE%', $title, $output); echo $output; ?>
в<?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.mamat, вы можете использовать preg_replace вместо простой замены и удалить необходимость % title% в целом. Что-то вроде этого:
<?php ob_start(); include("header.php"); $buffer=ob_get_contents(); ob_end_clean(); $title = "page title"; $buffer = preg_replace('/(<title>)(.*?)(<\/title>)/i', '$1' . $title . '$3', $buffer); echo $buffer; ?>
в<?php ob_start(); include("header.php"); $buffer=ob_get_contents(); ob_end_clean(); $title = "page title"; $buffer = preg_replace('/(<title>)(.*?)(<\/title>)/i', '$1' . $title . '$3', $buffer); echo $buffer; ?>
вы можете установить с помощью JavaScript
<script language="javascript"> document.title = "The new title goes here."; </script>
Добавьте этот код вверху своей страницы
<?php $title="This is the new page title"; ?>
Добавьте этот код в свой заголовочный файл шаблона (включите)
<title><?php echo $title; ?></title>
Это очень легко. Поместите этот код в header.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"; ?>
Поэтому, если вы находитесь на Index.php, заголовок – это имя вашего сайта. И, например, если вы находитесь на странице регистрации, заголовок зарегистрирован | Имя вашего сайта
Каждый простой, просто используя функцию, я создал ее.
<? 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; } ?>
Прежде всего, вы должны создать файл function.php и поместить эту функцию внутрь, а затем выполнить запрос в MetaTags в Header.php. Чтобы использовать эту функцию change_meta_tags («NEW TITLE», «NEW DESCRIPTION», NEW KEYWORDS); , Не используйте эту функцию в Header.php! просто с другими страницами.
1. Просто добавьте переменную $ title перед требованием функции
<?php $title = "Your title goes here"; require("header.php"); ?>
2. Добавьте следующий код в header.php
<title><?php echo $title; ?></title>
Используйте функцию jQuery следующим образом:
$("title").html('your title');