回答編集履歴
2
クラス名 SplFileObject() が間違っていたのを修正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
1.file_get_contents() を使用する
|
4
4
|
2.fopen(), fread(), stream_get_contents() を使用する
|
5
|
-
3.
|
5
|
+
3.SplFileObject() を使用する
|
6
6
|
|
7
7
|
|
8
8
|
`simple_html_dom`のソースを確認したところ、`file_get_html()`の中身は`file_get_contents()` を使用してHTMLを取得しているようです。
|
1
誤字修正
answer
CHANGED
@@ -5,19 +5,19 @@
|
|
5
5
|
3.SplFileInfo::openFile() を使用する
|
6
6
|
|
7
7
|
|
8
|
-
|
8
|
+
`simple_html_dom`のソースを確認したところ、`file_get_html()`の中身は`file_get_contents()` を使用してHTMLを取得しているようです。
|
9
9
|
[https://github.com/dimabdc/PHP-Fast-Simple-HTML-DOM-Parser/blob/376785f306a6012b96f1e67e8be2bc182ba09939/lib/Document.php#L126](https://github.com/dimabdc/PHP-Fast-Simple-HTML-DOM-Parser/blob/376785f306a6012b96f1e67e8be2bc182ba09939/lib/Document.php#L126)
|
10
10
|
|
11
11
|
|
12
12
|
> URLを取得する方法がfile_get_htmlで指定してやる方法しか分からず、何か良い方法を良い方法を教えていただきたく質問させて頂きました。
|
13
13
|
|
14
|
-
HTMLの取得時にメモリ不足が発生するということでしょうか?
|
14
|
+
本件の質問の背景は、HTMLの取得時にメモリ不足が発生するということでしょうか?
|
15
15
|
ちょっとしたプログラムで、HTMLのメタ情報のみであれば`file_get_html()`でも問題ないと思います。
|
16
16
|
|
17
17
|
下記、PHPでの大容量ファイルにも対応している読込の方法の例です。
|
18
18
|
[https://www.ibm.com/developerworks/jp/opensource/library/os-php-readfiles/index.html](https://www.ibm.com/developerworks/jp/opensource/library/os-php-readfiles/index.html)
|
19
19
|
|
20
|
-
上記の他にも`php 大容量ファイル`などで検索するとたくさんコンテンツができます。
|
20
|
+
上記の他にも`php 大容量ファイル`などのキーワードで検索するとたくさんコンテンツがでてきます。
|
21
21
|
|
22
|
-
どちらにしても、HTMLをXMLパーサーで読むことになるのですべてのHTMLが必要なわけです。
|
22
|
+
どちらにしても、HTMLをXMLパーサーで読むことになるのですべてのHTML文字列が必要なわけです。
|
23
23
|
メモリ不足で、メタタグのみが必要なのであれば適当なところで切ってしまって、小さなHTMLファイルでパースする方法もあります。
|