0

これが私がやろうとしていることです。ページにタイトルがあります。各文字列の最初の単語の最後の文字を大文字にしようとしています

例:

こんにちは

こんにちは元気ですか

1つの単語で機能させることはできますが、複数の単語がある場合はどうすればよいかわかりません。どんな助けでも素晴らしいでしょう!!

本当にありがとう!

4

3 に答える 3

1

これを試して

<?php

    $title                  = "Hello World";
    list($firstword, $rest) = explode(" ", $title, 2);
    $firstword              = strrev(ucfirst(strrev($firstword)));
    $title                  = $firstword . " " . $rest;

    print $title;

関数の詳細については、 explodestrrevlistucfirstを参照してください。

于 2011-08-01T08:44:32.173 に答える
1

これが 1 つの単語でどのように機能するかを知っているので、最初の単語を取得してからアルゴリズムを配置するだけで済みます。

  1. 試しpreg_replace_callbackてみてください"/^(\w+)/"
  2. コールバック メソッド内の最後の文字を置き換えます。

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;
于 2011-08-01T08:45:01.403 に答える
-1

これを試して:

$string = preg_replace('/^([ ]+)?([^ ]*)([a-z])?(.*)?$/i', "$1.$2.strtoupper($3).$4", $string);
于 2011-08-01T08:46:05.357 に答える