class String { /** +---------------------------------------------------------- * 生成UUID 单机使用 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @return string +---------------------------------------------------------- */ static public function uuid() { $charid = md5(uniqid(mt_rand(), true)); $hyphen = chr(45);// "-" $uuid = chr(123)// "{" .substr($charid, 0, 8).$hyphen .substr($charid, 8, 4).$hyphen .substr($charid,12, 4).$hyphen .substr($charid,16, 4).$hyphen .substr($charid,20,12) .chr(125);// "}" return $uuid; } /** +---------------------------------------------------------- * 生成Guid主键 +---------------------------------------------------------- * @return Boolean +---------------------------------------------------------- */ static public function keyGen() { return str_replace('-','',substr(String::uuid(),1,-1)); } /** +---------------------------------------------------------- * 检查字符串是否是UTF8编码 +---------------------------------------------------------- * @param string $string 字符串 +---------------------------------------------------------- * @return Boolean +---------------------------------------------------------- */ static public function isUtf8($str) { $c=0; $b=0; $bits=0; $len=strlen($str); for($i=0; $i<$len; $i++){ $c=ord($str[$i]); if($c > 128){ if(($c >= 254)) return false; elseif($c >= 252) $bits=6; elseif($c >= 248) $bits=5; elseif($c >= 240) $bits=4; elseif($c >= 224) $bits=3; elseif($c >= 192) $bits=2; else return false; if(($i+$bits) > $len) return false; while($bits > 1){ $i++; $b=ord($str[$i]); if($b < 128 || $b > 191) return false; $bits--; } } } return true; } /** +---------------------------------------------------------- * 字符串截取,支持中文和其他编码 +---------------------------------------------------------- * @static * @access public +---------------------------------------------------------- * @param string $str 需要转换的字符串 * @param string $start 开始位置 * @param string $length 截取长度 * @param string $charset 编码格式 * @param string $suffix 截断显示字符 +---------------------------------------------------------- * @return string +---------------------------------------------------------- */ static public function msubstr($str, $start=0, $length, $charset="utf-8", $suffix=true) { if(function_exists("mb_substr")) $slice = mb_substr($str, $start, $length, $charset); elseif(function_exists('iconv_substr')) { $slice = iconv_substr($str,$start,$length,$charset); }else{ $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/"; $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/"; $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/"; $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/"; preg_match_all($re[$charset], $str, $match); $slice = join("",array_slice($match[0], $start, $length)); } return $suffix ? $slice.'...' : $slice; } /** +---------------------------------------------------------- * 产生随机字串,可用来自动生成密码 * 默认长度6位 字母和数字混合 支持中文 +---------------------------------------------------------- * @param string $len 长度 * @param string $type 字串类型 * 0 字母 1 数字 其它 混合 * @param string $addChars 额外字符 +---------------------------------------------------------- * @return string +---------------------------------------------------------- */ static public function randString($len=6,$type='',$addChars='') { $str =''; switch($type) { case 0: $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.$addChars; break; case 1: $chars= str_repeat('0123456789',3); break; case 2: $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ'.$addChars; break; case 3: $chars='abcdefghijklmnopqrstuvwxyz'.$addChars; break; case 4: $chars = "们阿斯顿发生地方阿斯蒂芬阿斯蒂芬ASF地V字形陈V手势地方过水电费v鬼地方乖宝宝双方都 山东饭馆山东饭馆撒地方v睡的地方改水电费撒地方感受到法国地神风怪盗搞活动大发光火地方馆地方高大发光火的反光板的广播台地方馆别DVB大小分割撒地方 啥地方告诉对方释放掉豆沙方糕撒地方干点啥风格白癜风锅煽豆腐山东饭馆时代复分高速钢微软消费税大发光火好的锈扫毕璃宝芯爷鉴秘净蒋钙肩腾枯抛轨堂拌爸循诱祝励肯酒绳穷塘燥泡袋朗喂铝软渠颗惯贸粪综墙趋彼届墨碍启逆卸航衣孙龄岭骗休借".$addChars; break; default : // 默认去掉了容易混淆的字符oOLl和数字01,要添加请使用addChars参数 $chars='ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'.$addChars; break; } if($len>10 ) {//位数过长重复字符串一定次数 $chars= $type==1? str_repeat($chars,$len) : str_repeat($chars,5); } if($type!=4) { $chars = str_shuffle($chars); $str = substr($chars,0,$len); }else{ // 中文随机字 for($i=0;$i<$len;$i++){ $str.= self::msubstr($chars, floor(mt_rand(0,mb_strlen($chars,'utf-8')-1)),1,'utf-8',false); } } return $str; } /** +---------------------------------------------------------- * 生成一定数量的随机数,并且不重复 +---------------------------------------------------------- * @param integer $number 数量 * @param string $len 长度 * @param string $type 字串类型 * 0 字母 1 数字 其它 混合 +---------------------------------------------------------- * @return string +---------------------------------------------------------- */ static public function buildCountRand ($number,$length=4,$mode=1) { if($mode==1 && $length<strlen($number) ) { //不足以生成一定数量的不重复数字 return false; } $rand = array(); for($i=0; $i<$number; $i++) { $rand[] = self::randString($length,$mode); } $unqiue = array_unique($rand); if(count($unqiue)==count($rand)) { return $rand; } $count = count($rand)-count($unqiue); for($i=0; $i<$count*3; $i++) { $rand[] = self::randString($length,$mode); } $rand = array_slice(array_unique ($rand),0,$number); return $rand; } /** +---------------------------------------------------------- * 带格式生成随机字符 支持批量生成 * 但可能存在重复 +---------------------------------------------------------- * @param string $format 字符格式 * # 表示数字 * 表示字母和数字 $ 表示字母 * @param integer $number 生成数量 +---------------------------------------------------------- * @return string | array +---------------------------------------------------------- */ static public function buildFormatRand($format,$number=1) { $str = array(); $length = strlen($format); for($j=0; $j<$number; $j++) { $strtemp = ''; for($i=0; $i<$length; $i++) { $char = substr($format,$i,1); switch($char){ case "*"://字母和数字混合 $strtemp .= String::randString(1); break; case "#"://数字 $strtemp .= String::randString(1,1); break; case "$"://大写字母 $strtemp .= String::randString(1,2); break; default://其他格式均不转换 $strtemp .= $char; break; } } $str[] = $strtemp; } return $number==1? $strtemp : $str ; } /** +---------------------------------------------------------- * 获取一定范围内的随机数字 位数不足补零 +---------------------------------------------------------- * @param integer $min 最小值 * @param integer $max 最大值 +---------------------------------------------------------- * @return string +---------------------------------------------------------- */ static public function randNumber ($min, $max) { return sprintf("%0".strlen($max)."d", mt_rand($min,$max)); } // 自动转换字符集 支持数组转换 static public function autoCharset($string, $from='gbk', $to='utf-8') { $from = strtoupper($from) == 'UTF8' ? 'utf-8' : $from; $to = strtoupper($to) == 'UTF8' ? 'utf-8' : $to; if (strtoupper($from) === strtoupper($to) || empty($string) || (is_scalar($string) && !is_string($string))) { //如果编码相同或者非字符串标量则不转换 return $string; } if (is_string($string)) { if (function_exists('mb_convert_encoding')) { return mb_convert_encoding($string, $to, $from); } elseif (function_exists('iconv')) { return iconv($from, $to, $string); } else { return $string; } } elseif (is_array($string)) { foreach ($string as $key => $val) { $_key = self::autoCharset($key, $from, $to); $string[$_key] = self::autoCharset($val, $from, $to); if ($key != $_key) unset($string[$key]); } return $string; } else { return $string; } } }
相关推荐
NULL 博文链接:https://chembo.iteye.com/blog/905038
* 助手类 * @author www.shouce.ren * */ class Helper { /** * 判断当前服务器系统 * @return string */ public static function getOS(){ if(PATH_SEPARATOR == ':'){ return 'Linux'; }else{ return 'Windows...
本文实例讲述了php封装的pdo数据库操作工具类与用法。分享给大家供大家参考,具体如下: <?php header(Content-Type:text/html;charset=utf-8); class PdoMysql{ public static $config = array();//设置连接...
本文实例讲述了PHP封装cURL工具类。分享给大家供大家参考,具体如下: CurlUtils工具类: <?php /** * cURL请求工具类 */ class CurlUtils { private $ch;//curl资源对象 /** * 构造方法 * @param string ...
//分页工具类 class Page{ /* * 获取分页字符串 * @param1 string $uri,分页要请求的脚本url * @param3 int $counts,总记录数 * @param4 int $length,每页显示的记录数 * @param5 int $page = 1,当前...
1.转换一个String字符串为byte数组 2.将字节数组转化为String类型的数据 3.转换一个int为byte数组 4.从字节数组中指定的位置读取一个Integer类型的数据 5.转换一个shor字符串为byte数组 6.从字节数组中指定的...
php5新增的类特性,很有帮助理解的... 博文链接:https://purpen.iteye.com/blog/100210
本文实例讲述了PHP解析xml格式数据工具类。分享给大家供大家参考,具体如下: class ome_xml { /** * xml资源 * * @var resource * @see xml_parser_create() */ public $parser; /** * 资源编码 * * @...
一、类文档说明 代码如下:class Image_Tool{ /** * 构造Image_Tool对象 * @param string|array $img_data * $img_data可以为图片的路径 */ function __construct($img_data=””); /** * 添加文字注解,或...
* @param string $urlPattern A URL for each page, with (:num) as a placeholder for the page number. Ex. '/foo/page/(:num)' */ public function __construct($totalItems, $...
class PHPMailer { ///////////////////////////////////////////////// // PROPERTIES, PUBLIC ///////////////////////////////////////////////// /** * Email priority (1 = ...一个可以收发邮件的工具类
*php操作mysql的工具类 */ class Db{ private $_db = null;//数据库连接句柄 private $_table = null;//表名 private $_where = null;//where条件 private $_order = null;//order排序 private $_limit = nul
#简介protox是一款php数据类型格式化工具,主要用于数据类型转换和数据初始化,省去很多手工初始化和类型转换操作。转换后的数据很方便使用json和amf进行编码,终于不用担心一个int转来转去变成string了。只需要一次...
<?php namespace Dflydev\Canal\Analyzer;... }本类库实现对网站全流量、用户结构、访问路径、访问内容、以及接入地点等关键指标进行深度追踪的监测工具,真实地反映网站实际流量情况以及网络用户访问体验状况。
本文实例讲述了PHP加密解密类。分享给大家供大家参考。具体分析如下: 这段代码支持 数组加密 , 密文有效期, 各种对称加密 其中参数如下: * @use ption::en($string, $key); * @param String $string 需要加密的...
它包括一个ClassName对象,以及帮助根据一组namespace和use语句解析类名称的工具。ClassName对象该对象旨在表示任何有效PHP类或名称空间名称。 有两种创建新的ClassName对象的方法。 来自字符串或代表类名称或“ ...
功能编程工具箱描述˚Functional P AGC软件牛逼oolbox(FPT的朋友)是一组无状态的和不可改变的辅助类,方便使用的函数式编程(FP)的概念。 该项目的目的不是将PHP转换为功能齐全的FP语言,而是将帮助愿意使用和...
* trimString(),设置参数时需要用到的字符处理函数 * createNoncestr(),产生随机字符串,不长于32位 * formatBizQueryParaMap(),格式化参数,签名过程需要用到 * getSign(),生成签名 * arrayToXml(),array转...
PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。 PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用...
的是 UTF-8 字符集,则不适合用本系统,请参见项目主页上的 scws-1.0.0 ,这套工具完美支持 GBK 和 UTF-8 字符集同时支持词性标注等。(注:BIG5 字符集可以按 GBK 字符集处理) 提供下载的词典是在 Intel 架构的...