PHP_PHP チュートリアルで大きなファイルを読み取るための SplFileObject クラスの使用方法の概要
ロードされたファイルが数百MBなど特に大きい場合、それがGBに達するとパフォーマンスが低下します。では、PHPで大きなファイルを処理するための関数またはクラスはありますか? 答えは「はい」です。
PHP は本当に「オブジェクト指向」になってきており、元の基本的な SPL メソッドのいくつかが次々とクラスを実装し始めています。
PHP 5.1.0 以降、SPL ライブラリには 2 つの標準ファイル操作クラス、SplFileObject と SplFileInfo が追加されました。 SplFileInfo は PHP 5.1.2 以降で実装されています。
文字通りの意味から、SplFileObject は SplFileInfo よりも強力であることがわかります。
はい、SplFileInfo は、ファイル サイズ、ファイル アクセス時間、ファイル変更時間、サフィックス名、その他の値など、ファイルの一部の属性情報を取得するためにのみ使用され、SplFileObject は SplFileInfo のこれらの機能を継承します。
*/
function getFileLines($filename, $startLine = 1, $endLine=50, $method='rb') {
$content = array();
$count = $endLine - $startLine;
// PHP のバージョンを確認します (SplFileObject を使用しているため、PHP>=5.1.0)
if(version_compare(PHP_VERSION, '5.1.0', '> =')){
out out out - ‐ ‐ ‐ ‐ w- but($ i = 0; $ i< = $ count; ++ $ i){
next();//次の行
for ($i=1;$i<$startLine;++$i) {// 前の $startLine 行をスキップします
+$ i) {$ $ 競合 [] = fgets ($ fp); // ファイル行の内容を読み込みます}
fclose ($ fp);
Return array_filter ($ content);上に追加: !$fp->eof() または !feof($fp) この判断を追加すると効率に影響するため、自分で追加してください。多くの行の実行時間をテストするとわかります。ここに追加する必要はまったくありません。
上記の関数から、特にファイル行数が非常に多く、次のコンテンツをフェッチする必要がある場合、SplFileObject を使用する方が以下の fgets よりもはるかに高速であることがわかります。 fgets には 2 つのループが必要で、$endLine 回ループする必要があります。
この方法には多大な労力がかかり、最も効率的な方法を見つけるために多くの中国語の書き方をテストしました。改善すべき点があると思われる方がいらっしゃいましたら、ぜひお知らせください。
使用して、行 35270 ~ 35280 の内容を返します:
コードをコピーします
コードは次のとおりです:
echo '
';<br>var_dump(getFileLines('test.php',35270, 35280)); <br>エコー '';
http://www.bkjia.com/PHPjc/751511.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/751511.html

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
