CSVをバイト単位で読み取る

PHPz
リリース: 2024-02-09 09:30:19
転載
429 人が閲覧しました

将 csv 读入字节

php エディタ Xigua では、CSV ファイルをバイト単位で読み込む方法を紹介します。 CSV は、表形式データの保存と交換によく使用される一般的なデータ形式です。従来の方法では、ファイル操作関数を使用して CSV ファイルを 1 行ずつ読み取り、配列またはオブジェクトとして保存します。ただし、CSV ファイルをバイト単位で読み取ることで、大規模なデータ セットをより効率的に処理でき、メモリ使用量の点でより経済的になります。このメソッドは、fopen 関数を使用してファイルをバイナリ モードで開き、fread 関数を使用してファイルの内容を読み取ることで実装できます。読み取られたバイトは、データ分析および操作のために配列またはその他のデータ構造にさらに処理できます。この方法により、PHP の機能を活用して CSV ファイルを処理し、データ処理の効率を向上させることができます。

質問内容

csvファイルを2Dバイトスライスに読み込むときに、奇妙な動作が発生しました。最初の 42 行は問題ありませんが、余分な行末がデータに挿入されているようで、事態が混乱します:

最初の 42 回の最初の行:

リーリー

最初の行を 43 行の後に追加します:

リーリー

問題を再現するための最小限のコード:

リーリー

私が使用した CSV:

リーリー

row[][]byte には行ごとの CSV データが含まれると予想していました

回避策

すでに提案されているように、本当に encoding/csv を使用する必要があります。 #####。 言い換えれば、問題の原因は

bytes() 関数の上の godoc: にあります。 リーリー したがって、その後の

scan()

の呼び出しでは、返されたバイト スライスが変更される可能性があります。これを回避するには、 のようなバイトスライスをコピーする必要があります。 リーリー

以上がCSVをバイト単位で読み取るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!