【问题标题】:PHP XML DOM: Why does my large HTML file get truncated?PHP XML DOM:为什么我的大 HTML 文件会被截断?
【发布时间】:2017-02-22 02:22:39
【问题描述】:

我正在尝试使用 DOM 处理大型 HTML 文件。我将其读入并立即将其写入另一个文件而不做任何更改,但输出文件比输入文件小得多(也短得多)。

这特别令人费解,因为我可以发誓我以前在学习使用 DOM 时这样做过,而且输出看起来还不错。

这是我的代码:

<?
    // ini_set("memory_limit", -1);
    require_once("inc/common.inc");

    $acad = "../inprogress/academy/";
    $htmFName = "$acad/mf/humanacad.htm";
    $sz = filesize($htmFName);
    echo "fname: $htmFName, $sz bytes\n";

    $dom = new DOMDocument();
    $dom->loadHTML($htmFName);
    $dom->save("z");
    $sz = filesize("z");
    echo "fname: z: $sz bytes\n";

还有输出:

fname: ../inprogress/academy//mf/humanacad.htm, 2621622 bytes
fname: z: 219 bytes

这里是输入文件的开头:

<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 11 (filtered)">
<title> The Hanging Academy</title>
<style>
<!--
...
 -->
</style>
</head>
<body lang=EN-US link=blue vlink=blue>
<div class=Section1>
<p class=SectionHd>THE HANGING ACADEMY -- Part 1: Miranda</p>

这里是整个输出文件:

<?xml version="1.0" standalone="yes"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>../inprogress/academy//mf/humanacad.htm</p></body></html>

【问题讨论】:

    标签: php html xml dom


    【解决方案1】:

    我认为这是因为您打算使用 loadHTMLFile( $filename ) 而不是 loadHTML( $html )loadHTML( $html ) 期望传递的字符串是 HTML 内容。不是检索内容的文件名。

    【讨论】:

    • 谢谢你,解决了问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多