我正在尝试对W3C验证器api给出的响应使用PHP的json_decode函数。我得到的回应是:
{
"url": "http://www.wral.com/weather/page/8106570/?default_map=icontroldoppler",
"messages": [
{
"lastLine": 1151,
"lastColumn": 61,
"message": "Element ul not allowed as child of element button in this context. (Suppressing further errors from this subtree.)",
"messageid": "html5",
"explanation": "\n<div class=\"ve html5\"><dl xmlns=\"http://www.w3.org/1999/xhtml\"><dt>Contexts in which element <a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#the-ul-element\"><code>ul</code></a> may be used:</dt>\n <dd>Where <a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#flow-content-1\">flow content</a> is expected.</dd>\n <dt>Content model for element <a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#the-button-element\"><code>button</code></a>:</dt>\n <dd><a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#phrasing-content-1\">Phrasing content</a>, but there must be no <a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#interactive-content-0\">interactive content</a> descendant.</dd>\n </dl></div>\n",
"type": "error"
}
],
"source": {
"encoding": "utf-8",
"type": "text/html"
}
}
所以我想做的是:
$var = <<<__TEXT__
{
"url": "http://www.wral.com/weather/page/8106570/?default_map=icontroldoppler",
"messages": [
{
"lastLine": 1151,
"lastColumn": 61,
"message": "Element ul not allowed as child of element button in this context. (Suppressing further errors from this subtree.)",
"messageid": "html5",
"explanation": "\n<div class=\"ve html5\"><dl xmlns=\"http://www.w3.org/1999/xhtml\"><dt>Contexts in which element <a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#the-ul-element\"><code>ul</code></a> may be used:</dt>\n <dd>Where <a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#flow-content-1\">flow content</a> is expected.</dd>\n <dt>Content model for element <a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#the-button-element\"><code>button</code></a>:</dt>\n <dd><a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#phrasing-content-1\">Phrasing content</a>, but there must be no <a href=\"http://www.w3.org/html/wg/drafts/html/master/single-page.html#interactive-content-0\">interactive content</a> descendant.</dd>\n </dl></div>\n",
"type": "error"
}
],
"source": {
"encoding": "utf-8",
"type": "text/html"
}
}
__TEXT__;
$decoded = json_decode($var);
返回NULL。我还尝试传递“true”以返回关联数组而不是对象。
如果我从JSON对象中删除了“解释”键,那么它就可以正常工作了。在运行json_decode之前,我是否需要对该键中的HTML执行某些操作?