是否有任何等效函数返回PHP中位置X
的字符?
我浏览了文档,但找不到任何文档。我正在寻找类似的东西:
$charAtPosition20 = strCharAt(20, $myString);
答案 0 :(得分:30)
您可以使用:$myString[20]
答案 1 :(得分:5)
有两种方法可以实现这一目标:
使用方括号和索引直接访问指定位置的字符,例如:$string[$index]
或$string[1]
;
使用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_substr
与substr
相似,但对于多字节字符串,因此末尾的1
仅返回1个字符,但是如果需要更多字符,则可以相应地更改。 / p>
答案 7 :(得分:-3)
$string = 'Here is the text';
echo $string{2};
返回位于2的字符“e”。