PHP中的回声页面标题

时间:2012-12-06 13:58:24

标签: php html tags title

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

此外,如果我尝试单独回显$ 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> " ;
}
?>

3 个答案:

答案 0 :(得分:2)

这是在<head>元素内执行的吗?如果不是,那就需要。

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

还可以尝试将$ title更改为$ myTitle,看看是否已在其他地方设置了$ title。

答案 1 :(得分:1)

您的问题似乎是在已经由页面的非PHP部分生成之后,您尝试更改<title>标记的内容。这种方法在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;
?>

答案 2 :(得分:0)

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

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