Php 如何使字符串的前2个字符大写?

Php 如何使字符串的前2个字符大写?,php,string,Php,String,如何对字符串的前两个字符使用PHP strtoupper函数?或者还有其他功能吗 因此字符串“hello”或“hello”必须转换为“hello” $txt = strtoupper( substr( $txt, 0, 2 ) ).substr( $txt, 2 ); 这也适用于长度小于2个字符的字符串。仅适用于第一个字符,但也适用于: $str = ucfirst($str); $str[1] = strtoupper($str[1]); 备注:这是可行的,但如果未定义偏移量1,则会在较小

如何对字符串的前两个字符使用PHP strtoupper函数?或者还有其他功能吗

因此字符串“hello”或“hello”必须转换为“hello”

$txt = strtoupper( substr( $txt, 0, 2 ) ).substr( $txt, 2 );
这也适用于长度小于2个字符的字符串。

仅适用于第一个字符,但也适用于:

$str = ucfirst($str);
$str[1] = strtoupper($str[1]);

备注:这是可行的,但如果未定义偏移量1,则会在较小的字符串上收到通知,因此不安全,空字符串甚至会转换为数组。因此,它只是显示一些选项。

假设您只需要执行一个单词:

$ucfirsttwo = strtoupper(substr($word, 0, 2)) . substr($word, 2);
基本上,提取前两个字符和大写字母,然后附加其余字符

如果您需要处理字符串中的多个单词,那么它会变得有点难看


哦,如果您使用的是多字节字符,请在这两个函数的前面加上mb_uu以获得多字节版本。

这应该可以
strotupper(substr($target,0,2))。substr($target,2)
其中$target是您的“hello”或任何东西。

在此处使用可能会很有趣:

$str = substr_replace($str, strtoupper($str[0].$str[1]), 1, 2);
$string = "hello";
$string{0} = strtoupper($string{0});
$string{1} = strtoupper($string{1});

var_dump($string);

//output: string(5) "HEllo"
$str = 'HELLO';
echo preg_replace('/^(\w{1,2})/e', 'strtoupper(\\1)', strtolower($str));
编辑:建议您不要使用此方法。从:

不鼓励使用此修饰符,因为它很容易引入安全漏洞:

<?php
$html = $_POST['html'];

// uppercase headings
$html = preg_replace(
    '(<h([1-6])>(.*?)</h\1>)e',
    '"<h$1>" . strtoupper("$2") . "</h$1>"',
    $html
);

无论您选择什么答案,请确保您的字符串长度至少为两个字符!有时简单明了的解决方案是最好的。
<?php
$html = $_POST['html'];

// uppercase headings
$html = preg_replace_callback(
    '(<h([1-6])>(.*?)</h\1>)',
    function ($m) {
        return "<h$m[1]>" . strtoupper($m[2]) . "</h$m[1]>";
    },
    $html
);
$str = 'HELLO';
echo preg_replace_callback(
    '/^(\w{1,2})/'
  , function( $m )
    {
      return strtoupper($m[1]);
    }
  , strtolower($str)
);