Я чувствую себя очень глупо из-за того, что не могу понять это, но я просто не могу этого понять. Мне нужно заменить строку регулярного выражения шаблоном, я нашел два примера, как это сделать, но они, честно говоря, еще больше запутали меня, чем когда-либо.
Это моя текущая попытка:
$string = '26 14:46:54",,"2011-08-26 14:47:02",8,0,"BUSY","DOCUMENTATION","1314370014.18","","","61399130249","7466455647","from-internal","""Oh Snap"" <61399130249>","SIP/1037-00000014","SIP/CL-00000015","Dial","SIP/CL/61436523277,45","2011-08-26 14:47:06","2011-08-26 14:47:15","2011-08-26 ';
$pattern = '["SIP/CL/\d*?,\d*?",]';
$replacement = '"SIP/CL/\1|\2",';
$string = preg_replace($pattern, $replacement, $string);
print($string);
Но это просто заменяет \1
и \2
пробелами. Так что, очевидно, я не понимаю всей концепции.
Что я хочу в конце, так это изменить:
this: "SIP/CL/61436523277,45"
to: "SIP/CL/61436523277|45"
Эта запятая в плохо отформатированном CSV-файле сбивает с толку некоторые другие мои скрипты.
fgetcsv
для этого , Вы не? Илиstr_getcsv
, если это строка. - person Wrikken   schedule 18.01.2012fgetcsv
также не считывает весь файл в память, а только построчно;) - person Wrikken   schedule 18.01.2012