首页 > 解决方案 > 通过 HTML 元素(例如 TABLE)在 PHP 中拆分大型 HTML 文件

问题描述

我正在尝试在 PHP 中解析一个相对较大的 HTML 文件(20 mb)。HTML 文件包含大约 200 个表(TABLE 标记),每个表平均有 50-100 行。我想清理表格 HTML 并将其保存在数据库中。该代码有效,但占用太多内存并且非常慢。

HTML 表是从遗留 SAP 系统导出的,整个文件在一行中,因此无法使用涉及逐行处理的某些技术。

我如何改进此代码以完成它的功能但不花费太多时间并更快地执行。这是我正在使用的

$file = file_get_contents('ro_full.html');

$doc = new DOMDocument();


@$doc->loadhtml($file);

$xpath = new DOMXPath($doc);

// Modify the XPath query to match the content
$i=0;
foreach($xpath->query('//table') as $table) {
    echo "<br><br>---TABLE ".$i." ----<br>";

    $tableHTML= $table->C14N();
    echo preg_replace("/<([a-z][a-z0-9]*)[^>]*?(\/?)>/i",'<$1$2>', $tableHTML);
    $i++;

}

标签: phpmemorygenerator

解决方案


推荐阅读