![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
PHP
山水云
PHP从业者和狂热者,乐于解答、分享问题和研究前沿技术。
展开
-
PHP递归实现无限极分类
实现无限极分类的放哪广发有很多,这里介绍的是递归方法。准备测试数组:$cates = array( array( 'id' => 1, 'pid' => 0, 'title' => 'php' ), array( 'id' => 2, 'pid' => 0,原创 2015-10-12 14:27:05 · 475 阅读 · 0 评论 -
PHP里还有这些好用的技巧
array_count_values计算一维数组中所有值出现的个数$array = array(1, "hello", 1, "world", "hello");print_r(array_count_values($array));输出:Array( [1] => 2 [hello] => 2 [world] => 1)原创 2016-05-05 09:34:51 · 346 阅读 · 0 评论 -
PHP在Windows环境下安装Imagick扩展
1、下载DLL扩展文件 http://pecl.php.net/package/imagick2、将php_imagick.dll文件放在php的ext扩展目录中 注意:具体的ext扩展目录不一定,要从phpinfo()里面看3、在php.ini里加载扩展 extension=php_imagick.dll 注意:php.ini的位置同样要在phpinfo()里面看4、将第一步里的所有dll原创 2016-05-20 17:50:44 · 630 阅读 · 0 评论 -
如何不让一个慢查询把服务器搞冒烟
手机API接口如何抗住高并发前段时间项目迎来七夕高峰,有一个接口的SQL本来长这样:mysql> explain SELECT *,sum(num) AS sum FROM bi_search WHERE search_time >= '2016-08-30' AND type = 0 AND state = 1 GROUP BY keyword ORDER BY sum DESC LIMIT 50原创 2016-08-31 14:39:10 · 529 阅读 · 0 评论 -
PHP常用代码片段
整理一份代码片段列表,涵盖了大部分经常用到的函数,都是近期在实际工作中用到的,做个记录。原创 2015-10-12 12:32:53 · 534 阅读 · 0 评论 -
PHP解析csv文件
php自带有csv解析函数str_getcsv<?php $Data = str_getcsv($CsvString, "\n"); //parse the rows foreach($Data as &$Row) $Row = str_getcsv($Row, ","); //parse the items in rows ?>原创 2019-03-05 19:06:00 · 1073 阅读 · 0 评论 -
通过xml解析、合并百兆Excel大文件,消耗内存低
/* * 通过xml解析Excel,合并文件 * 支持大文件合并,经测试共计100m的三个文件合并需要7分钟,12m内存 * 要求:所有被合并的Excel header结构必须一致 */ public static function combineXlsx($source_xlsx_files, $dest_xlsx_file_name) {...原创 2019-07-16 09:37:54 · 511 阅读 · 0 评论 -
php安装imagick扩展
imagick相对于GD库有更好的图像处理函数支持,滤镜、模糊、旋转的处理效率比GD高很多,对于GIF的处理也更得心应手,imagick还支持3D图像效果。imagick相对于GD库有更好的图像处理函数支持,滤镜、模糊、旋转的处理效率比GD高很多,对于GIF的处理也更得心应手,imagick还支持3D图像效果。环境要求php > 5.4.0 & ImageMagick >...原创 2019-09-17 00:13:58 · 3892 阅读 · 0 评论 -
php用seaslog记录日志
Seaslog可以进行便捷、规范的log记录,高效的海量log分析,可配置、多途径的log预警等。seaslog的介绍,官方文档已经讲得很清楚了,不赘述,这里主要说说php日志相关的和seaslog要注意的地方。日志的记录和分析,大改有三个步骤:日志记录、日志收集、日志分析。日志记录一般可分为数据库和文件。数据库又分为mysql这种sql数据库和mongo为代表的nosql数据库。关于采...原创 2019-09-17 00:15:39 · 1607 阅读 · 0 评论 -
将秒数转化为时分秒
$rst = '';$s = time() - strtotime('2016-01-12 09:28:00');$day = intval($s/86400);$remain = $s%86400;$hour = intval($remain/3600);$remain = $remain%3600;$minute = intval($remain/60);$second = $re原创 2016-01-13 10:40:16 · 904 阅读 · 0 评论 -
一个最简单的try catch
PHP中必须先手动抛出异常,然后才能捕获异常(因为PHP是后来才加入异常的,而之前的很多基础类库并没有做抛出异常异常,所以需要手动抛出)。function test($a){ if($a<5){ throw new Exception('error ...........'); }}try { test(3);} catch(Exception $e) {原创 2015-11-19 18:28:54 · 319 阅读 · 0 评论 -
PHP之CURL模块上传文件
CURL很强大,可以抓取网页,可以模拟登录,还可以上传下载文件。CURL上传文件的好处之一就是可以配合AJAX实现后端文件传输,既可以避免上传文件导致的页面刷新,又可以很好的解决JS跨域等其他问题。前台页面用表单提交或者AJAX提交都可以,具体看需求,但后端都会接到一个文件信息数组,类似于这样:Array( [0] => Array ( [name]原创 2015-10-12 14:39:29 · 771 阅读 · 0 评论 -
ThinkPHP多语言功能设置方法
注:本方法适用于3.2.2版本。第一步,在AplicationCommonConf文件夹下创建tags.php文件,输入以下代码:return array( 'app_begin' => array('BehaviorCheckLang'), // 执行多语言检测行为);第二步,在AplicationCommonConfconfig.php中开启语言包功能,并配置相关参数:return a原创 2015-10-12 15:24:47 · 1897 阅读 · 0 评论 -
Ajax无刷新上传文件跨域问题解决办法
我的需求是这样的:A和B是两个不同域的服务器,A要调用B的接口将文件上传到B端,B端返回一串JSON,A端要拿到返回值进行处理。首先说Ajax无刷新实现文件上传,网上有很多插件,比较好用的有uploadify(flash),jquery.upload(iframe)等。jquery.upload借助iframe,在iframe里创建表单submit,上传完成后移除iframe,这样只在框架里刷新,表原创 2015-10-12 14:42:02 · 1757 阅读 · 0 评论 -
PHP文件缓存类
最近项目数据库的量越来越大,直接查DB的方式已经不能满足需求了,现成的缓存工具有memcached、redis,不过今天自己写了个文件缓存类,寥寥几行代码就能满足需求。代码如下:Class FileCache{ Public function cache($filename, $expire, $table, $sql){ // 有缓存就用,没有就创建 if原创 2015-10-12 14:23:22 · 389 阅读 · 0 评论 -
PHP获取MP3时长类
最近写个上传MP3的功能,为了方便运营的同学操作,需要上传完MP3后自动获取音乐时长,然后自动插入到input里,关于MP3获取时长的类有好几个,试过之后决定采用下面这种方法。// 调用方法:$mp3 = new MP3File($filename);$a = $mp3->getDurationEstimate();$b = $mp3->getDuration();$duration = $原创 2015-10-12 14:30:24 · 7472 阅读 · 3 评论 -
ThinkPHP中RBAC类_ACCESS_LIST显示为空的解决方法
使用ThinkPHP框架中的RBAC类验证用户权限时,调用saveAccessList方法会输出一个数组,_ACCESS_LIST显示的是该用户的所属权限,如果为空则表示没有权限。原因分析:终极原因就是think_access数据表中只保存了方法级别的角色——节点对应信息,而没有保存控制器——节点和应用——节点的数据。解决方法:1、分配子级权限时记得勾选父级节点。2、分配时不必勾选,在PHP后端处理原创 2015-10-12 15:27:12 · 1354 阅读 · 0 评论 -
色情图片识别
foreach ($posts as $k => $v) { $pics = $v->vPics->get_val(); $filename = $pics[0]->val; $arr = getimagesize($filename); list($width, $height, $type) = getimagesize($filename); switch原创 2015-11-18 18:04:24 · 4733 阅读 · 0 评论 -
php的socket通信
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:什么是TCP/IP、UDP?Socket在哪里呢?Socket是什么呢?你会使用它们吗?什么是TCP/IP、UDP?TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集转载 2015-11-19 18:01:45 · 336 阅读 · 0 评论 -
php使用Yar实现RPC调用
Yar轻量级、可串行也可并行、可通过get方法查看接口列表和注释,只需要把接口信息整理好,就能在查看接口的时候同时查看接口文档了。Yar是啥轻量级、并行php RPC框架,只支持php程序之间的相互调用。优点:轻量级、可串行也可并行、可通过get方法查看接口列表和注释,只需要把接口信息整理好,就能在查看接口的时候同时查看接口文档了。缺点:不支持跨语言调用。安装git clone htt...原创 2019-09-17 00:16:06 · 1415 阅读 · 1 评论