XHTML 1.0验证 - PHP代码行引发错误。为什么?怎么修?

问题描述:

我正在学习PHP项目,我的网页必须通过XHTML 1.0验证。XHTML 1.0验证 - PHP代码行引发错误。为什么?怎么修?

以下代码行会引发错误。

<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 line 116

<img src="<?php echo './img/'. dayOfWeek(). '.png'?>" alt="<?php echo d… 

任何有关为什么会发生这种情况以及如何解决的建议将不胜感激。

+4

XHTML无法验证PHP。相反,请传入呈现页面的源代码。 – aynber

错误处理很重要。希望这个基于成熟的实时平台的代码能够帮助你。

<?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>'; 
} 
?> 

此外,还要确保你的XHTML XHTML通过投放正确的MIME头:

<?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进一步了解(HTML5使用XML解析器)看到我的网站在我的简历;它是一个使用这个组合的整个网络平台。祝你好运!

+0

这并没有解决这个问题。问题是关于使用W3C验证器验证PHP。 –