【问题标题】:can i validate xhtml programmatically from a php script?我可以从 php 脚本以编程方式验证 xhtml 吗?
【发布时间】:2011-04-12 12:06:25
【问题描述】:

我想要一个 PHP 函数来检查 URL 是否返回有效的 HTML,并返回 true 或 false。

类似:

if (validate_page("/somefile.html")) { echo "此页面已验证!!"; }

我找到了 TWINE,但它不只是告诉我是真是假。我在我的系统上运行它时也遇到了错误。 http://twineproject.sourceforge.net/

我发现这个离线工具看起来很有前途。 http://htmlhelp.com/tools/validator/offline/

我还发现了这个讨论宝石的线程,但这听起来有问题。 How do I validate XHTML with nokogiri?

【问题讨论】:

  • 讨论 gem 的帖子是关于 Ruby(gem 是一个包),而不是 PHP。

标签: php validation xhtml


【解决方案1】:

【讨论】:

  • 这看起来很有希望,我试试看!
【解决方案2】:
libxml_use_internal_errors ( true );
$doc = new DOMDocument;
$doc -> loadHTMLFile ( $file ); // load the file you want validated
var_dump ( libxml_get_errors () );

【讨论】:

  • 感谢此代码示例!我得到了这个工作,但它给了我一个测试用例的误报。它也只适用于静态文件(不是 php 模板)。但现在已经足够了,谢谢!
【解决方案3】:

如果您使用的是 PHP 5 并且文档包含 DTD,您也可以尝试 DOMDocument->validate()

http://www.php.net/manual/en/domdocument.validate.php

【讨论】:

    【解决方案4】:

    xhtml 必须是有效的 xml - 如果您只想检查,您可以轻松使用 simplexml,但如果您还想检查正确的元素/属性,这对您没有帮助(在这种情况下,NullUserExceptions提示 W3C 的验证器 API 将是选择的最佳解决方案)。

    【讨论】:

      【解决方案5】:

      您可以使用W3C's validator API。 PEAR (click here) 提供了一个 PHP 库,它使用了上述 API。

      您也可以在本地服务器 (instructions here) 上安装验证器,但如果您使用共享主机,您可能没有足够的权限来执行此操作。

      【讨论】:

      • 这是我最终使用的,感谢您的回答。抱歉回复迟了
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 2015-08-17
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多