Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使一个单词(因此是多个字符串)中的首字母和末字母大写_Php_String_Uppercase - Fatal编程技术网

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-它就在问题中
输出:你好,我的朋友们
非常感谢!我有一种感觉,我错过了一些小东西!
应该输入什么:你好,我的朋友们
生成什么?