1

基本的な csv ファイルの読み取りはできますが、Mac プラットフォームに保存された csv を読み取ることができません。

からの問題であることは理解しましたが、Different operating system families have different line-ending conventions修正できません。

ファイルをバイナリモードで開くという提案を見つけましたが、うまくいきませんでした。

コードはかなり基本的なものです:

file opening:

$this->fileHandler = fopen($this->filename, 'rb');

read line:

$columns = fgetcsv(
    $this->fileHandler,
    $this->length,
    $this->delimiter,
    $this->enclosure
);

両方のファイルを Notepad++ で開いたところ、Mac ファイル\nには行末の文字が欠けているように見えますが、そこに\rはあります。

4

2 に答える 2

3

を使用する前にauto_detect_line_endingsオプションを設定します。truefgetcsv()

ini_set("auto_detect_line_endings", true);
// rest of your code 
于 2013-04-26T15:24:04.087 に答える
0

これが Mac に当てはまるかどうかはわかりませんが、テキスト ファイルを Windows から一部の Linux フレーバーに移動するときに、dos2unix filenameファイルに対してコマンドを実行すると、フォーマットが修正されることはわかっています。Macにも同様の機能があるのではないでしょうか?

編集:多分これが役立つかもしれません: http://schmeits.wordpress.com/2010/08/26/dos2unix-alternative-those-darn-m-characters/

于 2013-04-26T15:16:05.193 に答える