在PHP中,是否有任何等效函数返回“X”位置的字符?
在PHP中是否有任何等效函数返回位置在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
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);