1

これは、mysql db を作成するために使用するファイルの例です。区切り文字は「,」ですが、単列の記述では「,」が存在します。

Header: City State Zip Description
Los Angeles, California , 98005, "welcome to california, were are living the dream","Please stay, a while."

問題は、「引用符」の記述に区切り文字が含まれているため、ファイルに追加の列が含まれることです。

正規表現または preg_match 関数で問題を解決できると誰かに言われました。誰か教えてください。

4

3 に答える 3

7

車輪を再発明する必要はありません。PHP にはすでに必要なものがfgetcsvにあります。

于 2009-04-14T21:34:53.667 に答える
1

これは、CSV (またはカンマ区切り値) 形式の標準である、かなりよく解決された問題です。CSV の解析に取り組む最も簡単な方法は、既にテスト済みで確実に動作する CSV ライブラリを使用することです。CSV パーサーは、ほぼすべてのプログラミング言語に対応しています。思いもよらなかった特殊なケースがいくつかあるため、ほとんどの場合、既存のライブラリを使用する価値があります。

このページは、CSV 解析の優れたリソースです。

http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm

于 2009-04-14T21:11:35.360 に答える
0

各フィールドには、次のような正規表現が必要です。

("(?:[^"]+|"")*"|[^,]+)

それは2つの選択肢です。1 つ目は、二重引用符の後に、別の代替のゼロ回以上の繰り返しのパターンが続くものと一致します。これは、二重引用符以外の文字列または二重引用符のペアのいずれかです (二重引用符が二重になっている場合に文字列に二重引用符が表示されるようにするため)。 . 2 番目の選択肢は、二重引用符のないフィールドに一致し、コンマ以外の文字列に一致します。次に、これらをコンマ マッチと組み合わせます。

于 2009-04-14T21:13:41.487 に答える