公共方法整合(一)杂项
本文主要存储一些自己使用的公共方法。
方法目录:
本方法借鉴:壁虎漫步。 大大的博客。
原文链接:https://www.cnblogs.com/phpfensi/p/4242293.html
代码如下:
$data = array( 'a' => 10 , 'b' => 20 , 'c' => 30 , 'd' => 40 ); echo randomSelect( $data ); function randomSelect( &$array ){ $datas = $array ; if( !is_array($datas) || count($datas) == 0 ) return ; asort($datas); //按照大小排序 $random = rand(1,100); $sum = 0 ; $flag = ''; foreach($datas as $key => $data ){ $sum += $data ; if( $random <= $sum ){ $flag = $key; break ; } } if( $flag == '' ){ // 如果传递进来的值的和小于100 ,则取概率最大的。 $keys = array_keys($datas); $flag = $keys[count($keys) - 1] ; } return $flag; }
先忙了,用到的方法会随时更新。
2019年12月11日。
本方法借鉴与:段佳伟的小憩屋 大大的博客。
原文链接:https://www.cnblogs.com/djwhome/p/9483563.html
方法如下:
$mobile = '15812345600'; $s = file_get_contents('http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel='.$mobile); preg_match_all("/(\w+):'([^']+)/", $s, $m); $a = array_combine($m[1], $m[2]); $a['province'] = mb_convert_encoding($a['province'], 'utf-8', 'gbk'); $a['catName'] = mb_convert_encoding($a['catName'], 'utf-8', 'gbk'); $a['carrier'] = mb_convert_encoding($a['carrier'], 'utf-8', 'gbk'); echo "<pre>"; print_r($a);
因方法返回的中文格式不对,自己转换了下。
2019年12月11日。
本方法借鉴与:小king哥 大大的博客。
原文链接:https://www.cnblogs.com/jingmin/p/6706704.html
方法如下:
// 过滤掉emoji表情 function filter_Emoji($str) { $str = preg_replace_callback( //执行一个正则表达式搜索并且使用一个回调进行替换 '/./u', function (array $match) { return strlen($match[0]) >= 4 ? '' : $match[0]; }, $str); return $str; }
2019年 12月25日
方法更新中...
引入的QRtools 类库
地址: https://pan.baidu.com/s/1WU4yj5Owl-qldG9ScgPC9g 提取码: epn1
方法如下:
#生成二维码 /** * 生成二维码 * @param [type] $url 对应内容 * @param [type] $code 生成名称 * @return [type] 对应生成地址返回 */ function reQrCode($url,$code) { import("QRtools", EXTEND_PATH); $QRcode = new \QRcode(); // include_once("QRtools.php"); // $QRcode = new QRcode(); //白边 默认4 $margin=2; // 纠错级别:L、M、Q、H $level = 'Q'; // 点的大小:1到10,用于手机端4就可以了 $size = 4; #判定文件夹是否存在 $dir = $_SERVER['DOCUMENT_ROOT'].'/upload'.'/reqrcode/'; mkdirs($dir); // 下面注释了把二维码图片保存到本地的代码,如果要保存图片,用$fileName替换第二个参数false $name = 'upload/reqrcode/'.$code.'.png'; $fileName = $name; // QRcode::png($code, $fileName, $level, $size,$margin); $QRcode->png($url, $fileName, $level, $size,$margin); $path='\\'.$fileName; $path = strtr($path,'\\','/'); return $path; } #调用方法 $reqrimg = time().rand(10,99); //二维码名称 $reqrurl = ''; //二维码内容 reQrCode($reqrurl,$reqrimg); #判定文件夹是否存在方法 /** * 判定文件夹是否存在方法 不存在则生成 * @param [type] $dir 地址 * @param integer $mode 权限 * @return [type] 生成 */ function mkdirs($dir, $mode = 0777) { if (is_dir($dir) || @mkdir($dir, $mode)) return TRUE; if (!mkdirs(dirname($dir), $mode)) return FALSE; return @mkdir($dir, $mode); }
2020年08月27日
方法:
/** * 生成随机字符串 * @param integer $length 生成随机字符串的长度 * @param string $char 组成随机字符串的字符串 * @return [type] 生成的随机字符串 */ function str_rand($length = 32, $char = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ') { //0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ if(!is_int($length) || $length < 0) { return false; } $string = ''; for($i = $length; $i > 0; $i--) { $string .= $char[mt_rand(0, strlen($char) - 1)]; } return $string; }
2020年08月27日
方法持续更新中..
方法:
/** * 写入log * @param [type] $file 生成文件名 * @param [type] $txt 对应内容 * @param string $other [description]编码格式 * @return [type] [description] */ function ceshilog($file,$txt,$other='wx'){ $fp = fopen($file,'ab+'); fwrite($fp,'-----------'.$other.':'.date('Y-m-d H:i:s').'-----------------'."\r\n"); if(is_array($txt) || is_object($txt)){ fwrite($fp,var_export($txt,true)); }else{ if($txt==''){ $txt='// -------------------------------------------------------------'; } fwrite($fp,$txt); } fwrite($fp,"\r\n\r\n\r\n"); fclose($fp); }
2020年08月27日
方法持续更新中..
方法如下:
/** * PHP生成 UUID * @return [type] [description] */ public function uuid() { $chars = md5(uniqid(mt_rand(), true)); $uuid = substr ( $chars, 0, 8 ) . '-' . substr ( $chars, 8, 4 ) . '-' . substr ( $chars, 12, 4 ) . '-' . substr ( $chars, 16, 4 ) . '-' . substr ( $chars, 20, 12 ); return $uuid ; }
方法二:
/** * 生成UUID方法 */ public function uuidto() { return uniqid(mt_rand(0,0xffff), true); }
如果想要了解更多的UUID知识,请传送:https://www.cnblogs.com/Renyi-Fan/p/11870429.html
2020年09月08日
方法持续更新中噻。。。