5

以下のように大文字が不適切な文字列が散らばっています。

$str = "tHis iS a StRinG thAt NeEds ProPer CapiTilization";
$newStr = ucfirst($str);
echo $newStr;

各単語の最初の文字を大文字にし、誤って大文字になった文字を小文字にするにはどうすればよいですか? 文字列を完全にタイトルケースにする必要があります。

低く変更してから使用できることはわかってucwords()いますが、これを行うためのより短い方法はありますか?

4

3 に答える 3

7

各単語の最初の文字を大文字にし、誤って大文字になった文字を小文字にするにはどうすればよいですか?

ucwords()各単語の最初の文字を大文字にします。と組み合わせて、strtolower()最初にすべてを小文字にすることができます。

例えば:

ucwords(strtolower('HELLO WORLD!')); // Hello World!
于 2015-09-14T12:15:55.587 に答える
1

私がすでに提案した以前の質問がmb_convert_case()ありますが、その質問のサンプルテキストはかなり光沢がありません.

文字列内の複数の単語に対してタイトルの大文字と小文字を区別する単一のネイティブ関数があり、マルチバイト セーフです。すべての単語の先頭文字を大文字にする前に文字列をすべて小文字にする必要がないため、これは優れたソリューションです。

コード: (デモ)

$string = "tHis iS a StRinG thAt NeEds ProPer CapiTilization";
echo mb_convert_case($string, MB_CASE_TITLE, 'UTF-8');

出力:

This Is A String That Needs Proper Capitilization

Laravel には、使用できるヘルパー メソッドも用意されていますtitle()

use Illuminate\Support\Str;

$converted = Str::of('a nice title uses the correct case')->title();

// A Nice Title Uses The Correct Case

ソース: https://laravel.com/docs/8.x/helpers#method-fluent-str-title

于 2021-08-13T07:33:37.757 に答える
0

はい、2 つの関数ucwords()strtolower()で実行できます。

<?php
    $str = "tHis iS a StRinG thAt NeEds ProPer CapiTilization";
    $newStr = ucwords(strtolower($str));
    echo $newStr;
?>

説明:

strtolower()すべての文字列を小文字にします。

ここで、ucwords()結果の文字列に適用すると、必要な出力を生成するすべての世界の首都の最初の文字が作成されます。

于 2015-09-14T12:16:22.793 に答える