【问题标题】:PHP echo include variable in <head><title>PHP echo 在 <head><title> 中包含变量
【发布时间】:2018-04-22 03:24:02
【问题描述】:

我正在建立一个小型个人网站。为了使事情保持小规模并避免一遍又一遍地写东西,我有一个header.php 文件,每个子目录index.php 文件include 的。所以,每个index.php 文件都有这些行:

$title = someTitleVariableOrMethod;
include('/var/testsite/docroot/header.php');

在我的 header.php 文件中,我有这些行(我知道我可能会改进格式,但首先我想让标题正常工作)。

<html>
<head>
 <?php
   if (isset($title)) {
    echo '<title>' . $title . '</title>';
   } else {
    echo '<title>Sampletext</title>';
   }
 ?>
  <style>
    //a bunch of irrelevant css
  </style>
</head>
<body>
//this is the end of the header file, the rest is dealt with in the index.php file

但由于某种原因,标题的内容和我所有的 CSS 都显示在 &lt;body&gt; 的开头(我在浏览器中按 F12 时看到了这一点),而在 &lt;head&gt; 中根本没有显示任何内容。我只想将标题内容放在标题标签中。我该如何解决这个问题?

提前致谢。

【问题讨论】:

    标签: php html include


    【解决方案1】:

    确保您正在从网络服务器访问页面(例如,XAMPP - 然后通过 http://localhost/site/index.php 访问)。如果您尝试直接从文件系统打开它们,PHP 将按照您的描述简单地显示。还要确保 index.php 有结束的 body 和 html 标签。

    【讨论】:

    • 我将它们托管在我的网络服务器上并通过 VPN 访问它们,因此它尚未面向公众。我的索引确实有结束正文和 html 标签
    • 直接访问header.php会发生什么?它应该在标题栏中显示“Sampletext”。如果不是,则表明服务器不支持 PHP。 (您可以创建一个“test.php”并在其中简单地包含:&lt;?php echo phpinfo(); ?&gt; 然后访问它以验证 PHP 是否正常工作及其信息。
    • 想通了!我只是傻了:我使用passthru 来获取标题变量的内容,同时也会打印到屏幕上。
    【解决方案2】:

    抱歉,我找到了问题!我使用passthru 来获取变量的内容,但我没有意识到它会打印到屏幕上。我的错!

    编辑:该网站说我两天不能接受这个答案,但这是接受的

    【讨论】:

    • 您也可以删除问题。您发布的解决方案与问题中的任何代码都无关,因此很难想象其他人会发现您的问题有帮助。如果您不发布所有代码,其他人可能无法帮助解决您的问题,这也是一种常见的情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    相关资源
    最近更新 更多