为什么PHP在我的HTML末尾添加<pre>标签?

3

我 = 超级初学者

我的活动 = 测试在Azure上托管的php和mysql数据库之间的通信。(第一次)

我的问题 = $title

期望的HTML输出: 网页截图显示我正在寻找的内容

当前的HTML输出: 网页截图显示我得到的内容

我的代码:

<!DOCTYPE html>
<html>
<head>
    <title>test connection</title>
</head>
<body>

<?php



$serverName = "lunch.database.windows.net"; 
$connectionInfo = array( "Database"=>"LunchProgramBE", "UID"=>"lunch", 
"PWD"=>"*****");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

$sql = "Select * from Meals";
$query = sqlsrv_query($conn, $sql);

if( $query === false) {
  die( print_r( sqlsrv_errors(), true) );
}

while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_NUMERIC)){

echo $row[0] . ", " . $row[1] . "<br>";

}



sqlsrv_free_stmt($query);
sqlsrv_close( $conn );
?>

</body>
</html>

如果我在 while 语句之前添加这一行,它就可以正常工作... (?)
echo "<br>"; 

当使用Chrome检查页面时,我发现php在html文件末尾添加了一个pre标签。 这个pre标签保存了列表中的最后一项。为什么会这样?
<pre>1, Turkey, V8</pre>

糟糕的情况下的HTML输出: 糟糕情况的HTML

好的情况下的HTML输出: 好情况的HTML


2
你确定它不是以那种方式存储在数据库中的吗? - Machavity
2
PHP没有添加任何<PRE>标签。它们可能已经存在于您的代码或数据库中的数据中。 - Alex Howansky
首先要尝试的是使用至少基本的(最可能是HTML5)页面结构来包装您的代码,使其成为一个真正的HTML页面,当浏览器看到它时。 - Matt Gibson
修改了上面的代码,包括我现在正在使用的HTML标签... - CShore
如果您在Chrome浏览器的隐身模式下尝试同样的操作,会看到什么?(文件->新建隐身窗口)? - Matt Gibson
显示剩余20条评论
1个回答

4

嗯,如果您没有发送 <pre> 标签,我们可以通过 查看源代码 来判断,那么我能想到的唯一解释是:

  1. Chrome 正在尝试将无效的 HTML 文档转换为有效的 DOM 内存结构,因此添加了它,或者
  2. 您安装了一个 Chrome 扩展程序,并且该扩展程序会放置 <pre> 元素。

前者似乎不太可能,因为您已经修改了源代码使其成为有效的 HTML,并且仍然存在问题。

现在您已经发现在隐身模式下该问题消失了,这会默认禁用扩展程序,因此最有可能的情况是您的某个 Chrome 扩展程序实际上正在添加 <pre> 标签。请逐个排查扩展程序,找出罪魁祸首,您也许就能弄清原因……


Matt,非常感谢您在这个模糊的问题上的帮助...我会研究一下。顺便说一句,如果这有什么区别或给您任何其他想法,我是通过WAMP在本地服务器上运行的... - CShore
3
逐一检查后发现问题出在JSON查看器上!禁用后,一切都正常了……太令人沮丧了!!谢谢! - CShore
1
对我来说,也是jsonviewer扩展。谢谢伙计。 - gema

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接