で CSV ファイルを解析していますfgetcsv
。Magento インストールから CSV エクスポートを取得しました。ただし、解析可能ではありません。このようなエクスポートの問題のある行を次に示します。
200000,Samsung Galaxy S2,$399.00,8806085359376,null,送料無料,新品,在庫あり,Samsung,"Vivid‧Fast‧Slim 新しい GALAXY SII Plus はあなたの生活をさらにスマートにします! 4.3" SUPER AMOLED Plus 4.3" SUPER AMOLED Plus ディスプレイは、すでに優れている SUPER AMOLED をさらに一歩進めて、読みやすさの向上、よりスリムなデザイン、優れたバッテリー消費を提供し、あらゆるスマートフォンの最高の表示値を実現します. フルタッチ ディスプレイ サイズ: 4.3 インチ 解像度: 480 x 800 ピクセル プラットフォーム操作プラットフォーム: Android v4.1 (Jelly Bean) TOUCHWiZ v4.0 ユーザー インターフェイス (最大 7 ページのウィジェット デスクトップ)
問題は"
、ファイル内での略記inch
などの使用法です。
preg_replace
コンマが前後にないすべての二重引用符を ing するための RegEx を探しています。しかし、正規表現の知識が乏しく、有効な式を作成できません。これは私が解決策にかなり近いと思うものですが、それを機能させることはできません:
private static function _fixQuotesInString($string)
{
return preg_replace('/(?<!,)"|"(?!,)/', '"', $string);
}
私の限られた知識でそれを読むと、次のようになります。二重引用符が見つかった場合は、その前にコンマがなく、後にもコンマがないかどうかを確認し、そうであれば "に置き換えます。ただし、経験はそうではないことを示しています。
解決策を投稿する際に、RegExの「音声解説」を追加していただけると、理解できると思います。