从阿拉伯字符串获取最后一个字母Php

问题描述:

我一直在使用阿拉伯字符一段时间了。 看这个:从阿拉伯字符串获取最后一个字母Php

$string = "السلام"; 

当我打印它时完美。

但是。我想得到最后一个字母“م”。 我试了

$string[strlen($string]-1)]; 

也试过了子串。

获得这样的输出:

解决: 忘了补充:mb_internal_encoding( “UTF-8”); 非常感谢你们!

你试图在一个多字节字符串中使用字节型操作(UTF-8 -16?)你需要使用MB _ *()函数与多字节字符串的工作:http://php.net/mb_substr

+0

对不起,这是我已经试过写的错误,同样的结果strlen的。 – Kilise 2013-03-06 21:03:29

+0

mb_internal_encoding(“UTF-8”);忘了那一个。 – Kilise 2013-03-06 21:04:54

+0

我不认为PHP支持RTL语言。 PHP内部表示中的字符串纯粹的LTR。 'mb_substr($ str,0,1)'可能是你真正想要的。 – 2013-03-06 21:05:28

对于多字节字符串,您应该使用mb_strlen。这些字符需要多个字节,因此当您使用本机非MB功能获取它们时,只会占用字符的一部分,通常是一些乱码。 mb_*功能照顾。

+1

@Cthulhu--我看到克苏鲁的军队正在征服世界;) – cth 2013-03-06 21:03:49

+1

是的确的! :D – 2013-03-06 21:05:31

试试这个:

<?php 
mb_internal_encoding("UTF-8"); 
$string = "السلام"; 
echo mb_substr($string, -1); 
?> 

你的代码也是不正确(有语法错误):

$string[strlen($string]-1)]; 
         ^--should be) 

$string[strlen($string)-1)]; 
+0

谢谢,mb_internal_encoding(“UTF-8”);这正是我忘了 – Kilise 2013-03-06 21:05:15