Удалите все пробелы после ',' и сделайте первую букву заглавной в CSV с PHP - PullRequest
1 голос
/ 30 июня 2010

У меня такой CSV.

john,joy, anna, Lucy Bravo,boy

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

John,Joy,Anna,Lucy Bravo,Boy

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

Ответы [ 3 ]

3 голосов
/ 30 июня 2010

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

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 с, но это зависит от вас

2 голосов
/ 30 июня 2010

Используйте 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);
}
2 голосов
/ 30 июня 2010

Используйте str_getcsv, чтобы разбить строку на массив. Зацикливание массива и использование trim () или ltrim () и ucfirst () для каждого значения.

http://us.php.net/manual/en/function.str-getcsv.php

http://us.php.net/manual/en/function.trim.php

http://us.php.net/manual/en/function.ltrim.php

http://us.php.net/manual/en/function.ucfirst.php

...