将php字符串转换为Title Case

时间:2014-11-22 08:58:57

标签: php string title-case

我想将输入字符串转换为Title Case。

所以,如果我有一个输入字符串

Name: MR. M.A.D KARIM

我想生成以下输出字符串

Name: M.A.D Karim

如果我有一个输入字符串

Address: 12/A, ROOM NO-B 13

我想制作

Address: 12/A, Room No-B 13

我希望我的输出字符串在任何空白字符之后以及以下任何字符之后都有大写字母:.-/

我目前的解决方案是

ucwords(strtolower($string));

但它会在.-/小写之后留下字符,而我希望它们是大写的。

2 个答案:

答案 0 :(得分:4)

这应该适合你:

<?php


    $str = "Name: MR. M.A.D KARIM";
    $result = "";

    $arr = array();
    $pattern = '/([;:,-.\/ X])/';
    $array = preg_split($pattern, $str, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);

    foreach($array as $k => $v)
        $result .= ucwords(strtolower($v));

    //$result = str_replace("Mr.", "", $result); ->If you don't want Mr. in a String
    echo $result;



?>

输入:

Name: MR. M.A.D KARIM
Address: 12/A, ROOM NO-B 13

输出:

Name: M.A.D Karim
Address: 12/A, Room No-B 13

答案 1 :(得分:0)

使用Stringy enter image description here

composer.json

"require": {
    "voku/stringy": "~5.0"
}

PHP

Stringy::create('string')->toTitleCase()