0

私は1GBまでのサイズのhtmlファイルを持っています。このhtmlファイルの内容をデータベースにアップロードしたいと思います。file(html)には<table><tr><td></td></tr></table>タグが含まれています。この作業は、ファイルサイズが約5MBまたは6MBの場合に実行されますが、ファイルサイズが大きいと、割り当て(xxxxxxxバイト)しようとしたメモリ不足(xxxxxバイト)のエラーが発生します。

データベースに大きなファイルサイズのデータ​​をアップロードするにはどうすればよいですか。

DOMDocument-> LoadHTMLfile関数を使用しています....およびgetElementByTagName( "tr")

4

2 に答える 2

2

このエラーは、配列や変数などにメモリを割り当てようとしているときにPHPのメモリが不足した場合にトリガーされます。メモリの最大量は、php.iniでディレクティブを使用して指定されます

memory_limit = 128M

(または類似)。値を増やしてみて、それが役立つかどうかを確認してください。ただし、非常に大きなメモリ割り当て(たとえば、256 MB以上)を超えている場合は、一度にそれほど多くのデータをメモリに保持するべきではないため、設計に間違いなく欠陥があります。

ファイルを処理している場合は、ファイルをチャンクで読み取り、データをデータベースに挿入して、さらにチャンクを読み取る必要があります。HTML処理の場合、SAXパーサーは良いアイデアかもしれません。おそらくこのようなものです。

于 2012-05-13T18:51:32.033 に答える
0

XMLReaderを使用する

http://www.php.net/manual/en/book.xmlreader.php

ドキュメント全体を一度にメモリに読み込むわけではありません。

于 2012-05-13T18:49:36.957 に答える