2010-06-30 2 views
1

У меня такой CSV, как это.Удалите все пробелы после ',' и сделайте первую букву в верхнем регистре в CSV с PHP

john,joy, anna, Lucy Bravo,boy 

Я хочу удалить пробел после ',', если он существует. А также сделайте первое письмо после буквы «,», чтобы быть заглавной, если это уже не столица. То есть это должно быть так:

John,Joy,Anna,Lucy Bravo,Boy 

Только пробелы после ',' должны идти. Я пробовал себя. Но все провалилось. Надеюсь, PHP сможет решить эту проблему.

ответ

2

Использование trim() и ucfirst().

Вот модифицированный пример из документации:

$row = 1; 
if (($handle = fopen("test.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $num = count($data); 
     echo "<p> $num fields in line $row: <br /></p>\n"; 
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      echo ucfirst(trim($data[$c])) . "<br />\n"; 
     } 
    } 
    fclose($handle); 
} 
3

Вы можете использовать регулярные выражения, но это, вероятно, проще всего разбить его на массив и работать на каждой записи:

function fix_entry($str) { 
    return ucfirst(ltrim($str)); 
} 

$str = 'john,joy, anna, Lucy bravo,boy'; 
$fixed = implode(',', array_map(fix_entry, explode(',', $str))); 

Если вы против сделать функцию, которую вы могли бы просто использовать два array_map сек , но это зависит от вас