如何在php中获取字符串的首字符

wvyml7n5  于 2023-01-04  发布在  PHP
关注(0)|答案(7)|浏览(186)

我需要得到给定字符串的第一个字符。这里我在会话变量中有一个名称。我将变量值传递给substr以获得字符串的第一个字符。但我不能。
我想得到那个字符串的第一个字符。
例如无名氏。我想得到字符串j的第一个字符。我怎样才能用php得到它?

<?php
      $username = $_SESSION['my_name'];
      $fstchar = substr($username, -1);
  ?>
shyt4zoc

shyt4zoc1#

对于单字节编码(二进制)字符串:

substr($username, 0, 1);
// or 
$username[0] ?? null;

对于多字节编码字符串,如UTF-8:

mb_substr($username, 0, 1);
xcitsw88

xcitsw882#

按耐用性分类的三种溶液

1.一个月一个月

它考虑了文本编码。例如:

$first_character = mb_substr($str, 0, 1)

2.一个月一个月

示例:

$first_character = substr($str, 0, 1);

3.使用括号([]

避免it throws a notice in PHP 7.x and a warning in PHP 8.x if the string is empty。例如:

$first_character = $str[0];
xam8gpfp

xam8gpfp3#

字符串可以看作Char Arrays,访问数组位置的方法是使用[]操作符,因此使用$str[0]完全没有问题(而且我敢肯定它比substr方法快得多)。

$fstchar = $username[0];

比所有方法都快

balp4ylt

balp4ylt4#

PHP中的字符串类似于数组,所以简单地

$username[0]
u3r8eeie

u3r8eeie5#

如果问题出在西里尔字母表上,那么你需要这样使用它:

mb_substr($username, 0, 1, "UTF-8");
mcvgt66p

mcvgt66p6#

我在php方面没有太多的经验,但这可能会对你有所帮助:substr

wbgh16ku

wbgh16ku7#

PHP 8中,如果你只需要检查给定字符串的第一个字符是否等于某个值,你可以这样做:

if (str_starts_with($s, $characterToCheck)) {
    // DO SOMETHING
}

相关问题