0

下面的脚本很好地回显了数组及其各个元素,但是当数组元素用于通过在开始的 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> " ;
}
?>
4

3 回答 3

2

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

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

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

于 2012-12-06T14:02:59.590 回答
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;
?>
于 2012-12-06T14:18:45.867 回答
0

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

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

于 2012-12-06T14:03:07.227 回答