Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中,是否有任何等效函数返回“X”位置的字符?_Php_String - Fatal编程技术网

在PHP中,是否有任何等效函数返回“X”位置的字符?

在PHP中,是否有任何等效函数返回“X”位置的字符?,php,string,Php,String,在PHP中是否有任何等效函数返回位置X处的字符 我查阅了文件,但没有找到任何。我正在寻找类似于: $charAtPosition20 = strCharAt(20, $myString); Nevermind找到它:) //如此明显 echo $myString{20}; 或: 您可以使用:$myString[20]有两种方法可以实现此目的: 使用方括号和索引直接访问指定位置的字符,如:$string[$index]或$string[1] 使用substr函数:string substr(s

在PHP中是否有任何等效函数返回位置
X
处的字符

我查阅了文件,但没有找到任何。我正在寻找类似于:

$charAtPosition20 = strCharAt(20, $myString);
Nevermind找到它:)

//如此明显

echo $myString{20};
或:


您可以使用:
$myString[20]

有两种方法可以实现此目的:

  • 使用方括号和索引直接访问指定位置的字符,如:
    $string[$index]
    $string[1]

  • 使用
    substr
    函数:
    string substr(string$string,int$start[,int$length])

    有关更多信息,请参阅

  • 简单易行的方法

    $string = 'Here is the text';
    echo $string{2};
    

    它返回位于位置2的字符“e”。

    您可以遍历每个字符的字符串。像这样

    $string = 'Here is the text';
    echo $string{0}; // output H
    echo $string{1}; // output e
    echo $string{2}; // output r
    

    为了指出我在网站上注意到的一个小警告:

    警告在内部,PHP字符串是字节数组。因此,使用数组括号访问或修改字符串不是多字节安全的,只能使用单字节编码的字符串(如ISO-8859-1)进行访问或修改


    该函数可以将字符串拆分为每个字符(或特定长度的子字符串)的数组,但也不能处理多字节字符串。但是,用户的评论提供了一些潜在的解决方案。

    公认的答案适用于单字节(ASCII)字符串,但适用于多字节(Unicode)字符串。对于这些,您需要使用
    mb
    功能–只需确保已安装并启用扩展

    要获取多字节字符串位置的字符,请执行以下操作:

    $char = mb_substr($string, $position, 1);
    

    substr
    类似,但对于多字节字符串,因此末尾的
    1
    只返回1个字符,但如果需要更多字符,可以相应地更改。

    从PHP6开始,{}语法已被弃用。建议使用方括号。正如其他人在这里的回复中所说的,最好使用[]而不是{}。如果您需要一个字符供将来的读者使用,第一种方法通常会更好:这适用于ASCII,但如果您计划处理多字节(Unicode)字符串,这就行不通了。请参阅我处理Unicode字符串的答案。
    $string = 'Here is the text';
    echo $string{0}; // output H
    echo $string{1}; // output e
    echo $string{2}; // output r
    
    $char = mb_substr($string, $position, 1);