


致命的エラー: 許容メモリ サイズ 134217728 バイトが使い果たされました (2611816 バイトを割り当てようとしました),allocate2611816_PHP 教程
致命的エラー: 許可されたメモリ サイズ 134217728 バイトが使い果たされました (2611816 バイトを割り当てようとしました)、allocate2611816
今日は、PHP コードを使用して、合計 219 万行を超えるレコードを持つ 5 億 8,000 万のログ ファイルを処理する必要があります。これは .log ファイルであるため、Windows ではエントリ数に応じてファイルを分割するのが困難です。 Linux では、split -l を使用します。ファイル名プレフィックス 10000 は、ファイル全体を 10000 行に基づいて 200 を超える小さなファイルに分割し、PHP を使用してこれらの 200 を超えるファイルをループで処理します。上記のエラーが表示されました:
致命的なエラー: 許容メモリ サイズ 134217728 バイトが使い果たされました (2611816 バイトを割り当てようとしました)
Baidu に行ったところ、php.ini のメモリ割り当ての問題であることがわかりました。コードの実行時にさらに多くのメモリが必要な場合、デフォルトでは、PHP コードが適用できる最大メモリ バイト数は 134217728 バイトです。 、エラーが報告されるため、php.ini ファイルの設定を変更しました。
;
その理由は、コーディング中に変数に値を代入するだけで、設定を解除($var)しなかったためです。これによりメモリ使用量がますます増加するため、変数が使用されなくなった後は、忘れずに設定を解除する必要があります。
今日このログファイルを処理するために使用したコードを以下に添付します:
/**
* 送信に失敗したメールアドレスをログから取得します
* @param $directory ログディレクトリ
* @param $name 失敗したメールボックスに保存されたファイル名
*/
関数 getmail($directory,$name){
// ディレクトリ内の .log ファイルを走査します
$files=scandir("$ディレクトリ");
foreach($files as $v){
If(preg_match_all("|mail.logD+|",$v,$log)){
$logs[]=$log[0][0];
}
}
//すべての .log ファイルから送信に失敗したメールを抽出します
foreach($logs as $v){
$row=file("$v");
Echo "read"を添えて。$ v。 "file< br />";
foreach($row as $key => $value)
{
If(eregi("ホスト名の検索に失敗しました|接続がタイムアウトしました|接続が拒否されました|逆ホスト名が見つかりません", $value)){
if(preg_match("|w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*|", $row[$key],$matches)) {
$mail[] = トリム($matches[0]);
echo "送信に失敗したメール アドレスを取得します".$matches[0]."
";
}その他{
echo "ログに送信に失敗したメールアドレスを取得できませんでした。確認してください";
}
}
}
unset($row);
}
// 抽出して送信に失敗したメールアドレスを mail.txt ファイルに書き込みます
$mailurl=fopen("$name","a");
foreach($mail as $line)
{
fwrite($mailurl,$line."rn");
}
echo "送信に失敗したすべてのメール アドレスを ".$name" に書き込みます。
";
fclose($mailurl);
}
getmail(".","mail.txt");
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











win10でゲームを開くときに致命的なエラーが発生した場合はどうすればよいですか?ソフトウェアまたはゲームの実行中に致命的なエラー メッセージが表示された場合はどうすればよいですか?このサイトでは、Win10でゲームを開くときに致命的なエラーが発生した場合の対処方法をユーザーに丁寧に紹介します。 win10でゲームを開くときに致命的なエラーが発生した場合はどうすればよいですか?方法 1: ファイルの破損やクラック パッチの使用など、ゲーム クライアントに問題があり、致命的なエラーが発生する場合は、ゲームを再ダウンロードできます。方法 2: コンピューターのメモリが小さすぎると、致命的なエラーが発生する可能性があります。物理メモリが十分な場合は、システムの仮想メモリを設定してみてください。

PHP は、長い間使用されている人気のある Web 開発言語です。 PHP に統合された PDO (PHP Data Object) クラスは、Web アプリケーションの開発中にデータベースと対話する一般的な方法です。ただし、一部の PHP 開発者がよく遭遇する問題は、PDO クラスを使用してデータベースと対話するときに、次のようなエラーが表示されることです。

Vue アプリケーションで axios を使用するのは非常に一般的です。axios は、ブラウザーと Node.js で使用できる Promise ベースの HTTP クライアントです。開発プロセス中に、「Uncaught(inpromise)Error: Requestfailedwithstatuscode500」というエラー メッセージが表示されることがありますが、開発者にとって、このエラー メッセージは理解および解決が難しい場合があります。この記事ではこれについて説明します

ファイルのサイズを取得するには、Java の File.length() 関数を使用します。ファイル操作を扱うとき、ファイル サイズは非常に一般的な要件です。Java では、ファイルのサイズを取得するための非常に便利な方法、つまり length( ) File クラスのメソッド。この記事では、このメソッドを使用してファイルのサイズを取得する方法と、対応するコード例を紹介します。まず、サイズを取得したいファイルを表す File オブジェクトを作成する必要があります。 File オブジェクトを作成する方法は次のとおりです: Filef

ファイナルファンタジー 7 をプレイしていると、多くのプレイヤーが致命的なエラーの問題に遭遇し、その解決方法がわかりません。通常、メモリが読み取れないという問題が発生します。この問題を解決するには、ゲームを再インストールすることをお勧めします。ファイナルファンタジー 7 の致命的エラーの解決方法 1. ゲームを再インストールします ファイルの破損、不完全さ、一部のクラック パッチの使用などのゲーム クライアントの問題は致命的なエラーにつながる可能性があるため、ゲームを再インストールすることをお勧めします。 2. すべてのファイルの読み取り専用プロパティを削除します。一部のファイル プロパティは読み取り専用であってはなりませんが、読み取り専用に設定されています。すべてのファイルの読み取り専用プロパティを削除するだけです。たとえば、ゲームがプレイできない場合は、ゲーム上で右クリックしてフォルダをインストールし、読み取り専用属性を解除してください。 3. 仮想メモリの設定は、メモリが少なすぎることが原因である可能性があります。物理メモリが十分な場合は、

C++ コードの「error:expectedinitializerbefore'datatype'」問題を解決します。C++ プログラミングでは、コードを作成するときにコンパイル エラーが発生することがあります。一般的なエラーの 1 つは、「error:expectedinitializerbefore'datatype'」です。このエラーは通常、変数宣言または関数定義で発生し、プログラムが正しくコンパイルされなかったり、

C++ コードの「error:incompletetypeisnotallowed」問題を解決します。C++ プログラミング プロセス中に、コンパイル エラーが発生することがあります。一般的なエラーの 1 つは、「error:incompletetypeisnotallowed」です。このエラーは通常、不完全な型を操作することによって発生します。この記事では、このエラーの原因を説明し、いくつかの解決策を提供します。まず、私は

起動できない「0271: リアルタイム クロック エラー」の解決策: 1. F1 キーを押し、表示されるインターフェイスでオプション バーを 3 番目の項目「日付/時刻」に移動します; 2. システム時刻を手動で現在の時刻に変更します。 1 回; 3. F10 キーを押し、ポップアップ ダイアログ ボックスで [はい] を選択します; 4. ノートブックを再度開いて、通常どおり起動します。
