2017-02-03 16 views
0

xmlファイルを読み込み、PHPでいくつかの値を編集し、それらをcsvファイルに入れます。文字列の二重引用符を扱うPHPの関数

いくつかの値が次のようになります。

"Loremの、イプサム
" Loremのイプサム
"Loremのイプサム"
"Loremの、イプサム"
Loremの。 ST "イプサム "
"Loremの "テスト" イプサム"
"Loremの "テスト" IP;合計"


"Loremの "テスト" イプサム"
" Loremの" テイプサムイプサム
Loremの "テスト"

これらの値は、そのままCSVファイルに書き込む必要があります。

私はこのように、これらの値を編集できます。

  • "Loremのを、イプサム - > """ Loremのを。 "

    "Loremのイプサムイプサム - > """ Loremのイプサム"

    "Loremのイプサム" - > "" "Loremのイプサム" ""

    "Loremの;イプサム" - > "" "Loremの; ipsum "" "

    lorem;イプサム - > "Loremの;イプサム"

    Loremの "テスト" イプサム - > "Loremの "" テスト" "イプサム"

    "Loremの "テスト" イプサム" - > "" "Loremの "" テスト"」イプサム "

    "Loremの "TE; ST" イプサム" - > "" "Loremの "" TE; ST""

    "Loremの "テスト" イプサム" - > "" "Loremの "" テスト"」イプサム "" "

    "Loremの "テスト" IP;サム" - > "" "Loremの "" テスト"" IP;合計 ""」

しかし、この方法では、多くのif文が必要です。

簡単に扱えるPHP関数はありますか?

に関して、 ebody

+0

あなたのコードは何ですか? fyi、[fputcsv](http://php.net/manual/en/function.fputcsv.php)機能がありますが、これまでに試したことはありません。 –

+0

二重引用符をエスケープするための戦略は何ですか?それらを取り巻く特別な引用符を付けるだけですか?これは良い回避策のようには見えません。ほとんどの場合、より多くの問題が発生します。たとえば、入力テキストが次のようなものであるとします: '' lorem "" test ;; "ipsum" "" 'それから戦略は何でしょうか?ご覧のとおり、どの見積もりがコンテンツの一部であり、どの見積もりが「余分」なのかを判断することは不可能です。引用符を他の文字やシーケンスに置き換えたり、エスケープしたりすることをお勧めします(このように '' => \ "')。 RegExが役立つかもしれません:http://php.net/manual/en/function。preg-replace.php –

答えて

2

は)(にaddslashesを試してみてください。

詳細here

+0

しかし、私はcsvを開くと、\ "lorem \" test \ "ip; sum \"のような値があります。 – ebody

+0

引用符を使用して引用符をエスケープするために**必要な特別な理由はありますか?置換の例リストは一貫性がなく、問題を起こしがちです。バックスラッシュでエスケープしたり、他の文字で置き換えたりする方法があります。 –

関連する問題