直前に¥が付いていないカンマで区切る
直前に¥が付いていないカンマで区切る。
$str = preg_split('#(?<!\\\),#', $str);
使いドコロが不明ですが・・・「?<!」は応用でいろいろできそうですね。
ただし「preg_split」は「分割する」事しかやっていないので「\,」はそのまま取得されます。
「\」を削除したい場合は以下のように書くか、取得したあとに必要な部分だけ「\」を取る必要があります。
function splitText($str) { return array_map( create_function('$s','return preg_replace("#\\\\\,#",",",$s);'), preg_split('#(?<!\\\),#', $str) ); }
実行
$str = splitText("aaa,bb,cc\,dd,ee");
結果
Array ( [0] => aaa [1] => bb [2] => cc,dd [3] => ee )
部分的に削除
$str = preg_split('#(?<!\\\),#', $str); $str[3] = preg_replace('#\\\,#', ",", $str[3]);