简答版:你不能。如果您这样做,您将收到“未定义变量”通知。
我发现拥有一个包含在索引、家庭、联系人或任何其他文件中的header.php(和一个footer.php)通常更方便。优点是没有多余的代码,如果需要修改页眉或页脚,只需要修改一个文件即可。
例如,'about_us.php' 看起来像:
<?php
include('path/to/header.php');
#body goes here
include('path/to/footer.php');
?>
你的标题会是这样的:
<?php
$title = ucfirst(str_replace('_', ' ', substr(basename($_SERVER['PHP_SELF']), 0, -4));
?>
<html>
<head>
<title><?php echo $title; ?> page</title>
<meta name="description" content="this is the home page" />
<meta name="keywords" content="home, awesome, yes" />
</head>
<body>
$title 变量将是文件名,减去扩展名,所有下划线替换为空格,第一个单词的首字母大写。所以基本上about_us.php会被转换成“关于我们”。这不一定是一个通用的解决方案,但我将其作为示例,请记住您希望在原始示例中使用动态标题。对于动态描述和关键字,您还可以根据文件名在switch() 语句的帮助下分配不同的值。
更新:
另一种解决方案,虽然有点与您的要求相反,但同时更接近您正在寻找的内容,那就是编写 header.php 之类的
<html>
<head>
<title><?php echo $title; ?> page</title>
<meta name="description" content="<?php echo $desc; ?>" />
<meta name="keywords" content="<?php echo $keywords; ?>" />
</head>
<body>
...页脚...
</body>
</html>
...然后将它们包含在您的其他文件中:
<?php
$title = 'Your title';
$desc = 'Your description';
$keywords = 'The, big, brown, fox, jumps, over, the, lazy, dog';
include('path/to/header.php');
?>
<!-- body goes here -->
<?php
include('path/to/footer.php');
?>
这样,您在包含引用它们的文件之前分配所有变量,所有链接都有不同的文件,并且不需要花哨的开关。另外作为旁注,在 PHP 中包装正文的 HTML 是一种不好的做法。一般来说,尽量保持 HTML 与 PHP 分离。它将帮助您以及将来要编写代码的任何人。
希望这会有所帮助!