2

CSV を一括フィードとして取り込むアプリを作成しましたが、Mac 上の Excel で保存するときに "Windows カンマ区切り" と "カンマ区切り" として保存すると、CSV に違いがあることに気付きました。私のスクリプトは Windows バージョンしか解析できず、コードでこれを克服する方法がわかりません。

戻り値の行が異なることがわかりました:http://cl.ly/image/3x463O3b0A1s

Mac Excel のファイルタイプ リストは次のとおりです: http://cl.ly/image/2F110Q1X0V0i

私はそれを次のような行に分解します:

$lines = explode("\n", $content);

通常の CSV では行を認識しませんが、Windows バージョンでは期待どおりに動作します (図を参照してください)。これを修正するにはどうすればよいですか?

4

2 に答える 2

3

前述のように、使用する必要がありますfgetcsv()... ただし、その機能を使用して Mac で生成された CSV にはまだ問題がありました。

PHP が行末を正しく検出していませんでした。ini_set("auto_detect_line_endings", true);この問題を解決するには、CSV ファイルを処理する関数を追加する必要がありました。

于 2012-10-22T21:01:06.307 に答える
0

コメントに記載されているように、ネイティブ PHP 関数を使用してくださいfgetcsv():str_getcsv()

于 2012-10-22T20:57:20.290 に答える