これが私がやろうとしていることです。ページにタイトルがあります。各文字列の最初の単語の最後の文字を大文字にしようとしています
例:
こんにちは
こんにちは元気ですか
1つの単語で機能させることはできますが、複数の単語がある場合はどうすればよいかわかりません。どんな助けでも素晴らしいでしょう!!
本当にありがとう!
これが私がやろうとしていることです。ページにタイトルがあります。各文字列の最初の単語の最後の文字を大文字にしようとしています
例:
こんにちは
こんにちは元気ですか
1つの単語で機能させることはできますが、複数の単語がある場合はどうすればよいかわかりません。どんな助けでも素晴らしいでしょう!!
本当にありがとう!
これを試して
<?php
$title = "Hello World";
list($firstword, $rest) = explode(" ", $title, 2);
$firstword = strrev(ucfirst(strrev($firstword)));
$title = $firstword . " " . $rest;
print $title;
関数の詳細については、 explode、strrev、list、ucfirstを参照してください。
これが 1 つの単語でどのように機能するかを知っているので、最初の単語を取得してからアルゴリズムを配置するだけで済みます。
preg_replace_callback
てみてください"/^(\w+)/"
preg_replace_callback: http://php.net/manual/en/function.preg-replace-callback.php
更新 - 作業コード:
$string = "This is a test";
$string = preg_replace_callback(
'/^(\w+)/',
create_function(
'$matches',
'return yourUCLastAlgorithm($matches[0]);'
),
$string
);
echo $string;
UPDATE2 - preg_replace と e 修飾子を使用:
$string = "This is a test";
$string = preg_replace(
'/^(\w+)/e',
'yourUCLastAlgorithm("$1")',
$string
);
echo $string;
これを試して:
$string = preg_replace('/^([ ]+)?([^ ]*)([a-z])?(.*)?$/i', "$1.$2.strtoupper($3).$4", $string);