我有一些文字,我需要每个首字母大写。但是有些词是全部大写的,我希望忽略这些词。
$foo = 'product manufacturer for CAMERON TRAILERS';
$foo = ucwords($foo);
我需要输出如下:
Product Manufacturer For CAMERON TRAILERS.
这可能吗?
答案 0 :(得分:1)
第二个想法,因为ucfirst
和ucwords
都不会将大写字符转换为小写字母;对于这种情况,ucwords
应该没问题。我已经更改了下面的功能,因此它会使更具规范性,这取决于你如何解释问题。
您需要定义自己的功能才能执行此操作; PHP在其标准库中没有此行为的功能(参见上面的注释)。
// Let's create a function, so we can reuse the logic
function sentence_case($str){
// Let's split our string into an array of words
$words = explode(' ', $str);
foreach($words as &$word){
// Let's check if the word is uppercase; if so, ignore it
if($word == strtoupper($word)){
continue;
}
// Otherwise, let's make the first character uppercase
$word = ucfirst(strtolower($word));
}
// Join the individual words back into a string
return implode(' ', $words);
}
echo sentence_case('product manufacturer for CAMERON TRAILERS');
// "Product Manufacturer For CAMERON TRAILERS"
答案 1 :(得分:0)
在您期望这样的Product Manufacturer For Cameron Trailers
$foo = 'product manufacturer for CAMERON TRAILERS';
echo $foo = ucwords(strtolower($foo));
请看http://www.php.net/manual/pt_BR/function.ucwords.php。 ucwords不能翻译高级单词
<?php
$foo = 'hello world!';
$foo = ucwords($foo); // Hello World!
$bar = 'HELLO WORLD!';
$bar = ucwords($bar); // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>