- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
更新 2:http://htmlpurifier.org/phorum/read.php?3,5088,5113作者已经确定了问题。
更新:问题似乎是版本 4.2.0 独有的。我已经降级到 4.1.0 并且可以正常工作。谢谢你的帮助。通知包的作者。
我正在抓取一些页面,例如:
http://form.horseracing.betfair.com/horse-racing/010108/Catterick_Bridge-GB-Cat/1215
根据 W3C 验证,它是有效的 XHTML Strict。
然后我使用 http://htmlpurifier.org/在加载到 DOMDocument 之前净化 HTML。然而,它只返回一行内容。
输出:
12:15 Catterick Bridge - Tuesday 1st January 2008 - Timeform | Betfair
代码:
echo $content; # all good
$purifier = new \HTMLPurifier();
$content = $purifier->purify($content);
echo $content; # all bad
顺便说一句,它适用于来自另一个站点的数据,就像您所说的那样,为来自该域的所有页面保留标题。
相关链接
最佳答案
您不应该需要 HTML 净化器。 DOMDocument 类将为您处理一切。但是,它会在无效的 html 上触发警告,所以只需这样做:
$doc = new DOMDocument();
@$doc->loadHTML($content);
那么错误就不会被触发,你可以用 HTML 做你想做的事。
如果您正在抓取链接,我建议您使用 SimpleXMLElement::xpath();这比使用 DOMDocument 容易得多。另一个例子:
$xml = new SimpleXMLElement($content);
$result = $xml->xpath('a/@href');
print_r($result);
您可以获得更复杂的 xpath,允许您指定类名、ID 和其他属性。这比 DOMDocument 强大得多。
关于php - htmlpurifier,第三方源的过度净化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4221035/
HTMLPurifier 默认允许很多我不想允许的标签。根据文档,您必须添加如下定义: $config = HTMLPurifier_Config::createDefault(); if ($def
两个问题: 我一直在阅读文档和 SO 帖子.. 并且知道如何从长远来看(自己定义每个元素和属性),但我只想将 2 或 3 个属性添加到默认白名单。 . 这样我就不必不断地查找和添加更多元素/属性,例如
有谁知道我应该如何配置 HtmlPurifier 以忽略 标记中的内容?目前我有这样的东西: require_once('HTMLPurifier.auto.php'); $config = HT
我需要允许我的用户输入居中文本而不是让 htmlpurifier 将其删除的代码。 谢谢! 最佳答案 从您的(?)HTML Purifier thread 中获取了一半的答案: $config = H
我如何在 HTMLPurifier 中允许“类”?我正在尝试净化它: Blah 我得到: Blah 为什么类消失了?我正在使用下一个配置: $config->set('Attr.EnableID
如何在 HtmlPurifier 中允许自定义(html5 数据-*)属性? 输入: 导致错误: Attribute 'data-type' in element 'img' not support
好吧,现在我也在每个页面上都包含了下面的代码,每次我把下面的代码放在一个新的网页上时,我也会更改下面的代码。有没有一种方法可以一次包含所有这些代码并让它影响每个网页并让代码正常工作? 这是我必须一直更
HTMLPurifier删除样式标签时遇到问题。这是我使用的(测试)配置: $config = HTMLPurifier_Config::createDefault(); $config->set('
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
htmlpurifier 删除不允许值的属性。例如; 我为contenteditable属性设置了div标签的权限,所以值只能是false。但如果 contenteditable="true" 或
我正在尝试为我的所有 span 允许一些 data-attribute 和 htmlPurifier 但没办法... 我有这个字符串: My Name
我正在尝试对来自 WYSIWYG(CK 编辑器)的用户输入运行 HTMLPurifier,但图像已损坏。 未过滤的输入: 使用默认设置运行净化器后: 我试过更改配置设置;但我永远不会保留 src。
更新 2:http://htmlpurifier.org/phorum/read.php?3,5088,5113作者已经确定了问题。 更新:问题似乎是版本 4.2.0 独有的。我已经降级到 4.1.0
我看到 Kohana 框架允许用户选择使用 HTMLPurifier防止任何可能的 XSS 攻击。 我认为 HTMLPurifier 旨在允许符合标准的 HTML 输出。 它是否有助于 100% 或可
HTMLPurifier插件的使用 下载HTMLPurifier插件 HTMLPurifier插件有用的部分是 library 使用HTMLPurifier library类库 第一种方式
我想在 HTMLPurifier 中使用 和 标签以及一些自定义标签(例如 , )。我用了 $config->set('HTML.Allowed','audio, video'); 添加这些标签但收到
我只想在 span 元素在 htmlpurifier 中有某个类时才允许它 有没有人知道怎么做,现在我有 $config->set('HTML.Allowed','a[href],p,ol,li,
我正在使用 htmlPurifier 来防止来自用户的 XSS 攻击,并且在输入 type="text"字段上一切正常。但是,当我尝试清理 tinyMCE 文本区域时,htmlPurifier 似乎不
当我输入特殊字符 ☣到我的 mysql 数据库中,当存储在数据库中时,它会变成 ☣ ,当我尝试显示数据库中的结果时,它会显示为 â�£ ,而它应该显示为☣我该如何解决这个问题? 最佳答案 在提交命令之
我要限制 HTMLPurifier 只接受一些特定的 HTML 标签。 有效标签列表: 我阅读了 Configuration Documentation 和 HTML Allowed Elem
我是一名优秀的程序员,十分优秀!