使用 php 动态输出页面标题


Dynamically output the page title with php

我正在尝试动态输出页面标题。我正在使用诱导,这个脚本在标头中.php目标是使用 case/switch 语句动态输出标头。这是我的代码:

<?php  $title ;
    switch($_SERVER['PHP_SELF'])  {
        case '/index.php': 
            $title = 'Home'; 
            break;
        case '/about.php': 
            $title = 'About'; 
            break;
        case '/services.php': 
            $title = 'Services'; 
            break;
        case '/portfolio.php': 
            $title = 'Portfolio'; 
            break;
        case '/staff.php': 
            $title = 'Staff'; 
            break;
        case '/contact.php': 
            $title = 'Contact us'; 
            break;
} ?>  <title><?php echo $title ?></title>

我收到一个错误,告诉我我的变量$title没有定义?

我做错了什么?

在你的第一行,你有

<?php  $title ;

这个$title ;不应该存在。

而且,正如Kailash Ahirwar已经提到的,为您的$title提供一个默认值总是一个好主意:

switch($_SERVER['PHP_SELF']) {
    [...]
    default:
        $title = "Default title goes here";
}

尝试在switch之前定义$title

$title = "";

在 $_SERVER 全局数组中,$_SERVER[PHP_SELF] 包含文件的完整路径,例如

/project_name/index.php 或/project_name/about.php 或/project_name/services.php

这里project_name是项目的名称。

取代

 case '/index.php'
 case '/about.php'
 case '/services.php'
 ....

 case '/project_name/index.php'
 case '/project_name/about.php'
 case '/project_name/services.php'
 .....

并在 PHP 文件的开头初始化$title。

 <?php $title = ""; 
 switch ($_SERVER['PHP_SELF']) {
   case '/project_name/index.php':
     $title = 'Home'; 
     break;
  case '/project_name/about.php':
     $title = 'About';
     break;
  case '/project_name/services.php':
     $title = 'Services';
     break;
  case '/project_name/portfolio.php':
    $title = 'Portfolio';
    break;
 case '/project_name/staff.php':
    $title = 'Staff';
    break;
 case '/project_name/contact.php':
    $title = 'Contact us';
    break; 
 }
?>

用于测试目的

print_r($_SERVER);

并检查价值 _SERVER(PHP_SELF) 美元。

代码看起来基本不错,尽管您缺少一个"默认"块来捕获任何未被任何"case"语句捕获的内容。

虽然是PHP的初学者,但我自己解决了这个问题,它非常简单和合乎逻辑,将标题视为字符串,它最初是空的,写在顶部$title = ";当在包含后在主页中包含标题时,写下标题的值(重新分配变量的值)