page.php:
<?php
include("header.php");
$title = "TITLE";
?>
header.php:
<title><?php echo $title; ?></title>
ヘッダーファイルを含めてタイトルを設定したいです。これを行うことは可能ですか?私はphp-fusionテレビで似たようなものを見てきました: http://docs.php-fusion.it/temi:output_handling
dainis Abolsの回答、および出力処理に関する質問を拡大し、
以下を考慮してください。
header.phpのタイトルタグは<title>%TITLE%</title>
に設定されています。 「%」は重要です。%TITLE%を入力する人はほとんどいないため、後でstr_replace()に使用できます。
次に、 output buffer を使用できます
<?php
ob_start();
include("header.php");
$buffer=ob_get_contents();
ob_end_clean();
$buffer=str_replace("%TITLE%","NEW TITLE",$buffer);
echo $buffer;
?>
そしてそれはそれを行う必要があります。
[〜#〜] edit [〜#〜]
Guyのアイデア は、必要に応じてデフォルトを提供するので、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;
?>
1。require関数の前に単に$ title変数を追加
<?php
$title = "Your title goes here";
require("header.php");
?>
2。次のコードをheader.phpに追加します
<title><?php echo $title; ?></title>
できることは、次のような変数に出力を保存することです。
header.php
<?php
$output = '<html><title>%TITLE%</title><body>';
?>
PS:all echos/printsなどを削除して、すべての可能な出力が$output
変数に保存されるようにする必要があります。
これは、ファイルの先頭で$output = '';
を定義してから、find/replaceecho
を$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.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
$title="This is the new page title";
?>
このコードをテンプレートヘッダーファイルに追加(インクルード)
<title><?php echo $title; ?></title>
javaScriptを使用して設定できます
<script language="javascript">
document.title = "The new title goes here.";
</script>
それは非常に簡単です。このコードを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ファイルを作成し、この関数を内部に配置してから、Header.phpのMetaTagsの下にrequireを作成する必要があります。この関数を使用するにはchange_meta_tags( "NEW TITLE"、 "NEW DESCRIPTION"、NEW KEYWORDS); 。 Header.phpでこの関数を使用しないでください!!別のページだけで。
次のようなjQuery関数を使用します。
$("title").html('your title');