私はこのようなCSVを持っています。
john,joy, anna, Lucy Bravo,boy
「、」の後の空白が存在する場合は削除したい。また、「,」の後の最初の文字が大文字でない場合は、大文字にします。つまり、次のようになります。
John,Joy,Anna,Lucy Bravo,Boy
',' の後の空白のみが必要です。私は自分自身を試しました。しかし、すべて失敗しました。PHPがこれを解決できることを願っています。
私はこのようなCSVを持っています。
john,joy, anna, Lucy Bravo,boy
「、」の後の空白が存在する場合は削除したい。また、「,」の後の最初の文字が大文字でない場合は、大文字にします。つまり、次のようになります。
John,Joy,Anna,Lucy Bravo,Boy
',' の後の空白のみが必要です。私は自分自身を試しました。しかし、すべて失敗しました。PHPがこれを解決できることを願っています。
正規表現を使用することもできますが、配列に分割して各エントリを操作するのがおそらく最も簡単です。
function fix_entry($str) {
return ucfirst(ltrim($str));
}
$str = 'john,joy, anna, Lucy bravo,boy';
$fixed = implode(',', array_map(fix_entry, explode(',', $str)));
関数を作成することに反対する場合は、 を 2 つだけ使用できますがarray_map
、それはあなた次第です
str_getcsv を使用して、行を配列に分割します。配列をループし、各値に対して trim() または ltrim() および ucfirst() を使用します。
http://us.php.net/manual/en/function.str-getcsv.php
http://us.php.net/manual/en/function.trim.php
ドキュメントから変更された例を次に示します。
$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);
}