2013-05-10 35 views
2

代替雙引號之間的逗號我有這樣使用的preg_replace

Number,Name,UG College,UG University,PG College,PG University 
1100225,Lakshmin,pkrrrr College,"PKRRRRR University, Choice",nandhaaaaa,"Nandhaa University, Kumali" 

csv文件閱讀時我想只更換內部雙引號逗號的文件。

在此先感謝。

回答

2
$string = '1100225,Lakshmin,pkrrrr College,"PKRRRRR University, Choice",nandhaaaaa,"Nandhaa University, Kumali"'; 

$string = preg_replace_callback(
     '|"[^"]+"|', 
     create_function(
      // single quotes are essential here, 
      // or alternative escape all $ as \$ 
      '$matches', 
      'return str_replace(\',\',\'*comma*\',$matches[0]);' 
     ),$string); 
$array = explode(',',$string); 
$array = str_replace('*comma*',',',$array); 
print_r($array);  
exit; 
+0

超級。優秀。 – 2013-05-13 09:32:11

+0

它假定字符串是在什麼編碼? – Pacerier 2015-02-05 03:51:48

+0

preg函數得到一個'u'修飾符來設置UTF8,參見http://php.net/manual/en/reference.pcre.pattern.modifiers.php其他函數都是二進制安全的 – 2015-02-05 10:22:32