首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取字符串的随机阿拉伯字母

问获取字符串的随机阿拉伯字母
EN

Stack Overflow用户
提问于 2013-08-06 09:55:44
回答 1查看 792关注 0票数 1

我有这个代码,它把单词和字母随机化,它对英文字母很好,但对阿拉伯语就不好用了

代码语言:javascript
复制
<?php

$str = 'علي';
$shuffled = str_shuffle($str);
$arr1 = str_split($shuffled);



foreach($arr1 as $bessah){
   echo $bessah.'<br />'; 


 }

?>
EN

回答 1

Stack Overflow用户

发布于 2013-08-06 10:06:10

这是因为它们不支持unicode (多字节字符)。从该页面http://php.net/manual/en/function.str-split.php

适当的unicode字符串拆分;

代码语言:javascript
复制
<?php
function str_split_unicode($str, $l = 0) {
    if ($l > 0) {
        $ret = array();
        $len = mb_strlen($str, "UTF-8");
        for ($i = 0; $i < $len; $i += $l) {
            $ret[] = mb_substr($str, $i, $l, "UTF-8");
        }
        return $ret;
    }
    return preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
}
?>

这是针对str_shuffle的(摘自http://php.net/manual/en/function.str-shuffle.php):

代码语言:javascript
复制
<?php
function str_shuffle_unicode($str) {
    $tmp = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY);
    shuffle($tmp);
    return join("", $tmp);
}
?>

示例:

代码语言:javascript
复制
$str = '日本語';
$shuffled = str_shuffle_unicode($str);
$arr1 = str_split_unicode($shuffled);

输出:語本日

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18070615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档