【问题标题】:How to capitalize the last letter of each word in a string in PHP? [duplicate]如何在PHP中将字符串中每个单词的最后一个字母大写? [复制]
【发布时间】:2020-04-22 16:40:37
【问题描述】:

我想将函数参数中给定的字符串中每个单词的最后一个字母大写。

假设字符串是“你是 KiNd”。我想把它改成这样=“你是亲戚”

我尝试先将所有字符串放入lower,然后将其反转,然后将反转字符串的第一个字母放入Caps,然后再次反转它,但它不起作用。它将完整的字符串显示为小写字母。

【问题讨论】:

  • 不要发布代码图片。将代码复制/粘贴到问题本身中。
  • 标题与您的文本要求不同。
  • 我已经回滚到最后一个好的版本。一旦获得答案,请不要大幅改变问题的主题。

标签: php string letter capitalize


【解决方案1】:

您几乎有了答案,您只需先拨打strtolower() 电话。

function phrase(string $str = null){
    return strrev(ucwords(strrev(strtolower($str))));
}

echo phrase("yOu aRe KiNd");  // yoU arE kinD

【讨论】:

    【解决方案2】:

    需要先将字符串转为小写,然后再反转,大写,反转:

    $str =  "yOu aRe KiNd";
    echo strrev(ucwords(strrev(strtolower($str)))) . "\n";
    

    输出

    yoU arE kinD
    

    Demo on 3v4l.org

    另一种方法是使用preg_replace_callback,匹配单词末尾的字符,然后在回调中将其转换为大写:

    echo preg_replace_callback('/[a-z](?![a-z])/', function ($m) { return strtoupper($m[0]); }, strtolower($str));
    

    输出:

    yoU arE kinD
    

    Demo on 3v4l.org

    【讨论】:

      猜你喜欢
      • 2010-11-12
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 2010-12-05
      相关资源
      最近更新 更多