好吧,我遇到了历史上最奇怪的问题。我正在制作一个可以在 HTML 中完美运行的网站,但是在从 PHP 呈现时却出现了一些非常奇怪的行为——尽管客户端源代码完全相同(我逐个字符地浏览了它)。
起初我以为我在包含的“functions.php”文件中弄乱了一些东西,但我没有收到任何错误,当我将该文件的内容复制并粘贴到包含的地方时('函数.php'); 线是,问题消失了。
这是我的代码(删除了一些 HTML,这是所有的 PHP):
<?php
error_reporting(E_ALL);
ini_set('display_errors','1');
include 'functions.php';
$footer = file_get_contents('footer.txt');
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Removed</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/main.js"></script>
<link type="text/css" rel="stylesheet" href="css/jquery-ui-custom.css" />
<link type="text/css" rel="stylesheet" href="css/main.css" />
</head>
<body>
<div id="header">
<div id="headerContent">
<div id="logo">
</div>
<?php
echo trim(GetNav());
?>
</div>
</div>
<div id="content">
<?php
$NumberOfNewsItems = 2;
echo trim(GetNews($NumberOfNewsItems));
?>
</div>
<?php
echo trim($footer);
?>
</body>
</html>
GetNav 和 GetNews 函数从数据库中获取信息,所以我不会显示它们的代码,另外,正如我之前提到的,如果我不包含文件,而是将其内容复制到我进行包含的地方调用然后大部分空白消失(仍然有一些'echo $footer'调用所在的位置。
基本上,当您查看源代码时,一切看起来都很好。当你按下 F12 来查看开发工具时,事情变得非常奇怪,元素选项卡在标签之后(这会影响网站的外观)以及在页脚和内容 Div(同样会影响网站的外观)。
同样在此视图中,来自 的所有标签都位于第一组空白下方,并且标签为空(例如:)<head></head>
。
源代码看起来不错(如果我将源代码复制并粘贴到 HTML 文件中,它可以完美地工作),我不得不承认这让我大吃一惊。
请帮助我 Obi-Wan-Kenobi,你是我唯一的希望(是的,我喜欢《星球大战》,尽管我希望他们制作的电影不止三部)。
PS 这可能非常明显,但我是一个 .Net 开发人员,在业余时间为家人做这件事(学习新语言也很有趣,即使是那些过度喜欢 $ 符号的语言),所以如果提前道歉我是世界上最大的新手。
编辑:我在开发工具中看到的是:
<html xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body>
"
"
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Removed</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/main.js"></script>
<link type="text/css" rel="stylesheet" href="css/jquery-ui-custom.css" />
<link type="text/css" rel="stylesheet" href="css/main.css" />
等等。
EDIT2:为了清楚起见,我不在乎开发工具显示什么,只是我得到空白显示这些引号在实际网站上的位置,除了一切都很完美。
EDIT3:此外,无法使用元素选择器单击空格,并且在元素选项卡中选择空格不会突出显示网站上的任何内容。在元素选项卡中删除它但是确实修复了网站(直到它明显重新加载),但显然对我的问题没有帮助。