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

时间:2009-07-14 23:15:32

标签: php string

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

我浏览了文档,但找不到任何文档。我正在寻找类似的东西:

$charAtPosition20 = strCharAt(20, $myString);

8 个答案:

答案 0 :(得分:30)

您可以使用:$myString[20]

答案 1 :(得分:5)

有两种方法可以实现这一目标:

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

  2. 使用substr功能:string substr ( string $string , int $start [, int $length ] )
    有关详细信息,请参阅 http://us2.php.net/manual/en/function.substr.php

答案 2 :(得分:3)

指出我在Strings page of the manual注意到的一个小警告:

  

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

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

答案 3 :(得分:0)

没关系发现它:)

echo $str[1];

//如此明显

答案 4 :(得分:0)

echo $myString{20};

或:

substr($mystring, 20, 1)

答案 5 :(得分:0)

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

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

...

答案 6 :(得分:0)

可接受的答案对单字节(ASCII)字符串有效,但对于多字节(Unicode)字符串无效。对于这些,您需要使用mb_函数–只需确保已安装并启用mbstring扩展名即可。

要在多字节字符串的位置获取字符:

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

mb_substrsubstr相似,但对于多字节字符串,因此末尾的1仅返回1个字符,但是如果需要更多字符,则可以相应地更改。 / p>

答案 7 :(得分:-3)

简单方便!

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

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