質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

6304閲覧

wgetは成功するのにfile_get_contentsだとメモリオーバーしてしまう

smnsmn

総合スコア175

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/06/20 13:05

file_get_contentsで、200MB以下のファイルなのですが取得しようとすると、

PHP Fatal error: Allowed memory size of 〜〜〜〜〜〜 bytes exhausted 〜〜〜〜〜

と、メモリオーバーのエラーが出てしまいます。

wgetだとエラーなく完了するのですが、これは何故なのでしょうか?

メモリ使用上限を上げてfile_get_contentsするのとwgetするのどちらが良いのでしょうか?

wgetはファイルをダウンロードするコマンドで、file_get_contensファイルの内容を全て文字列に読み込むというPHPの関数ですが、負荷的には変わらないのでしょうか?

負荷は変わらないけれど、PHPで扱えるメモリが少ないだけなのか、分かりません。

良い方法をご教授頂けると幸いです。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

wgetだとエラーなく完了するのですが、これは何故なのでしょうか?

php.ini にPHPが使用するメモリの上限が設定されているからです。

例えば、以下のようにメモリ上限を変更することができます。

php

1ini_set('memory_limit', '1G'); 2file_get_contents($url);

投稿2016/06/20 13:31

編集2016/06/20 13:32
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

smnsmn

2016/06/20 13:39

メモリ上限を上げたところ、上手く行きました。m(__)m 質問にも書いているのですが、 ーーーーーーーーーー メモリ使用上限を上げてfile_get_contentsするのとwgetするのどちらが良いのでしょうか? wgetはファイルをダウンロードするコマンドで、file_get_contensファイルの内容を全て文字列に読み込むというPHPの関数ですが、負荷的には変わらないのでしょうか? 負荷は変わらないけれど、PHPで扱えるメモリが少ないだけなのか、分かりません。 ーーーーーーーーーー こちらもおわかりでしたら、後学のため合わせて教えて頂けますと幸いです。
退会済みユーザー

退会済みユーザー

2016/06/20 13:41

ただ取得するだけならどちらでも良いでしょうし、取得した内容を解析したりする必要があるなら、file_get_contens一択ではありませんか? 負荷紛紜以前に目的が異なるものですよね。
smnsmn

2016/06/20 16:07

ありがとうございます。 解析等はしないのですが、curlを使っております。 目的に応じて使い分けられるよう、勉強したいと思います。ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問