php エディタ Xigua では、CSV ファイルをバイト単位で読み込む方法を紹介します。 CSV は、表形式データの保存と交換によく使用される一般的なデータ形式です。従来の方法では、ファイル操作関数を使用して CSV ファイルを 1 行ずつ読み取り、配列またはオブジェクトとして保存します。ただし、CSV ファイルをバイト単位で読み取ることで、大規模なデータ セットをより効率的に処理でき、メモリ使用量の点でより経済的になります。このメソッドは、fopen 関数を使用してファイルをバイナリ モードで開き、fread 関数を使用してファイルの内容を読み取ることで実装できます。読み取られたバイトは、データ分析および操作のために配列またはその他のデータ構造にさらに処理できます。この方法により、PHP の機能を活用して CSV ファイルを処理し、データ処理の効率を向上させることができます。
csvファイルを2Dバイトスライスに読み込むときに、奇妙な動作が発生しました。最初の 42 行は問題ありませんが、余分な行末がデータに挿入されているようで、事態が混乱します:
最初の 42 回の最初の行:
リーリー最初の行を 43 行の後に追加します:
リーリー問題を再現するための最小限のコード:
リーリー私が使用した CSV:
リーリーrow[][]byte には行ごとの CSV データが含まれると予想していました
すでに提案されているように、本当に encoding/csv を使用する必要があります。 #####。
言い換えれば、問題の原因は
bytes() 関数の上の godoc:
にあります。
リーリー
したがって、その後の
の呼び出しでは、返されたバイト スライスが変更される可能性があります。これを回避するには、 のようなバイトスライスをコピーする必要があります。
リーリー
以上がCSVをバイト単位で読み取るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。