php常用函数(持续更新)
每一种编程语言在用的过程中都会发现有时候要一种特定需求的功能函数,结果没有内置这样的函数,这个时候就需要自己根据已有函数编写尽可能简单的函数,下面是我在做php相关工作时积累下的函数,会持续更新,您要是有好的也可以推荐给我,我在这里统一展示给大家。
- 第一,生成随机字符串
代码如下面所示,要注意以下,查看手册可以看到,php在版本4.2.0以前生成随机数时,需要先给随机数发生器播种,PHP_VERSION>4.2.0的版本,系统自动完成播种工作,所以这里要做下判断。
<?php function rand_str($length) { $string = ''; $chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'; $max = strlen($chars) - 1; if(version_compare(PHP_VERSION, '4.2.0') >= 0) { for($i=0;$i<$length;$i++) { $p = rand(0,$max); $string .= $chars[$p]; } } else { mt_srand((double)microtime(true)*1000000); for($i=0;$i<$length;$i++) { $p = mt_rand(0,$max); $string .= $chars[$p]; } } return $string; }
- 第二,检测电话正确与否
/** *@desc 检测电话号码是否正确 *@param string $phone 电话号码 *@param $type string 要检测的类型 CHN=>中国,INT=>国际 */ function istelephone($phone, $type = 'CHN') { $ret = false; switch($type){ case "CHN": $ret = (preg_match("/^(13[0-9]{9}$)|(14[0-9]{9}$)|(15[0|1|2|3|5|6|7|8|9]\d{8}$)|(18[0|1|2|3|5|6|7|8|9]\d{8})|(1709\d{7})/", trim($phone)) ? true : false); break; case "INT": $ret = (preg_match("/^((\(\d{3}\))|(\d{3}\-))?\d{6,20}$/", trim($phone)) ? true : false); break; } return $ret === false ? false : true; }
- 第三,curl函数的封装
function curl($url, $method="get", $post=array(), $options=array(), &$error=false, &$errno=false, &$httpCode=false) { $defaults = array( CURLOPT_HEADER => 0, CURLOPT_URL => $url, CURLOPT_FRESH_CONNECT => 1, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FORBID_REUSE => 1, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 60, ); if($method=="post"){ $defaults[CURLOPT_POST] = 1; $defaults[CURLOPT_POSTFIELDS] = $post; } $ch = curl_init(); $result = ''; if($ch) { foreach($options as $k=>$v) { $defaults[$k] = $v; } curl_setopt_array($ch, $defaults); $result = curl_exec($ch); if($result === false) { if($error !== false) { $error = curl_error($ch); } if($errno !== false) { $errno = curl_errno($ch); } if($httpCode !== false) { $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); } } curl_close($ch); } return $result; } //get方式获取我的博客的rss页面 print_r(curl("http://feed.cnblogs.com/blog/u/199201/rss","get")); //post方式获取ip地址信息 print_r(curl("http://ip.taobao.com/service/getIpInfo.php","post",array('ip'=>'180.97.33.107')));
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述