【问题标题】:XHTML 1.0 Validation - PHP Line of Code Throws Errors. Why? How to fix?XHTML 1.0 验证 - PHP 代码行引发错误。为什么?怎么修?
【发布时间】:2018-03-18 07:54:14
【问题描述】:

我正在使用 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…

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

【问题讨论】:

  • XHTML 无法验证 PHP。而是传入渲染页面的源代码。

标签: php xhtml w3c-validation


【解决方案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),请在我的个人资料中查看我的网站;这是一个使用这种成功组合的完整网络平台。祝你好运!

【讨论】:

  • 这根本没有解决问题。问题是关于使用 W3C 验证器验证 PHP。
猜你喜欢
  • 2018-04-15
  • 1970-01-01
  • 2011-01-31
  • 2020-03-25
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多