わかりました、私は歴史上最も奇妙な問題を抱えています。私は HTML で完全に動作する Web サイトを作成していますが、PHP からレンダリングすると、まったく同じクライアント ソース コードを持っているにもかかわらず、非常に奇妙な動作が発生します (文字通り文字ごとに調べました)。
最初は、インクルードしている「functions.php」ファイルで何かを台無しにしたと思っていましたが、エラーは発生せず、そのファイルの内容を include(' functions.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 ファイルにコピー アンド ペーストすると問題なく動作します)。
オビ=ワン=ケノービを助けてください、あなたは私の唯一の希望です (そうです、私はスターウォーズが大好きですが、彼らが 3 つ以上の映画を作ってくれたらよかったのにと思います)。
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:明確にするために、開発ツールが何を表示するかは気にしません。すべてが完璧であることを除けば、実際のWebサイトでそれらの引用がどこにあるかを示す空白を取得しているだけです.
EDIT3: また、要素セレクターで空白をクリックすることはできず、要素タブで空白を選択しても、Web サイトの何も強調表示されません。ただし、要素タブで削除すると、Web サイトは修正されますが (明らかにリロードされるまで)、明らかに問題の解決にはなりません。