0

サイトのヘッダーに関連するコードが含まれる関数を作成しました。これは機能です:

まず、上記のようなコーディングで何か問題はありますか?次に、Netbeans は html タグで警告を発行します: Stray start html tag here. これは、html タグが関数で囲まれており、この関数に終了タグが含まれていないために発生すると思われます。

function output_headers()
{?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Appointmetns24x7</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet"  href="css/admingeneral.css"/>
script  type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js" ></script>
</head>
<body> <?php
}

このコーディング スキームに問題がなければ、netbeans の警告を無視して続行します。

4

3 に答える 3

3

実際のエラー メッセージは、<body>タグが閉じられていないことが原因です。Netbeans はこれを検出し、HTML が無効である可能性があることを警告しています...無効であるためです。Netbeans は、この関数を見ただけでは、完全な HTML ドキュメントであってはならないことを知る方法がありません。

このようにする必要がある場合は、個々の HTML タグを異なるコード ブロック間で分割しないようにする必要があります。ベスト プラクティスは、HTML タグを出力するすべての関数が、対応する終了タグも出力することを確認することです。

ただし、あなたがやっている方法は、いずれにしても理想的ではありません。

テンプレートを「ヘッダー」と (おそらく) 「フッター」関数に分割しました。この種の手法は数年前には非常に一般的でしたが、最近では特に優れた方法とは見なされていません。

より良いテクニックは、すべての HTML (つまり、ヘッダーとフッター) を含む別のテンプレート ファイルを作成し、動的コンテンツを配置するプレースホルダーを用意することです。次に、動的コンテンツ ビットを文字列として作成し、テンプレートにフィードします。

最も単純な形式では、これは<?php echo $mainBodyCode; ?>、適切な場所のようなプレースホルダーに対して、テンプレートが PHP ブロックを含むプレーンな HTML ファイルであることを意味します。次に、プレースホルダー変数が設定されていることを確認し、ページを出力するときにそれを含める必要があります。

それが役立つことを願っています。

于 2012-10-17T13:17:12.590 に答える
1

私は漂遊タグが座っているだろう

xmlns="http://www.w3.org/1999/xhtml"

xhtml ではないものを<!DOCTYPE html>呼び出したため、xml 名前空間の呼び出しは無効です。

于 2012-10-17T12:53:33.187 に答える
1

ルート タイプの html(html タグ) 要素を関数内で囲み、関数外のスクリプト上の場所でそれらを閉じると、開始タグが設定され、Netbeans でエラーとして解釈されるようです。

誰かがそれを無視することを選択できます。さもなければ、関数に html ヘッダー情報を入れて、このようにコーディングすることを避けるべきです。

于 2012-11-21T12:47:40.480 に答える