Stone大叔💯 随机生成各种字符串也可以生成中文姓名哦
php随机生成各种字符串也可以生成中文姓名哦
/** * Stone大叔💯 随机生成email或者手机号码函数 * ============================================================================ * ---------------------------------------------------------------------------- * <><><><><><><><><><><><><>有妹子加微信不哦!~<><><><><><><><><><><><><><><><> * ---------------------------------------------------------------------------- * ============================================================================ * $Author: Stone大叔💯 $ * 2010-03-25 06:35:46Z Stone大叔💯 $ */ class RandChar{ private $server = array( 'mobile'=>array( 'front_attached' => array(130,131,132,133,134,135,136,137,138,139,147,150,189,189), 'later_attached' => '1234567890', 'str_len' => 8 ), 'email'=>array( 'later_attached' => array('@163.com','@126.com','@tom.com','@qq.com','@sina.com','@sina.com.cn'), 'front_attached' => 'abcdefghijklmnopqrstuvwxyz_0987654321', 'min' => 5, 'max' => 15 ), 'name'=>array( 'front_attached' => array('赵','钱','孙','李','周','吴','郑','王','冯','陈','楮','卫','蒋','沈','韩','杨朱','秦','尤','许','何','吕','施','张孔','曹','严','华','金','魏','陶','姜','戚','谢','邹','喻','柏','水','窦','章','云','苏','潘','葛','奚','范','彭','郎','鲁','韦','昌','马','苗','凤','花','方','俞','任','袁','柳','酆','鲍','史','唐','费','廉','岑','薛','雷','贺','倪','汤','滕','殷','罗','毕','郝','邬','安','常','乐','于','时','傅','皮','卞','齐','康','伍','余','元','卜','顾','孟','平','黄','和','穆','萧','尹','姚','邵','湛','汪','祁','毛','禹','狄','米','贝','明','臧','计','伏','成','戴','谈','宋','茅','庞','熊','纪','舒','屈','项','祝','董','梁','杜','阮','蓝','闽','席','季','麻','强','贾','路','娄','危','江','童','颜','郭','梅','盛','林','***','锺','徐','丘','骆','高','夏','蔡','田','樊','胡','凌','霍','虞','万','支','柯','昝','管','卢','莫','经','房','裘','缪','干','解','应','宗','丁','宣','贲','邓','郁','单','杭','洪','包','诸','左','石','崔','吉','钮','龚','程','嵇','邢','滑','裴','陆','荣','翁','荀','羊','於','惠','甄','麹','家','封','芮','羿','储','靳','汲','邴','糜','松','井','段','富','巫','乌','焦','巴','弓','牧','隗','山','谷','车','侯','宓','蓬','全','郗','班','仰','秋','仲','伊','宫','宁','仇','栾','暴','甘','斜','厉','戎','祖','武','符','刘','景','詹','束','龙','叶','幸','司','韶','郜','黎','蓟','薄','印','宿','白','怀','蒲','邰','从','鄂','索','咸','籍','赖','卓','蔺','屠','蒙','池','乔','阴','郁','胥','能','苍','双','闻','莘','党','翟','谭','贡','劳','逄','姬','申','扶','堵','冉','宰','郦','雍','郤','璩','桑','桂','濮','牛','寿','通','边','扈','燕','冀','郏','浦','尚','农','温','别','庄','晏','柴','瞿','阎','充','慕','连','茹','习','宦','艾','鱼','容','向','古','易','慎','戈','廖','庾','终','暨','居','衡','步','都','耿','满','弘','匡','国','文','寇','广','禄','阙','东','欧','殳','沃','利','蔚','越','夔','隆','师','巩','厍','聂','晁','勾','敖','融','冷','訾','辛','阚','那','简','饶','空','曾','毋','沙','乜','养','鞠','须','丰','巢','关','蒯','相','查','后','荆','红','游','竺','权','逑','盖','益','桓','公','万俟','司马','上官','欧阳','夏侯','诸葛','闻人','东方','赫连','皇甫','尉迟','公羊','澹台','公冶','宗政','濮阳','淳于','单于','太叔','申屠','公孙','仲孙','轩辕','令狐','锺离','宇文','长孙','慕容','鲜于','闾丘','司徒','司空','丌官','司寇','仉','督','子车','颛孙','端木','巫马','公西','漆雕','乐正','壤驷','公良','拓拔','夹谷','宰父','谷梁','晋','楚','阎','法','汝','鄢','涂','钦','段干','百里','东郭','南门','呼延','归','海','羊舌','微生','岳','帅','缑','亢','况','后','有','琴','梁丘','左丘','东门','西门','商','牟','佘','佴','伯','赏','南宫','墨','哈','谯','笪','年','爱','阳','佟'), 'later_attached' => array('白','静','心','德','波','超','二蛋'), ) ); private $check_data = array( 'front_attached' => null, 'later_attached' => null, 'str_len' => 0, 'min' => 0, 'max' => 0 ); private $character = 'utf-8'; private $type = null; public function __construct($type = false,$character = 'utf-8'){ $this->character = $character; if($type === false ){ $type = array_rand($this->server); } $this->type = $type; $this->check_data(); } /** * 随机生成字符串。 * * @access public * @param string $type 字符串类型 * @return string $rand_name 生成的字符串 */ public function check_rand_str(){ $rand_name = ''; //检查数据 可要可不要。 $this->check_data($this->type); $front_attached = $this->server[$this->type]['front_attached']; $later_attached = $this->server[$this->type]['later_attached']; $rand_name = $this->rand_rand_str($front_attached) . $this->rand_rand_str($later_attached); return $rand_name; } /** * 删除附加字符 * * @access public * @param string $type 前面还是后面 * @param string $name 所属类型 * @param string $value 值 * @return bool */ public function del_attached($type , $value = false){ if(!in_array($type , array('later_attached' , 'front_attached'))){ return false; } if(!array_key_exists($this->type , $this->server)){ return false; } $attached = $this->server[$this->type][$type]; if(is_array($value) && !empty($value)){ foreach($value as $key=>$val){ if(in_array($val , $attached)){ unset($attached[$key]); } } }elseif(is_string($value) || is_int($value)){ if( ($key = array_search($value , $attached)) !== false ){ unset($attached[$key]); } }elseif ($value === false){ $attached = array(); }else{ return false; } $this->server[$this->type][$type] = $attached; return true; } /** * 添加附加字符 * * @access public * @param string $type 前面还是后面 * @param string $name 所属类型 * @param string $value 值 * @return bool */ public function add_attached($type , $value){ if(!in_array($type , array('later_attached' , 'front_attached'))){ return false; } if(!array_key_exists($this->type , $this->server)){ $this->server[$this->type] = array(); $this->server[$this->type][$type] = array(); } $attached = $this->server[$this->type][$type]; if(is_array($attached) && is_string($value)){ $value = array($value); }elseif(is_string($attached) && is_array($value)){ $value = implode('',$value); }elseif(is_null($attached)){ $this->server[$this->type][$type] = $value; //$this->server[$this->type][$type] = $attached; return true; } if(is_array($value)){ //合并之后再删除 $attached = array_merge($attached , $value); $attached = array_unique($attached); }elseif(is_string($value) || is_int($value)){ $attached .= $value; }else{ return false; } print_r($attached); $this->server[$this->type][$type] = $attached; return true; } /** * 检查数据是否有错误,并加以补齐 * * @access private * @param string $type 所属类型 * @return bool */ private function check_data(){ $type = $this->type; if(!array_key_exists($type , $this->server)){ $this->server[$type] = array(); } $server_type = $this->server[$type]; foreach($this->check_data as $key=>$val){ if(!array_key_exists( $key , $server_type)) { $server_type[$key] = $val; } } //print_r($server_type); $this->server[$type] = $server_type; } /** * 随机生成字符串 * * @access private * @param string $str 字符串 * @param int $len 长度 * @return bool */ private function rand_rand_str($data , $len = 0){ $rand_str = ''; if(is_string($data)){ $str_len = mb_strlen($data,$this->character); if($len === 0){ $len = $this->server[$this->type]['str_len'] > 0 ? $this->server[$this->type]['str_len'] : rand($this->server[$this->type]['min'] , $this->server[$this->type]['max']); } for($i = 0; $i < $len; $i++){ $rand_str .= mb_substr($data , rand(0,$str_len-1) , 1 , $this->character); } }else if(is_array($data)){ $rand_str = $data[array_rand($data)]; } return $rand_str; } } $rc = new RandChar('gril'); $rc->add_attached('front_attached' , array('罗')); $rc->add_attached('later_attached' , array('羡','资','水','牛')); echo $rc->check_rand_str();