我编写了一个函数,其中包含与站点标题相关的代码。这是功能:
首先,上面的编码有什么问题吗? 其次,Netbeans在html标签中发出警告:Stray start html标签。 我想这是因为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警告并继续。
答案 0 :(得分:3)
实际的错误消息是由于<body>
标记未关闭所致。 Netbeans正在捡起这个并警告你HTML可能无效......因为它无效。 Netbeans无法通过查看此函数来了解它不应该是一个完整的HTML文档。
如果必须以这种方式执行操作,则应避免在不同的代码块之间拆分单个HTML标记。最佳做法是确保输出HTML标记的任何函数也输出相应的结束标记。
然而,无论如何,你做事的方式并不理想。
您已将模板拆分为“标题”和(可能)“页脚”功能。这种技术在几年前很常见,但现在并不是特别好的做法。
更好的技术是拥有一个单独的模板文件,其中包含所有HTML - 即页眉和页脚,以及您希望动态内容的占位符。然后,您将动态内容位构建为字符串,并将它们提供给模板。
在最简单的形式中,这只意味着模板是一个带有PHP块的普通HTML文件,适用于适当位置的<?php echo $mainBodyCode; ?>
等占位符。然后,您只需要确保填充占位符变量,并在您想要输出页面时包含它。
希望有所帮助。
答案 1 :(得分:1)
我会坐在流浪标签上
xmlns="http://www.w3.org/1999/xhtml"
因为你调用的<!DOCTYPE html>
不是xhtml,所以调用xml名称空间是无效的。
答案 2 :(得分:1)
似乎如果你将一个根类型的html(html标签)元素包含在一个函数中,然后在函数外部的脚本上将它们关闭,则设置开始标记 - 然后在Netbeans中将其解释为错误。
有人可以选择忽略它,否则他应该避免使用这种方式进行编码,将html标题信息放入函数中。