PHP中的动态标题标记

时间:2010-11-28 18:27:38

标签: php dynamic title

我正在尝试动态填充网站上的标题标记。我在index.php页面中有以下代码

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

以下是我的标题页

<title><?php if (isset($title)) {echo $title;}
else {echo "My Website";} ?></title>

但无论我做什么,我都无法使用此代码。有没有人有什么建议?

感谢

10 个答案:

答案 0 :(得分:9)

这可行(测试它 - 创建一个新文件夹,将第一行代码放在名为index.php的文件中,第二行放在header.php中,运行它,检查标题栏)。

你应该仔细检查这两个文件是否在同一个文件夹中,并且你要包含正确的header.php 来自正确的index.php。并确保$ title未在代码中的某个位置设置回null

详细了解可变范围here

编辑:可见更改的示例如下:

TEST1<?php $title = 'myTitle'; include("header.php"); ?>

<title>TEST2<?php if ...

答案 1 :(得分:3)

您是否在设置title变量之前或之后包含头文件?如果您之前包含它,那么它当然不会被设置。

如果你在index.php中做了类似的事情:

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

然后它将无效 - 您包含头文件并在设置$ title变量之前输出标题文本。

答案 2 :(得分:1)

尝试在使用之前声明变量

$title = '123';
require 'includes/header.php';

答案 3 :(得分:0)

您的代码似乎很好。你确定php实际上正在解析你的页面吗?您是否收到任何错误,警告或通知?

答案 4 :(得分:0)

您的代码似乎运行正常。是否可以在包含标题后设置标题变量?此外,其他PHP脚本是否在该站点上正常工作?

答案 5 :(得分:0)

嗨,试试这个老派的方法..

在你的Header文件中(例如header.php)

<?php 
error_reporting(E_ALL);

echo '<!DOCTYPE html>
<!--[if IE 7 ]><html class="ie7" lang="en"><![endif]-->
<!--[if IE 8 ]><html class="ie8" lang="en"><![endif]-->
<!--[if IE 9 ]><html class="ie9" lang="en"><![endif]-->
<!--[if (gte IE 10)|!(IE)]><!-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<!--<![endif]-->
<head>'; 
?>
<?php  
if($GLOBALS['title']) {
    $title = $GLOBALS['title'];
} else {
    $GLOBALS['title'] = "Welcome to My Website";        
}
if($GLOBALS['desc']) {  
    $desc = $GLOBALS['desc'];
} else {
    $desc = "This is a default description of my website";      
}
if($GLOBALS['keywords']) {
    $keywords = $GLOBALS['keywords'];   
} else {
    $keywords = "my, site, key, words";     
}
echo "\r\n";
echo "<title> ". $title ." | MyWebsite.com </title>";
echo "\r\n";
echo "<meta name=\"description\" content='". $GLOBALS['title']."'>";
echo "\r\n";
echo "<meta name=\"keywords\" content='".$GLOBALS['title']."'>";
echo "\r\n";
?>

在你的PHP页面文件中这样做(例如about.php)

<?php

$GLOBALS['title'] = 'About MyWebsite -This is a Full SEO Title';
$GLOBALS['desc'] = 'This is a description';
$GLOBALS['keywords'] ='keyword, keywords, keys';

include("header.php");


?>

答案 6 :(得分:0)

我假设您的标头存储在不同的文件中(可能位于根目录之外),因此上述所有解决方案都不适用于您,因为$title在定义之前已设置。

这是我的解决方案: 在header.php文件中,您需要将$title设置为全局:global $title;然后在标题中回显:{/ p>

<?php global $title; ?>
<title><?php echo isset($title) ? $title : "{YOUR SITE NAME}"; ?></title>

然后在每个页面中,您现在可以在包含头文件后定义标题,例如在index.php文件中:

include_once("header.php");
$title = "Your title for better SEO"

经过测试,它正在运行。

答案 7 :(得分:0)

我们还可以使用函数及其在实时网站上工作的好方法。

简单:

创建一个index.php文件并粘贴这些行:

<?php include("title.php");?>
<!doctype html>
<html>
<head>
    <title><?php index_Title(); ?></title>
<head>
</html>

- 然后

创建title.php文件并粘贴以下行:

<?php
function index_Title(){
$title = '.:: itsmeShubham ::.';
if (isset($title)){
    echo $title;
    }else{
        echo "My Website";
    };
}
?>

它可以完美地工作,我们也可以通过只触摸一个title.php文件来更新任何标题。

答案 8 :(得分:0)

<?php
    echo basename(pathinfo($_SERVER['PHP_SELF'])['basename'],".php");
?>

这有效。由于我使用的是PHP,因此我不检查其他扩展名。如果需要,请使用pathinfo['extension']

答案 9 :(得分:0)

您可以使用mSpinner.setOnTouchListener((view, motionEvent) -> { getWindow().setFlags(FLAG_LAYOUT_NO_LIMITS, FLAG_LAYOUT_NO_LIMITS); return false; }); 函数来实现。
在您的define();文件中,添加以下行:

header.php

在要设置动态标题的页面上,添加以下行:
EX:我的页面名称是<title><?php echo TITLE; ?></title> ,我要在其中设置动态标题 所以我将在页面上添加这些行。

user-profile.php

因此我的<?php define('TITLE','User Profile'); //variable which is used in header.php include('header.php'); include('dbConnection.php'); ?> 文件将具有标题:用户个人资料
这样,您可以在网站的任何页面上添加标题