# code **Repository Path**: jerrycyl/code ## Basic Information - **Project Name**: code - **Description**: 常用的代码段 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 4 - **Forks**: 1 - **Created**: 2015-03-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 有些是自已写的,有些是互联网查找出来,主要是为了方便可以马上用 /** * 删除网页上看不见的隐藏字符串, 如 Java\0script * * @param string */ remove_invisible_characters(&$str, $url_encoded = TRUE) /** * 对数组或字符串进行转义处理,数据可以是字符串或数组及对象 * @param void $data * @return type */ addslashes_d($data) /** * 去除转义 * @param type $data * @return type */ stripslashes_d($data) /** * 将数组转为字符串表示形式 * @param array $array 数组 * @param int $level 等级不要传参数 * @return string */ array_to_String($array, $level = 0) /** * 产生随机字串,可用来自动生成密码 默认长度6位 字母和数字混合 * @param string $len 长度 * @param string $type 字串类型 * 0 字母 1 数字 其它 混合 * @param string $addChars 额外字符 * @return string */ rand_string($len=6,$type='',$addChars='') // 随机生成一组字符串 build_count_rand ($number,$length=4,$mode=1) rand_email() rand_phone() rand_user() /** * 检查字符串是否是UTF8编码 * @param string $string 字符串 * @return Boolean */ is_utf8($string) /** * php 获取一定范围内不重复的随机数字,在1-10间随机产生5个不重复的值 * @param int $begin * @param int $end * @param int $limit * @return array */ getRand($begin=0,$end=10,$limit=5) /** * [machUrl 是否为URL] * @Author Jerry * @DateTime 2017-11-04T01:16:49+0800 * @Example eg: * @param [type] $str [description] * @return [type] [description] */ matchUrl($str) /** * [matchImage 检查字符串中是否有图片] * @Author Jerry * @DateTime 2017-11-04T01:09:58+0800 * @Example eg: * @param [type] $str [description] * @return [type] [description] */ matchImage($str) /** * [GrabImage 保存远程图片至本地] * @param [type] $url [远程图片地址] * @param string $filename [保存图片名] */ GrabImage($url,$filename="") /** * 获取url * @return [type] [description] */ getUrl() /** * 下载 * @param [type] $filename [description] * @param string $dir [description] * @return [type] [description] */ downloads($filename,$dir='./') /** * 打印输出数据 * @param void $var */ show($var) /** * 加载静态资源 * @param string $static 资源名称 * @param string $type 资源类型 * @author * @return string */ load_static($static = '', $type = 'css',$minify='true') /** * 合并输出js代码或css代码 需要minify插件支付 * @param string $type 类型:group-分组,file-单个文件,base-基础目录 * @param string $files 文件名或分组名 * @author */ minify($type = '',$files = '') /** * 获取浏览器类型 * @return string */ get_browser_type() /** * 判断是否是合格的手机客户端 * * @return boolean */ is_mobile() /** * 判断是否处于微信内置浏览器中 * * @return boolean */ in_weixin() /** * 生成随机字符串 * @param int $length 生成长度 * @param int $type 生成类型:0-小写字母+数字,1-小写字母,2-大写字母,3-数字,4-小写+大写字母,5-小写+大写+数字 * @author 蔡伟明 <314013107@qq.com> * @return string */ generate_rand_str($length = 8, $type = 0) /** * 获取服务器端IP地址 * @return array|false|string */ get_server_ip() /** * [getIp 此方法相对比较好] * @return [type] [description] */ fetch_ip() /** * 验证 IP 地址是否为内网 IP * * @param string * @return string */ valid_internal_ip($ip) /** * 兼容性转码 * * 系统转换编码调用此函数, 会自动根据当前环境采用 iconv 或 MB String 处理 * * @param string * @param string * @param string * @return string */ convert_encoding($string, $from_encoding = 'GBK', $target_encoding = 'UTF-8') /** * 兼容性转码 (数组) * * 系统转换编码调用此函数, 会自动根据当前环境采用 iconv 或 MB String 处理, 支持多维数组转码 * * @param array * @param string * @param string * @return array */ convert_encoding_array($data, $from_encoding = 'GBK', $target_encoding = 'UTF-8') /** * 字符串截取,支持中文和其他编码 * @param [string] $str [字符串] * @param integer $start [起始位置] * @param integer $length [截取长度] * @param string $charset [字符串编码] * @param boolean $suffix [是否有省略号] * @return [type] [description] */ msubstr($str, $start=0, $length=50, $charset="utf-8", $suffix=true) /** * 递归创建目录 * * 与 mkdir 不同之处在于支持一次性多级创建, 比如 /dir/sub/dir/ * * @param string * @param int * @return boolean */ make_dir($dir, $permission = 0777) /** * jQuery jsonp 调用函数 * * 用法同 json_encode * * @param array * @param string * @return string */ jsonp_encode($json = array(), $callback = 'jsoncallback') /** * 求两个日期之间相差的天数 * (针对1970年1月1日之后,求之前可以采用泰勒公式) * @param string $day1 * @param string $day2 * @return number */ diffDate ($second1, $second2) /** * 时间友好型提示风格化(即微博中的XXX小时前、昨天等等) * * 即微博中的 XXX 小时前、昨天等等, 时间超过 $time_limit 后返回按 out_format 的设定风格化时间戳 * * @param int * @param int * @param string * @param array * @param int * @return string */ date_friendly($timestamp, $time_limit = 604800, $out_format = 'Y-m-d H:i', $formats = null, $time_now = null) /** * 时间差计算 * * @param Timestamp $time * @return String Time Elapsed * @author Shelley Shyan * @copyright http://phparch.cn (Professional PHP Architecture) */ time2Units ($time) /** * 获得几天前,几小时前,几月前 * @param int $time 时间戳 * @param array $unit 时间单位 * @return bool|string */ date_before($time, $unit = null) /** * 根据一个时间戳得到详细信息 * @param [type] $time [时间戳] * @return [type] * @author [yangsheng@yahoo.com] */ getDateInfo($time) /** * 获得日期是上中下旬 * @param [int] $j [几号] * @return [array] [description] * @author [yangsheng@yahoo.com] */ getTenDays($j) /** * 根据月份获得当前第几季度 * @param [int] $n [月份] * @param [int] $y [年] * @return [array] [description] */ getQuarter($n,$y=null) /** * 判断文件或目录是否可写 * * @param string * @return boolean */ is_really_writable($file) /** * 生成密码种子 * * @param integer * @return string */ fetch_salt($length = 4) /** * 根据 salt 混淆密码 * * @param string * @param string * @return string */ compile_password($password, $salt) /** * 获取数组中随机一条数据 * * @param array * @return mixed */ array_random($arr) /** * 递归读取文件夹的文件列表 * * 读取的目录路径可以是相对路径, 也可以是绝对路径, $file_type 为指定读取的文件后缀, 不设置则读取文件夹内所有的文件 * * @param string * @param string * @return array */ fetch_file_lists($dir, $file_type = null) /** * CURL 获取文件内容 * * 用法同 file_get_contents * * @param string * @param integerr * @return string */ curl_get_contents($url, $timeout = 10) /** * CURL 获取文件内容 * * 用法同 curl_post_contents * $url = "http://localhost/web_services.php"; * $post_data = array ("username" => "bob","key" => "12345"); * @param string * @param integerr * @return string */ curl_post_contents($url = '', $param = '') curl_multi($url) /** * “抽奖”函数 * * @param integer $first 起始编号 * @param integer $last 结束编号 * @param integer $total 获奖人数 * * @return string * */ isWinner($first, $last, $total) { $winner = array(); for ($i=0;;$i++) { $number = mt_rand($first, $last); if (!in_array($number, $winner)) $winner[] = $number; // 如果数组中没有该数,将其加入到数组 if (count($winner) == $total) break; } return implode(' ', $winner); } /********************************************************************* $token = encrypt($id, 'E', 'qingdou'); echo '加密:'.encrypt($id, 'E', 'qingdou'); echo '
'; echo '解密:'.encrypt($token, 'D', 'qingdou'); 函数名称:encrypt 函数作用:加密解密字符串 使用方法: 加密 :encrypt('str','E','qingdou'); 解密 :encrypt('被加密过的字符串','D','qingdou'); 参数说明: $string :需要加密解密的字符串 $operation:判断是加密还是解密:E:加密 D:解密 $key :加密的钥匙(密匙); *********************************************************************/ encrypt($string,$operation,$key='') /** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param String $skey 加密EKY * @return String 加密后的字符串 * @author Anyon Zou */ encode($string = '', $skey = '6f918e') /** * 简单对称加密算法之解密 * @param String $string 需要解密的字串 * @param String $skey 解密KEY * @return String 解密后的字符串 * @author Anyon Zou */ decode($string = '', $skey = '6f918e') //=============================插件类 核心方法===================================== /** * 1、电信手机访问,HTTP头会有手机号码值,移动、联通则无。 *2、文中所提到的插入代码即可获取,纯属子虚乌有,文中的功能是一些做移动网络服务的公司,先向电信、移动、联通官方购买查询接口,该接口是以类似统计代码形式插入到你的网站,然后会有个后台统计系统。最后向其他公司贩卖会员,按数据条数收钱(重复也算),奇贵无比,每次最少续费三万。 *3、只有移动网络有效(电信手机、移动、联通),其他方式访问无效。 *(2013-8-16 10:43:10 核总补充:手机型号则是使用 HTTP 头 User-Agent 判断的,非常简单的“技术”,和普通网站程序判断浏览器型号及系统类型的方法一摸一样。) *该思路、系统最出自于医疗行业,未来移动互联网是发展方向,估计会扩展到其他行业。 * [getPhoneNumber 获取访问的手机号码] * @return [type] [description] */ getPhoneNumber() /** * 字节格式化 把字节数格式为 B K M G T 描述的大小 * @return string */ byte_format($size, $dec=2) /** * [get_csv_contents 读取CSV文件,EXCEL处理] * @param [type] $file_target [description] * @return [type] [description] */ get_csv_contents( $file_target ) /** * [outputCsv 导出CSV] * @param [type] $data [字符型] * @return [type] [description] * $data .= i($result[$i]['name']).','.i($result[$i]['option'])."\n"; 换行用\n */ outputCsv($str) /** * [val PHP自带的验证规则] * @param [type] $value [description] * @return [type] [description] * FILTER_CALLBACK 调用用户自定义函数来过滤数据。 *FILTER_SANITIZE_STRING 去除标签,去除或编码特殊字符。 *FILTER_SANITIZE_STRIPPED “string” 过滤器的别名。 *FILTER_SANITIZE_ENCODED URL-encode 字符串,去除或编码特殊字符。 *FILTER_SANITIZE_SPECIAL_CHARS HTML 转义字符 ‘”<>& 以及 ASCII 值小于 32 的字符。 *FILTER_SANITIZE_EMAIL 删除所有字符,除了字母、数字以及 !#$%&’*+-/=?^_`{|}~@.[] *FILTER_SANITIZE_URL 删除所有字符,除了字母、数字以及 $-_.+!*’(),{}|\\^~[]`<>#%”;/?:@&= *FILTER_SANITIZE_NUMBER_INT 删除所有字符,除了数字和 +- *FILTER_SANITIZE_NUMBER_FLOAT 删除所有字符,除了数字、+- 以及 .,eE。 *FILTER_SANITIZE_MAGIC_QUOTES 应用 addslashes()。 *FILTER_UNSAFE_RAW 不进行任何过滤,去除或编码特殊字符。 *FILTER_VALIDATE_INT 在指定的范围以整数验证值。 *FILTER_VALIDATE_BOOLEAN 如果是 “1″, “true”, “on” 以及 “yes”,则返回 true,如果是 “0″, “false”, “off”, “no” 以及 “”,则返回 false。否则返回 NULL。 *FILTER_VALIDATE_FLOAT 以浮点数验证值。 *FILTER_VALIDATE_REGEXP 根据 regexp,兼容 Perl 的正则表达式来验证值。 *FILTER_VALIDATE_URL 把值作为 URL 来验证。 *FILTER_VALIDATE_EMAIL 把值作为 e-mail 来验证。 *FILTER_VALIDATE_IP 把值作为 IP 地址来验证。 */ filter($str,$type) /** * [num_to_rmb 数据转成大写] * @Author Jerry * @DateTime 2018-01-22T16:22:44+0800 * @Example eg: * @param [type] $num [description] * @return [type] [description] */ num_to_rmb($num) /** * [hidecard 隐藏敏感信息内容] * @Author Jerry * @DateTime 2017-12-27T11:40:37+0800 * @Example eg: * @param [type] $phone [description] * @return [type] [description] */ hidecard($cardnum, $type = 1, $default = "")