用php动态输出页面标题

时间:2013-09-18 20:22:18

标签: php html

我正在尝试动态输出页面标题。我正在使用induces,这个脚本正在使用header.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没有定义?

我做错了什么?

4 个答案:

答案 0 :(得分:4)

在第一行中,您有

<?php  $title ;

$title ;不应存在。

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

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

答案 1 :(得分:1)

尝试在$title之前定义switch

$title = "";

答案 2 :(得分:1)

在$ _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)值。

答案 3 :(得分:0)

代码看起来基本上很好,尽管你缺少一个“默认”块来捕获任何未被任何“case”语句捕获的内容。