提问人:Dewey Banks 提问时间:10/6/2017 最后编辑:unorDewey Banks 更新时间:10/11/2017 访问量:94
XHTML 1.0 验证 - PHP 代码行抛出错误。为什么?怎么修?
XHTML 1.0 Validation - PHP Line of Code Throws Errors. Why? How to fix?
问:
我正在用PHP做一个学校项目,我的网页必须通过XHTML 1.0验证。
以下代码行引发错误。
<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo dayOfWeek() ?>" />
错误行 116,第 18 列:属性值中不允许出现未转义的“<”
<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo d… ✉
错误行 116,第 18 列:属性构造错误
<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo d… ✉
错误行 116,列 18:找不到开始标记 img 行 116 的末尾
<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo d…
关于为什么会发生这种情况以及如何解决的任何建议将不胜感激。
答:
-1赞
John
10/11/2017
#1
错误处理很重要。希望这段基于成熟直播平台的代码对您有所帮助。
<?php
error_reporting(E_ALL);
//No errors if live, outputs errors if local testing.
ini_set('display_errors', substr($_SERVER['HTTP_HOST'],0,4)=='www.' ? 0 : 1);
//Use an include and put the error handling function there.
set_error_handler('error_handle');
function error_handle($errno,$errstr,$errfile,$errline)
{
//Quick dump.
//You should store all errors (HTTP, JavaScript, PHP and SQL) in logs.
echo '<div><p>errno = '.$errno.'</p></div>';
echo '<div><p>errstr = '.errstr.'</p></div>';
echo '<div><p>errfile = '.$errfile.'</p></div>';
echo '<div><p>errline = '.$errline.'</p></div>';
}
?>
此外,通过提供正确的 mime 标头来确保您的 XHTML 是 XHTML:
<?php
if (stristr($_SERVER['HTTP_ACCEPT'],'application/xhtml+xml'))
{
$mime = 'application/xhtml+xml; charset=UTF-8';
}
else
{
$mime = 'text/html; charset=UTF-8';//Not UTF-8 string for IE6 but no longer valid 2010+.
}
header('Content-Type: '.$mime);
?>
如果您想进一步了解 XHTML5(使用 XML 解析器的 HTML5),请参阅我的个人资料中的我的网站;这是一个使用这种成功组合的整个网络平台。祝你好运!
评论
0赞
Mr Lister
10/14/2017
这根本无法解决问题。问题是关于使用 W3C 验证器验证 PHP 的问题。
评论