Php 如何使一个单词(因此是多个字符串)中的首字母和末字母大写
我目前正在努力完成的是使一个单词的首字母和末字母大写 目前这是我的职能:Php 如何使一个单词(因此是多个字符串)中的首字母和末字母大写,php,string,uppercase,Php,String,Uppercase,我目前正在努力完成的是使一个单词的首字母和末字母大写 目前这是我的职能: function ManipulateStr($input){ return strrev(ucwords(strrev($input))); } 然而,这只会将每个单词的最后一个字母改为大写,现在我正努力思考如何将每个单词的第一个字母大写 例如: 输入:你好,我的朋友们 输出:朋友们好 也许我必须使用substr?但是,如果我想让它适用于多个单词或单个单词,那该怎么办呢?第一次使用strtolower将字符串全
function ManipulateStr($input){
return strrev(ucwords(strrev($input)));
}
然而,这只会将每个单词的最后一个字母改为大写,现在我正努力思考如何将每个单词的第一个字母大写
例如:
输入:你好,我的朋友们
输出:朋友们好
也许我必须使用substr?但是,如果我想让它适用于多个单词或单个单词,那该怎么办呢?第一次使用
strtolower
将字符串全部小写,然后使用函数ucwords
将第一个字符大写,然后再次使用strev
并将ucwords
应用于将其他第一个字符大写。
然后最后使用strev
返回第一个和最后一个字符大写的原始字符串
更新的功能
function ManipulateStr($input){
return strrev(ucwords(strrev(ucwords(strtolower($input)))));
}
如果您正在寻找一个比提供的速度快得惊人的函数(大约快20%),请尝试以下方法:
function ManipulateStr($input)
{
return implode(
' ', // Re-join string with spaces
array_map(
function($v)
{
// UC the first and last chars and concat onto middle of string
return strtoupper(substr($v, 0, 1)).
substr($v, 1, (strlen($v) - 2)).
strtoupper(substr($v, -1, 1));
},
// Split the input in spaces
// Map to anonymous function for UC'ing each word
explode(' ', $input)
)
);
// If you want the middle part to be lower-case then use this
return implode(
' ', // Re-join string with spaces
array_map(
function($v)
{
// UC the first and last chars and concat onto LC'ed middle of string
return strtoupper(substr($v, 0, 1)).
strtolower(substr($v, 1, (strlen($v) - 2))).
strtoupper(substr($v, -1, 1));
},
// Split the input in spaces
// Map to anonymous function for UC'ing each word
explode(' ', $input)
)
);
}
返回ucwords(strrev(ucwords(strrev($input)))代码>您想要的输出请..@FrayneKonok-它就在问题中输出:你好,我的朋友们
非常感谢!我有一种感觉,我错过了一些小东西!应该输入什么:你好,我的朋友们
生成什么?