![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
php
自己收藏学习
手握阳光,静守流年
展开
-
TP6 事件绑定、监听、订阅
订阅者类其实就是监听器的一个集合,在里面可以监听多个事件。编写好事件订阅者类后在event.php中注册事件订阅者。注册后就可以通过以下方式触发事件。命令行生成事件订阅者类。命令行生成事件监听类。转载 2023-02-06 16:49:16 · 472 阅读 · 0 评论 -
批量修改/批量更新数据库某一个字段的值
用字符串替换函数replaceupdate 表名 set 字段名 = replace(字段名,'http://zencart.me','zencart.me')replace(url, 'aaa', 'bbb') 【将url字段中的aaa批量更改为bbb】例子:我要原创 2022-03-28 10:50:42 · 17366 阅读 · 0 评论 -
window环境下使用小皮面板安装redis
转载自window环境下使用小皮面板安装redis_熟悉的新风景的博客-CSDN博客_小皮安装redis1,下载redis扩展Redis扩展下载地址:windows.php.net - /downloads/pecl/releases/redis/点开下列链接,选择版本下载属于自己版本的2,放到ext文件夹下并且修改php.ini在小皮面板安装...转载 2022-03-17 10:24:53 · 1369 阅读 · 0 评论 -
tp5 报错variable type error: array解决方法
当你在tp5框架中写方法时返回一个数组时,tp5会报错:variable type error: array这是因为tp5不支持返回数组。下面是小编亲测的2种解决方法,大家就看自己实际需求,来决定使用哪种方法。方法一:需要修改你的源代码直接在返回语句中加上json()、xml().....等你需要返回的数据类型函数例如:<?phpnamespace app\index\controller;use think\Db;class Index{ public function转载 2022-03-03 15:11:58 · 11088 阅读 · 0 评论 -
PHP 无限极分类和树形
PS:树形结构我前端不知道怎么无限制遍历下去,感觉只适合明确了总共几层的,比如一、二、三级菜单这种,不适合无限级无限级分类(递归方法):/*递归无限极分类 */function unlimitedMenu($arr,$pid=0,$level=0){ static $list = array(); foreach ($arr as $v) { //如果是顶级分类,则将其存到$list中,并以此节点为根节点,遍历其子节点 if ($v['pid'] == $pid) { $v原创 2021-11-25 15:58:45 · 319 阅读 · 0 评论 -
ajax序列化大量数据传
最近碰到要求前端传大量数据到后台重组,正常传值收到默认限制大小,又不想改动配置,网上查了序列化的方法//html部分{volist name="list" id="view" key="lk"} <div class="list-{$lk}"> {volist name="view" id="vi"} <div class="table-content"> <input type="text" value="{$v原创 2021-10-23 11:06:39 · 192 阅读 · 0 评论 -
sql中的 IF 条件语句的用法
IF 表达式IF( expr1 , expr2 , expr3 )expr1 的值为 TRUE,则返回值为 expr2expr1 的值为FALSE,则返回值为 expr3如下:SELECT IF(TRUE,1+1,1+2);-> 2SELECT IF(FALSE,1+1,1+2);-> 3SELECT IF(STRCMP("111","222"),"不相等","相等");-> 不相等那么这个 IF 有啥用处呢?举个例子:查找出售价为 50 的书,转载 2021-10-12 16:26:51 · 43006 阅读 · 2 评论 -
百度地图坐标、Google坐标、腾讯坐标相互转化
<?php//中国正常GCJ02坐标---->百度地图BD09坐标function Convert_GCJ02_To_BD09($lat,$lng){ $x_pi = 3.14159265358979324 * 3000.0 / 180.0; $x = $lng; $y = $lat; $z =sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $x_pi); $theta = atan2($y, $x.转载 2021-07-26 16:38:44 · 581 阅读 · 0 评论 -
JQ序列化后PHP后台解析
JQ序列化后的数据(serialize())后台看到大概是 "name=chen&sex=1"这样的,或者JQ序列化同名原创 2021-06-08 15:58:47 · 241 阅读 · 2 评论 -
file_get_contents 访问 ssl 错误的两种解决方法
转自博客园https://www.cnblogs.com/devcjq/articles/9250800.html第一种,也是最常见的,参考:https://jingyan.baidu.com/article/72ee561a54af56e16038df60.html打开php.ini文件,extension=php_openssl.dll去掉前面的分号,allow_url_include = off改为allow_url_include = On,然后重启服务就可以了。第二种,在国内比较.转载 2021-05-15 14:16:03 · 2552 阅读 · 0 评论 -
TP5查询空的2种情况
TP5查询数据库字段为null或空的字段$where['字段名'] = ['exp',Db::raw('IS NULL OR 字段名= " " ')];双引号之间要空格下,之前没空格报错搞得有点懵原创 2020-07-31 20:13:52 · 1579 阅读 · 0 评论 -
php 生成excel表的2种方法
$html = 数据;1.简单的excel表,不能设置样式,速度快 $filename = '表名'.date('YmdHis'); $header = array('a','b','c','d');//表头 $index = array('key1','key2','key3','key4');//键 header("Content-type:application/vnd.ms-excel"); header("Co...原创 2020-06-30 10:42:54 · 569 阅读 · 0 评论 -
TP5的whereOr方法多条件存在
$where['a'] = '1';$where['b'] = '2';$where['c'] = '3';$whereOr['a'] = '1';$whereOr['b'] = '2';$whereOr['c'] = '3';$data = Db::name('matorder')->where($where)->whereOr($whereOr)->...原创 2020-04-30 16:08:52 · 5805 阅读 · 0 评论 -
PHP 如何把二维数组变为 一维数组
1.array_column($array, column_key,index_key);返回数组中某一个单一列的值。这个方法 得益于 PHP 内部的使用方法array_column($array,column_key,index_key)版本 5.5 +array 必需。规定要使用的多维数组(记录集)。column_key :必需。需要返回值的列。...转载 2020-04-26 10:11:57 · 1981 阅读 · 0 评论 -
TP5 分页一些小点
1、$data = Db::name('tableName')->where($where)->paginate(2, false, [ 'query' => request()->param(), ]);这样可以带参数,点击其他页有传递参数2、$data->currentPage();返回当前是第几页3、$d...原创 2020-04-10 17:06:32 · 164 阅读 · 0 评论 -
PHP 生成二维码
php生成二维码使用的是一个QRcode 的二维码类库,http://phpqrcode.sourceforge.net/ 这个链接是qrcode 官方网站如下写入PHP程序代码include 'phpqrcode.php';$value = 'http://blog.lm520.cn'; //二维码内容$errorCorrectionLevel = 'L';//容错级别$m转载 2017-09-18 17:42:45 · 407 阅读 · 0 评论 -
php编写的抽奖程序中奖概率算法
本文给大家分享的是php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂,有需要的小伙伴参考下吧。先完成后台PHP的流程,PHP的主要工作是负责配置奖项及对应的中奖概率,当前端页面点击翻动某个方块时会想后台PHP发送ajax请求,那么后台PHP根据配置的概率,通过概率算法给出中奖结果,同时将未中奖的奖项信息一并以JSON数据格式发送给前端页面。先来看概率计算...转载 2018-07-03 19:41:36 · 10816 阅读 · 0 评论 -
php 经典的算法题你懂的
有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来,把所有菜果分成5份,但是多了一个,顺手把这个扔给树上的猴了,自己先拿1/5藏了。没想到其他四人也都是这么想的,都如第一个人一样分成5份把多的那一个扔给了猴,偷走了1/5。第二天,大家分赃,也是分成5份多一个扔给猴了。最后一人分了一份。问:共有多少苹果?for ($i = 1; ; $i++){ if ($i%5 == ...转载 2018-08-01 11:39:13 · 969 阅读 · 0 评论 -
mysql 查询某个字段不为空(附thinkphp写法)
1.如果要写某个字段不为空,mysql的表达式应为:假设字段为:door_open_api_key,那么:door_open_api_key is not null AND door_open_api_key != "" 2. thinkphp中应写为 $Reserve_system = M('Reserve_system'); $where =...转载 2018-09-04 16:11:34 · 3262 阅读 · 0 评论 -
PHP大量数据循环时内存耗尽问题的解决方案
最近在开发一个PHP程序时遇到了下面的错误:PHP Fatal error: Allowed memory size of 9999999999 bytes exhausted错误信息显示允许的最大内存已经耗尽。遇到这样的错误起初让我很诧异,但转眼一想,也不奇怪,因为我正在开发的这个程序是要用一个foreach循环语句在一个有百万条记录的表里全表搜索具有特定特征的数据,也就是说,一次要把百...转载 2019-01-02 18:35:24 · 4024 阅读 · 0 评论 -
微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结
转自郑陆伟博客,原文地址:https://www.cnblogs.com/zhengluwei/p/7746095.html最近负责的一些项目开发,都用到了微信支付(微信公众号支付、微信H5支付、微信扫码支付、APP微信支付)。在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存。先说注意的第一点,所有支付的第一步都是请求统一下单,统一下单,统一下单,请求URL地址...转载 2018-06-07 15:05:24 · 1438 阅读 · 0 评论 -
PHP四种排序方式和二分查找。
许多人都说算法是程序的核心,算法的好坏决定了程序的质量。作为一个初级phper,虽然很少接触到算法方面的东西。但是对于基本的排序算法还是应该掌握的,它是程序开发的必备工具。这里介绍冒泡排序,插入排序,选择排序,快速排序四种基本算法,分析一下算法的思路。前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序。?1$arr(1,43,54,62,21,66...转载 2018-06-21 11:20:07 · 441 阅读 · 0 评论 -
MySQL 对一段时间内每天数据统计案例--sql优化
在互联网项目中,对项目的数据分析必不可少。通常会统计某一段时间内每天数据总计变化趋势调整营销策略。下面来看以下案例。案例在电商平台中通常会有订单表,记录所有订单信息。现在我们需要统计某个月份每天订单数及销售金额数据从而绘制出如下统计图,进行数据分析。订单表数据结构如下:order_idorder_sntotal_price转载 2017-09-19 20:06:23 · 2065 阅读 · 0 评论 -
ThinkPHP 鲜为人知的 selectAdd 方法 addAll( select() )
TP算是国内相当热门的一个PHP框架,相信大家对TP的普通增删查改所用的select(),add(),save(),delect(),find(),getField()等等内置函数早已烂熟于心了。 今天,就向大家介绍一种TP手册中未提及,但却一直存在于源码当中的 SelectAdd()方法(3.1,3.2均支持)。这是本人在阅读TP源码的时候的偶然发现,前几天刚好碰到一个用得着的业务逻辑,便尝转载 2017-09-19 19:53:04 · 863 阅读 · 0 评论 -
PHP错误异常处理详解
PHP异常处理详解 异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。 异常处理通常是防止未知错误产生所采取的处理措施。异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。当异常被触发时,通常会发生: 当前代码状态被保存 代码执行被切换到预定义的转载 2017-09-18 18:09:36 · 607 阅读 · 0 评论 -
PHP 之 面试题(笔试题总结)
多个进程同时处理同一文件,加下锁防冲突function writeData($path, $mode, $data){ $fp = fopen($path, $mode); $retries = 0; $max_retries = 100; do{ if ($retries > 0){ usleep(rand(1,转载 2017-09-18 18:06:49 · 461 阅读 · 0 评论 -
十张 GIFs 让你弄懂递归等概念
原文链接:http://codingpy.com/article/10-gifs-to-understand-some-programming-concepts/ 图像(包括动图)是传递信息的一种高效方式,往往能增强表象、记忆与思维等方面的反应强度。所谓一图胜千言,说的就是这个道理。 今天为大家整理了十张动图 GIFS,有助于认识循环、递归、二分检索等概念的具体运行情况。代码实例以 Pytho转载 2017-09-18 17:48:51 · 413 阅读 · 0 评论 -
定时任务命令
1.定时任务服务提供crontab命令来设定服务2.crontab -e //编辑某个用户的cron的服务3.crontab -l //列出某个用户cron服务的详细内容4.crontab -r //删除某个用户的cron服务定时任务结合PHP的案列## php 代码 db.phpclass Db { static private $_inst转载 2017-09-18 17:46:10 · 807 阅读 · 0 评论 -
PHP 之 算法面试题(一)
冒泡排序算法基本思想: 对需要排序的数组从后往前(逆序)进行多遍的扫描,当发现相邻的两个数值的次序与排序要求的规则不一致时,就将这两个数值进行交换。这样比较小(大)的数值就将逐渐从后面向前面移动。 function mysort($arr) { for($i = 0; $i $arr); $i++) { $isSort = false;转载 2017-09-18 17:07:47 · 511 阅读 · 0 评论 -
PHP开发环境搭建--Windows
本文目录准备开始PHPApache 此处参考1 参考2MySQL错误锦集附httpd命令搭建php开发环境有两种方式,一种是自定义搭建;另一种是使用php服务组件,PHP服务器组件非常多有WampServer、XAMPP、AppServ、phpStudy、phpnow等。 本文介绍 自定义搭建①准备转载 2017-09-14 11:12:49 · 636 阅读 · 0 评论 -
最常用的PHP正则表达式收集整理
正则表达式用于字符串处理、表单验证等场合,实用高效。本文收集了一些常用的表达式:$str = preg_replace("/()(.*?)()/", '\1\2\3', $str);其中用了三个子模式(每个圆括号中内容为一个子模式),第一个是链接开始标签,第二个是链接文本,第三个是然后第二个参数中\1、\2、\3就表示这三个部分,要替换成什么样子还不简单?获取页面中的所转载 2017-09-14 11:06:48 · 351 阅读 · 0 评论 -
linnux一键安装PHP环境(OneinStack)
1、yum -y install wget screen curl python #for CentOS/Redhat 2、wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz #包含源码,国内外均可下载 3、tar xzf oneinstack-full.tar.gz4、cd oneinstack #如...转载 2017-09-14 10:43:09 · 477 阅读 · 0 评论 -
基于TP的每日签到代码
// 每日签到 public function dailySign(){ // 获取用户签到信息 $merArr = M('merchant') -> where("MerID = '$this->UserId'") -> find(); // 判断是否为注册后第一次签到 if转载 2017-09-14 10:38:47 · 2350 阅读 · 0 评论 -
php curl常用的5个例子
我用php ,curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等。但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了。1,抓取无访问控制文件查看复制打印?<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,转载 2017-09-21 18:14:00 · 542 阅读 · 0 评论 -
被人遗忘的MAX_FILE_SIZE文件上传限制大小参数
在文件上传中,我们经常会要求显 示用户上传文件大小,超过上传限制的文件就会不允许用户上传。虽然我们可以用程序去判断上传文件是否超过限制,但是其实我们的PHP程序是无法判断用户本 地文件大小的。所以等到我们的PHP来判断文件大小的时候,那个文件其实已经上传到服务器了。这时候再判断超过限制了,不允许上传。可就有点马后炮了。 那么有没有办法在文件上传之前就判断将要上传的文件是否超过限制,不允许用户转载 2017-10-09 17:32:21 · 1765 阅读 · 0 评论 -
Memcache服务搭建
Memcache Memcache的作用网上资料都讲的很好,说简单点就是减轻读取数据库的压力,原理也很简单: 被请求的数据会先到memcache里去取,如果没有就去数据库里取,顺便给memcache带一份。 每次更新数据也先更新memcache里的数据,如果没有则更新数据库,同时更新memcache。 因此需要注意的是这个数据是易失去性存储的。转载 2017-10-10 15:18:54 · 406 阅读 · 0 评论 -
php把一维数组,分为每3个连续的为一组的多维数组
php把一维数组,分为每3个连续的为一组的多维数组[php] view plain copy假如原数组为$aaa的话 $bbb= array(); for($i=0;$i<ceil(count($aaa));$i++) { $bbb[] = array_slice($aaa, $i * 3 ,3); } ...转载 2018-05-24 18:20:16 · 2175 阅读 · 0 评论 -
PHP利用HTTP_X_FORWARDED_FOR抓取訪客ip
一般做訪客計數器時,大多都會利用PHP的$SERVER['REMOTE_ADDR']來抓取訪客的IP位址;可是在書上發現REMOTE_ADDR不能抓取到有經過proxy(代理伺服器)訪客的真實IP,所以搭配利用$SERVER['HTTP_X_FORWARDED_FOR']它可以將所有訪客主機經過的代理主機IP記錄下來便可以抓到有經過proxy訪客的真實IP//先判斷HTTP_X_FORWARDED...转载 2018-06-05 16:17:36 · 2178 阅读 · 0 评论 -
数组合并,相同键名合并一起
$a = array( array( "pla_id" => "298", "user_id" => "1", "due_in" => "8.33", ), array( "pla_id" => "976", "user_id" =&转载 2018-04-20 16:42:19 · 5002 阅读 · 0 评论 -
mysql sql查询字段包含某个字段的所有记录
一张表 tableid gid1 1,2,32 22,233 123,3214 55,2,666假如想查询gid 为2的所有记录,而像22,123,这样的不被查询,可以用select * from `table` where FIND_IN_SET('2',gid);//select * from `表名` where FIND_IN_SET('查询的条件',字段名);那么得出...原创 2018-02-26 16:54:16 · 23257 阅读 · 2 评论