PHP之string之str_shuffle()函数使用
str_shuffle
- (PHP 4 >= 4.3.0, PHP 5, PHP 7)
- str_shuffle — Randomly shuffles a string
- str_shuffle — 随机打乱一个字符串
Description
string str_shuffle ( string $str )
//str_shuffle() shuffles a string. One permutation of all possible is created.
//str_shuffle() 函数打乱一个字符串,使用任何一种可能的排序方案。
Caution
- This function does not generate cryptographically secure values, and should not be used for cryptographic purposes. If you need a cryptographically secure value, consider using random_int(), random_bytes(), or openssl_random_pseudo_bytes() instead.
- 本函数并不会生成安全加密的值,不应用于加密用途。若需要安全加密的值,考虑使用openssl_random_pseudo_bytes()。
Parameters
str
- The input string.
- 输入字符串。
Return Values
- Returns the shuffled string.
- 返回打乱后的字符串。
Changelog
- 7.1.0 The internal randomization algorithm has been changed to use the » Mersenne Twister Random Number Generator instead of the libc rand function.
- 内置的随机算法从 libc rand 函数改成了» 梅森旋转演伪随机数发生算法。
Examples
<?php
/**
* Created by PhpStorm.
* User: zhangrongxiang
* Date: 2018/3/7
* Time: 下午10:04
*/
$str = "abcde";
echo str_shuffle( $str ) . PHP_EOL;
echo str_shuffle( $str ) . PHP_EOL;
echo str_shuffle( $str ) . PHP_EOL;
echo str_shuffle( $str ) . PHP_EOL;
/////////////////////////////////////////////////////////////////////////////////
function scramble_word( $word ) {
if ( strlen( $word ) < 2 ) {
return $word;
} else {
return $word{0} . str_shuffle( substr( $word, 1, - 1 ) ) . $word{strlen( $word ) - 1};
}
}
//echo preg_replace('/(\w+)/e', 'scramble_word("\1")', 'A quick brown fox jumped over the lazy dog.');
echo scramble_word( "A quick brown fox jumped over the lazy dog." ) . PHP_EOL;
///////////////////////////////////////////////////////////////////////////////
/**This function is affected by srand():*/
srand( 12345 );
echo str_shuffle( 'Randomize me' ) . PHP_EOL; // demmiezR aon
echo str_shuffle( 'Randomize me' ) . PHP_EOL; //izadmeo Rmen
srand( 12345 );
echo str_shuffle( 'Randomize me' ) . PHP_EOL; // demmiezR aon
////////////////////////////////////////////////////////////////////////////
// not very true
srand(time());
function unicode_shuffle( $string, $chars, $format = 'UTF-8' ) {
$rands = [];
for ( $i = 0; $i < $chars; $i ++ ) {
$rands[ $i ] = rand( 0, mb_strlen( $string, $format ) );
}
$s = null;
foreach ( $rands as $r ) {
$s .= mb_substr( $string, $r, 1, $format );
}
return $s;
}
echo unicode_shuffle( "万物结对象", 3 ) . PHP_EOL;
See
All rights reserved
PHP之string之str_shuffle()函数使用的更多相关文章
- mt_rand()函数、str_shuffle() 函数、join() 函数
mt_rand() 使用 Mersenne Twister 算法返回随机整数. 语法 mt_rand(min,max) 定义和用法 str_shuffle() 函数随机地打乱字符串中的所有字符. 语法 ...
- php str_shuffle()函数 语法
php str_shuffle()函数 语法 str_shuffle()函数怎么用? php str_shuffle()函数用于随机的打乱字符串中所有字符,语法是str_shuffle(string) ...
- PHP str_shuffle() 函数
实例 随机地打乱字符串中的所有字符: <?php高佣联盟 www.cgewang.comecho str_shuffle("Hello World");?> 定义和用法 ...
- OC与c混编实现Java的String的hashcode()函数
首先,我不愿意大家需要用到这篇文章里的代码,因为基本上你就是被坑了. 起因:我被Java后台人员坑了一把,他们要对请求的参数增加一个额外的字段,字段的用途是来校验其余的参数是否再传递过程中被篡改或因为 ...
- string类find函数返回值判定
string类find函数返回值判定 代码示例 #include<iostream> #include<cstring> using namespace std; int m ...
- C string.h 常用函数
参考:http://womendu.iteye.com/blog/1218155 http://blog.csdn.net/zccst/article/details/4294565 还有一些,忘记了 ...
- c++中string的常用函数说明
string可以说是是字符数组的升级版,使用更加啊方便,不容易出错.本文对string的常用函数进行简单介绍,做到会用即可. string中的常用函数分为四类,即赋值,添加,比较和删除. 一.赋值 1 ...
- C++ string类及其函数的讲解
文章来源于:http://www.cnblogs.com/hailexuexi/archive/2012/02/01/2334183.html C++中string是标准库中一种容器,相当于保存元素类 ...
- PHP之string之explode()函数使用
explode (PHP 4, PHP 5, PHP 7) explode - Split a string by string explode - 使用一个字符串分割另一个字符串 Descripti ...
随机推荐
- centos top命令列解释
查看单个进程:top -p 进程号 PID(Process ID):进程标示号 ( 每个 process 的 ID ) USER:进程所有者的用户名 ( 该 process 所属的使用者 ) PR:进 ...
- Ubuntu 16.04.2 LTS 安装 jdk1.6 和 tomcat6 (一)
java和tomcat环境配置已经有很多教程和文章,最近项目需要配置Ubuntu 16.04.2下的古老的java6和tomcat 6,遇到小坑,特记录和分享. 网上的教程不是太新,就是太老,还有一些 ...
- centos 安装vmware 9.02 报 Failed to load module "pk-gtk-module" "canberra-gtk-module"
http://www.linuxidc.com/Linux/2012-01/50944.htm 系统平台:RHEL6.1 X86 32bit 软件版本:VMware-Workstation-Full- ...
- 【MVC】视图页引用分部视图(WebForm叫做用户控件)
方法一.不经过控制器.动作方法,直接返回Html @Html.Partial("Head","我可以给分布视图传数据") Head是Views/Shared/H ...
- Unity&C# SingerMonoManager泛型单例
管理各种管理器 ///为什么需要单例 ///单例模式核心在于对于某个单例类,在系统中同时只存在唯一一个实例,并且该实例容易被外界所访问: ///避免创建过多的对象,意味着在内存中,只存在一个实例,减少 ...
- Posix消息队列注意事项
随内核的持续性 读总是返回最高优先级的最早消息. 当往一个空队列放置一个消息时,允许产生一个信号或启动一个线程. 可认为是一个消息链表 队列中每个消息具有 1.一个无符号整数优先级 2.消息的数据部分 ...
- C语言中宏定义与C++中的内联函数
一,宏定义:在预处理的时候把宏定义的内容替换到代码中,正常编译. 1,无参数宏定义和有参数宏定义 (1)宏定义不能加分号,比如:#define PI 3.24;错的,#define PI 3.24 ...
- [Swift实际操作]八、实用进阶-(1)Swift语言中的两种单例模式实际操作
本文降温你解析常见的单例模式.单例模式可以保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点. 首先导入需要使用到的界面工具框架 import UIKit 单例对象保证了只有一个实例 ...
- Antd 初识
mark 参考 antd - 官网:Ant Design Pro: Ant Design - github:Ant Design pro - github:
- 从一个bug谈谈psqlodbc游标的一点认识
本文源于最近修正的一个关于psqlodbc的bug,该bug在近期的psqlodbc的git上也有人提交了修正. 关于该bug的修正代码可以看这里: https://git.postgresql.or ...