16

page.php:

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

header.php:

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

ヘッダーファイルをインクルードしたにタイトルを設定したい。これを行うことは可能ですか?

4

9 に答える 9

42

Dainis Abolsの回答、および出力処理に関する質問を拡張して、

次のことを考慮してください。

header.phpのtitleタグは<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;
?>

そしてそれはそれをするべきです。

編集

ガイのアイデアは、必要に応じてデフォルトを提供するので、うまく機能すると思います。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;
?>
于 2012-10-22T10:35:14.563 に答える
15

1.require関数の前に$title変数を追加するだけです

<?php

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

?>

2.次のコードをheader.phpに追加します

<title><?php echo $title; ?></title>
于 2017-06-01T15:49:32.563 に答える
10

できることは、出力を次のような変数に格納することです。

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;
?>

別の方法は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>
于 2012-10-22T10:18:09.543 に答える
7

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;
?>
于 2015-09-10T18:13:47.957 に答える
4

JavaScriptを使用して設定できます

<script language="javascript">
    document.title = "The new title goes here.";
</script>
于 2012-10-22T10:18:06.670 に答える
3

このコードをページの上に追加します

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

テンプレートヘッダーファイルにこのコードを追加します(インクルード)

<title><?php echo $title; ?></title>
于 2013-11-11T08:38:46.657 に答える
1

それは超簡単。このコードを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を使用している場合、タイトルはサイト名です。たとえば、サインアップページを表示している場合、タイトルは「サインアップ|」です。あなたのサイト名

于 2016-06-24T00:06:22.303 に答える
1

関数を使用するだけのすべてのSimple、私はそれを作成しました。

   <?
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"、 "NEWDESCRIPTION"、NEW KEYWORDS); 。この関数をHeader.phpで使用しないでください!! 別のページだけで。

于 2017-05-27T22:07:40.687 に答える
0

次のようなjQuery関数を使用します。

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

于 2016-10-18T06:26:33.267 に答える