У меня есть два типа строк, 'hello', 'helloThere'.
Я хочу изменить их так, чтобы они читались как: 'Hello', 'Hello There'
в зависимости от случая.
Что было бы хорошим способом сделать это?
Спасибо
У меня есть два типа строк, 'hello', 'helloThere'.
Я хочу изменить их так, чтобы они читались как: 'Hello', 'Hello There'
в зависимости от случая.
Что было бы хорошим способом сделать это?
Спасибо
вы можете использовать ucwords
, как все говорили... чтобы добавить пробел в helloThere
, вы можете сделать $with_space = preg_replace('/[A-Z]/'," $0",$string);
, затем ucwords($with_space);
Чтобы преобразовать CamelCase в другие слова:
preg_replace('/([^A-Z])([A-Z])/', "$1 $2", $string)
Чтобы заглавными буквами все слова первые буквы:
ucwords()
Итак вместе:
ucwords(preg_replace('/([^A-Z])([A-Z])/', "$1 $2", $string))
Используйте функцию ucwords
:
Возвращает строку с заглавной буквой первого символа каждого слова в строке str, если этот символ является буквенным.
Определение слова — это любая строка символов, которая находится сразу после пробела (это: пробел, перевод страницы, новая строка, возврат каретки, горизонтальная табуляция и вертикальная табуляция).
Это не будет разделять слова, которые слились вместе — вам придется добавлять пробелы в строку по мере необходимости, чтобы эта функция работала.
helloThere
- person Ties; 05.08.2010
Используйте функцию ucwords
:
echo ucwords('hello world');
PHP имеет множество функций для работы со строками. ucfirst()
сделает это за вас.
http://ca3.php.net/manual/en/function.ucfirst.php
использовать укворды
<?php
$foo = 'hello world';
$foo = ucwords($foo); // Hello world
$bar = 'BONJOUR TOUT LE MONDE!';
$bar = ucwords($bar); // HELLO WORLD
$bar = ucwords(strtolower($bar)); // Hello World
?>
Чтобы убедиться, что он работает на других языках, может быть хорошей идеей реализовать UTF-8. Я использую это доказательство водонепроницаемости для любых языков в моих установках WordPress.
$str = mb_ucfirst($str, 'UTF-8', true);
Это сделает первую букву прописной, а все остальные строчными. Если для третьего аргумента установлено значение false (по умолчанию), остальная часть строки не обрабатывается. Тем не менее, кто-то здесь может предложить аргумент для повторного использования самой функции и заглавных букв каждого слова после первого, чтобы быть более точным ответом на вопрос.
// Extends PHP
if (!function_exists('mb_ucfirst')) {
function mb_ucfirst($str, $encoding = "UTF-8", $lower_str_end = false) {
$first_letter = mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding);
$str_end = "";
if ($lower_str_end) {
$str_end = mb_strtolower(mb_substr($str, 1, mb_strlen($str, $encoding), $encoding), $encoding);
} else {
$str_end = mb_substr($str, 1, mb_strlen($str, $encoding), $encoding);
}
$str = $first_letter . $str_end;
return $str;
}
}
/ Лундман