>我有大小高达 1GB 的 html 文件。 我想在数据库中上传这个 html 文件的内容。 文件(html)包含<table><tr><td></td></tr></table>
标签。 如果文件大小约为 5MB 或 6MB,则完成这项工作,但大文件大小给我错误 内存不足( xxxxx 字节) 试图分配(xxxxx 字节)。
如何在数据库中上传大文件大小的数据..
我使用 DOMDocument -> LoadHTMLfile 函数。和 getElementByTagName("tr")
当 PHP 在尝试为数组、变量等分配内存时内存不足时,会触发此错误。 最大内存量以 php 指定.ini with 指令
memory_limit = 128M
(或类似)。 尝试增加值,看看是否有帮助。 但是,如果您超过了非常大的内存分配(例如,256 MB 或更多),那么您的设计中肯定存在缺陷,因为您不应该一次在内存中保留那么多数据。
如果您正在处理文件,则应以块的形式读取该文件,将数据插入数据库并读取更多块。 对于 HTML 处理,SAX 解析器可能是一个好主意,也许是这样的。
使用 XMLReader
http://www.php.net/manual/en/book.xmlreader.php
它不会一次将整个文档读入内存。