【问题标题】:Echo Page Title in PHPPHP中的回显页面标题
【发布时间】:2012-12-06 13:58:23
【问题描述】:

下面的脚本很好地回显了数组及其各个元素,但是当数组元素用于通过在开头的 head 标记之后运行脚本来设置页面标题时,我仍然得到“无标题文档”作为页面标题。

此外,如果我尝试单独回显 $title 并将标题标签 放在 php 标签之前和之后,标题将设置为文档类型定义..

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

如果尚未设置,echo 似乎设置了之前所需的相关 HTML 标记。有什么办法??

<?php
include 'contentStream.php' ;
$upc = $_GET['upc'];
if (isset($upc))
{
global $upc ;
$query = "SELECT * FROM tracks WHERE album_upc='$upc'";
connect();
$db = mysql_select_db("XXXXX");
$results = mysql_query($query, $connection) ;
$result = mysql_fetch_assoc($results);
$title = $result['title']." by ".$result['author'] ;
echo "<title>".$title."</title>";
unset($results);
unset($query);
mysql_close($connection) ;
}
else
{
    echo "<title> MYsUPERsITe </title> " ;
}
?>

【问题讨论】:

  • 您确定将其放在 HTML 中的 &lt;head&gt; 标记中吗?
  • / / 所以你有一些 $title var */ ?> <?php echo $title; ?>
  • 您使用的是an obsolete database API,应该使用modern replacement。您还容易受到SQL injection attacks的影响,现代 API 可以让您更轻松地从 defend 中获得。
  • 完全意识到昆汀,我刚刚开始,我有很多概念要学习和实践,要让它们触手可及,我只是暂时没有时间重新学习我已经可以影响的事情。

标签: php html tags title


【解决方案1】:

这是在&lt;head&gt; 元素中执行的吗?如果不是,则需要。

我不确定 contentstream.php 是什么,但看起来您可能在页面中的错误位置运行它。

还可以尝试将 $title 更改为 $myTitle 以查看 $title 是否已设置在其他位置。

【讨论】:

  • 我忘了说... contentstream.php 包含的只是一个函数列表... 它包含connect() 函数,以及许多其他与这里无关的函数... 它剂量'不输出任何东西......我会尝试不包括它并在一秒钟内返回。
  • 非常感谢 cowls,我小心翼翼地删除了 contentStream.php 中的开始 HTML、HEAD、TITLE 和 BODY 标签,但每个标签的关闭标签仍然保留...
【解决方案2】:

您的问题似乎是您试图更改&lt;title&gt; 标签的内容它已经由您的页面的非 PHP 部分生成。这种方法在 PHP 这样的服务器端环境中不起作用。

一种解决方案是使用 PHP 生成整个 HTML 页面,将其存储在一个变量中,然后在完成所有操作后将其输出为 echo()

在您的页面顶部,我将运行并解析一个数据库查询并构建一个$html 字符串以便稍后回显。像上面这样的多个 echo() 语句可能会变得丑陋,并且可能会给您带来标题问题,如果您后来最终将 cookie 或会话变量添加到您的站点:

<?php
    include ("my_cool_lib.php");
    $html = "<!DOCTYPE html>";
    $html .= "<html><head>";
    $db = connect_to_db();
    $resultset = run_a_query($db);
    $title = get_title($resultset);
    $html .= "<title>$title</title>";
    $html .= "</head><body>";
    $html .= "<h1>Results</h1>";
    // loop through $resultset 
    // $html .= track info
    // end loop
    $html .= "</body></html>";
    echo $html;
?>

【讨论】:

  • 非常感谢您的参与。我一开始就不应该在这里问这个问题,我应该更加小心......我注意到你宝贵的家政建议
【解决方案3】:

您需要设置当前缺少的相关 HTML 标记。

<html> <head> <title>Your title</title> </head> <body> body stuff </body> </html>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多