以下は私のインデックスページです。$page は上部で定義され、ページのセクション (ヘッダー、メニュー、ボディ、フッター) は下部で変更されます。
私が直面している問題は、残りのページ コンテンツの前に、DOCTYPE とデータが最初に読み込まれないことです。これにより、ブラウザが互換モードで実行されます。
この質問をより明確にすることができるかどうか、またはその方法を教えてください。
お時間をいただきありがとうございます。
更新: すべての PHP タグを削除し、require('includes/....') を変数に設定して、ページの読み込み時に削除しました。DOCTYPE はまだ読み込みを拒否しています。以下のコードは変更を反映しています。
更新 2: DOCTYPE が $page 変数に直接突き合わされ、すべての空白が削除されました。また、ブラウザで表示すると、オープニングが表示されていないのに が表示されていることに気付きました。すべてのスタイルシートとその他のコンテンツは、ページ内にレンダリングされます。
解決策:複数の人が指摘したように、解決策は複数の要因である可能性があります(DOCTYPEの前に改行が生成されるなど)が、最終的な答えは次のとおりであると確信できます。ページが変数に設定されていませんでした。したがって、それらはページの前にロードされているように見えました。外部の include/requires を関連ドキュメントの変数に設定すると、DOCTYPE が正しく読み込まれました。お時間を割いていただき、感謝に堪えません。
<?
require('includes/functions/get_content.php');
$header=require('includes/header.php');
$footer=require('includes/footer.php');
$page='<!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>
<title>Website Name</title>
<link rel="stylesheet" href="/css/primary_layout.css" type="text/css" charset="utf-8" />
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.0.min.js" type="text/javascript"></script>
</head>
<body>
<div id="bodyContainer">
%HEADERS%
%MENU%
<div id="bodyContentPane" role="main">
%BODY%
</div> <!-- Close bodyContentPane -->
%FOOTER%
</div>
</body>
</html>';
//############### LOAD BODY CONTENT and SET CATEGORY ###############
$p = $_GET['p'];
switch ($p){
case "port-a-cool":
$filename='includes/content1.html';
$data=get_content($filename);
$product_category = '1';
$body=$data;
break;
case "radiant-heaters":
$filename='includes/content2.html';
$data=get_content($filename);
$product_category = '2';
$body=$data;
break;
default:
$body= include('includes/index.php');
break;
}
//############### DEFINE CONTENT TO LOAD BY CATEGORY ###############
$i = $product_category;
switch ($i){
case "1":
$menu=include('includes/menus/content1.php');
break;
case "2":
$menu=include('includes/menus/content2.php');
break; }
// ############### CHECK FOR UNDEFINED SUB MENU ###############
if ($menu=="")
$menu = include ('includes/menus/default.php');
$page=str_replace('%HEADER%',$header,$page);
$page=str_replace('%MENU%',$menu,$page);
$page=str_replace('%BODY%',$body,$page);
$page=str_replace('%FOOTER%',$footer,$page);
echo $page;
?>