gpt4 book ai didi

php - 寻找可以清理不良 HTML 的 PHP 脚本

转载 作者:可可西里 更新时间:2023-11-01 12:44:44 25 4
gpt4 key购买 nike

我正在编写一个 PHP 命令行脚本,使用 Markdownify 将数百个 HTML 片段转换为 Markdown。图书馆。但是,我遇到过这样一种情况,我的一些 HTML 结构不够好,无法与 Markdownify 一起使用。所以我首先需要通过一些可以清理它并添加可选的结束标记等的库来发送我的 HTML。我将使用部分 HTML block ,而不是完整的 HTML 文档,因此返回的 HTML 必须是部分的(并且不包括文档类型等)。

您知道可以将 HTML 转换为 XHTML 的 PHP 脚本吗?

解决方案:

利用 PHP DOMDocument class .即使它损坏了,它也会格式化你的 HTML。然后您可以提取清理后的 HTML:

libxml_use_internal_errors(true); //use this to prevent warning messages from displaying because of the bad HTML

$doc = new DOMDocument();
$doc->loadHTML($badHtml);
$goodHtml = $doc->saveHTML();

这将返回一个完整的 HTML 文档(在 body 标记中包含清理后的版本),即使我向它传递了部分 HTML block ,因此我可以使用此正则表达式提取清理后的部分:

$goodHtmlPartial = trim(ereg_replace('(.*)<body>(.*)</body>(.*)', '\2', $goodHtml));

最佳答案

有什么理由不使用 tidy 吗?

http://php.net/manual/en/book.tidy.php

它可以清理你的 html,只给你正文部分。

$tidy = tidy_repair_string($content,array(
'indent' => true,
'output-html' => true,
'wrap' => 80,
'show-body-only' => true,
'clean' => true,
'input-encoding' => 'utf8',
'output-encoding' => 'utf8',
'logical-emphasis' => false,
'bare' => true,
));

关于php - 寻找可以清理不良 HTML 的 PHP 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4383075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com