我需要得到给定字符串的第一个字符。这里我在会话变量中有一个名称。我将变量值传递给substr以获得字符串的第一个字符。但我不能。我想得到那个字符串的第一个字符。例如无名氏。我想得到字符串j的第一个字符。我怎样才能用php得到它?
substr
j
<?php $username = $_SESSION['my_name']; $fstchar = substr($username, -1); ?>
shyt4zoc1#
对于单字节编码(二进制)字符串:
substr($username, 0, 1); // or $username[0] ?? null;
对于多字节编码字符串,如UTF-8:
mb_substr($username, 0, 1);
xcitsw882#
它考虑了文本编码。例如:
$first_character = mb_substr($str, 0, 1)
示例:
$first_character = substr($str, 0, 1);
[]
避免it throws a notice in PHP 7.x and a warning in PHP 8.x if the string is empty。例如:
$first_character = $str[0];
xam8gpfp3#
字符串可以看作Char Arrays,访问数组位置的方法是使用[]操作符,因此使用$str[0]完全没有问题(而且我敢肯定它比substr方法快得多)。
$fstchar = $username[0];
比所有方法都快
balp4ylt4#
PHP中的字符串类似于数组,所以简单地
$username[0]
u3r8eeie5#
如果问题出在西里尔字母表上,那么你需要这样使用它:
mb_substr($username, 0, 1, "UTF-8");
mcvgt66p6#
我在php方面没有太多的经验,但这可能会对你有所帮助:substr
wbgh16ku7#
在PHP 8中,如果你只需要检查给定字符串的第一个字符是否等于某个值,你可以这样做:
if (str_starts_with($s, $characterToCheck)) { // DO SOMETHING }
7条答案
按热度按时间shyt4zoc1#
对于单字节编码(二进制)字符串:
对于多字节编码字符串,如UTF-8:
xcitsw882#
按耐用性分类的三种溶液
1.一个月一个月
它考虑了文本编码。例如:
2.一个月一个月
示例:
3.使用括号(
[]
)避免it throws a notice in PHP 7.x and a warning in PHP 8.x if the string is empty。例如:
xam8gpfp3#
字符串可以看作Char Arrays,访问数组位置的方法是使用[]操作符,因此使用$str[0]完全没有问题(而且我敢肯定它比substr方法快得多)。
比所有方法都快
balp4ylt4#
PHP中的字符串类似于数组,所以简单地
u3r8eeie5#
如果问题出在西里尔字母表上,那么你需要这样使用它:
mcvgt66p6#
我在php方面没有太多的经验,但这可能会对你有所帮助:substr
wbgh16ku7#
在PHP 8中,如果你只需要检查给定字符串的第一个字符是否等于某个值,你可以这样做: