
php
凯丨
你呢个人真系傻傻地嘅,冲冲凉,松松骨,舒筋活络啊。
展开
-
Laravel手动添加第三方SDK vendor 类自动加载
如果遇到成年老项目,或者不规范开发导致不能正常使用 composer require xxxx,可以用如下方式解决,以七牛云SDK为例进行处理。假设项目位置为:~/project,七牛云SDK位置为:~/qiniu。原创 2022-12-01 09:51:39 · 1009 阅读 · 0 评论 -
PHP不使用CURL发起POST请求
使用场景发现如下错误需要将CURL的SSL由NSS改为OpenSSL的cURL error 35: A PKCS #11 module returned CKR_DEVICE_ERROR, indicating that a problem has occurred with the token or slot. (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)使用file_get_contents()注意: 添加header头需原创 2020-07-10 17:00:43 · 654 阅读 · 0 评论 -
Laravel 重写日志,让日志更优雅
具体文件请移步githubgithub项目地址更改目的:重写了日志格式加入trace,一次请求的唯一标识加入error级别信息推送,事例中使用企业微信群助手让我们可以更优雅、更方便追踪日志信息将文件 AppTool.php``````Logger.php``````LogServiceProvider.php复制到 app/Providers文件夹下,将文件BaseCo...原创 2019-11-12 19:16:17 · 2554 阅读 · 0 评论 -
PHP最全的Header给浏览器返回状态码函数
function httpStatus($num){//网页返回码 static $http = array ( 100 => "HTTP/1.1 100 Continue", 101 => "HTTP/1.1 101 Switching Protocols", 200 => "HTTP/1...原创 2018-09-04 11:12:11 · 1024 阅读 · 0 评论 -
安装多版本PHP
参考链接 -- https://www.howtoforge.com/tutorial/how-to-install-php-7-on-debian/1. 从php.net下载并解压缩PHP并解压缩tar.bz2文件:mkdir -p /opt/php-7.2 mkdir /usr/local/src/php7.2-build cd /usr/local/src/php7.2-bui...原创 2018-09-04 11:10:11 · 273 阅读 · 0 评论 -
PHP的正则表达式手册
php的正则表达式很强大,学好了的确有很大的用处,但是正则表达式的规则很繁琐,所有有一个手册是必要的,这里收集了一个手册。正则表达式定义 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 列目录时, dir *.txt或ls *.txt中的*.txt就不是一个正则表达...转载 2018-02-09 14:27:43 · 196 阅读 · 0 评论 -
php 短链接
<?php//Sina App_Keydefine('SINA_APPKEY', '31641035');function curlQuery($url) { //设置附加HTTP头 $addHead = array( "Content-type: application/json" ); //初始化curl,当然,你也可以用fsockopen原创 2016-09-14 10:49:45 · 439 阅读 · 0 评论 -
在windows下进行linux开发:利用Vagrant+virtualbox
zhangkaix.com原创 2016-07-07 00:03:06 · 578 阅读 · 0 评论 -
根据经纬度获取两点之间的距离(php&mysql)
php01//根据经纬度计算距离,单位公里(1000米)02function getdistance($lng1,$lat1,$lng2,$lat2){03 //将角度转为狐度04 $ra原创 2015-04-13 09:35:21 · 1700 阅读 · 0 评论 -
支付宝接入Thinkphp
场景 : Thinkphp框架(3.2.3),支付宝即时到帐接口(http://aopsdkdownload.cn-hangzhou.alipay-pub.aliyun-inc.com/demo/alipaydirect.zip?spm=a219a.7629140.0.0.sBr1Z3&file=alipaydirect.zip),MD5加密方式最近做系统,需要实现在线支付原创 2016-04-13 09:33:58 · 993 阅读 · 0 评论 -
PHP 不使用新变量而交换现有两个变量的值
<?//如何不用新变量直接交换现有两个变理的值?$a = 1; $b = 2;list($a, $b) = array($b, $a);echo $a."-------".$b;?>原创 2016-04-13 09:26:39 · 884 阅读 · 0 评论 -
PHP 实现字符串翻转(包含中文汉字)
<?phpheader("content-type:text/html;charset=utf-8"); /**此函数的作用是反转中文字符串mb_strlen() 获取字符的长度mb_substr() 获取字符的单个元素krsort() 按照键值逆序排序数组implode() 将数组拼接为字符串explode() 使用字符串分隔字符串 */functionstr_rev_gb(原创 2016-04-13 09:25:46 · 949 阅读 · 0 评论 -
PHP列出文件目录树
PHP 列出文件目录树的一个方法,也可以判断其文件是不是目录,将其目录下的文件清晰的显示出来,可以帮助我们很好的了解目录的情况,可以迅速的看出本目录下一共有多少个目录,哪些不是目录文件,算是一个比较实用的一个小方法,可以将其应用到 php 文件管理系统中,帮助我们列出文件目录树,一目了解,将其文件进行完善,是一个不错的管理目录的PHP文件,源码如下:<?php $str= "D:/xx原创 2016-04-13 09:23:54 · 4030 阅读 · 0 评论 -
多台服务器下共享session cookie
ini_set('session.cookie_path', '/');ini_set('session.cookie_domain', '.test.com');ini_set('session.cookie_lifetime', '1800');if($_SERVER['HTTP_HOST']=='test.com'){header('HTTP/1.1 301 Moved Perman原创 2016-04-13 09:22:38 · 1263 阅读 · 0 评论 -
github做webhooks:[2]PHP实现钩子代码
在github的setting里面的webhooks里把我们的url地址填进去。 钩子更新的代码如下: <?phperror_reporting(E_ALL);$gitPost = json_decode(file_get_contents("php://input"));$dir = '/home/www/ownShop';//该目录为git检出目录$comm = "cd $...原创 2018-09-04 11:19:16 · 961 阅读 · 0 评论 -
第一节 PHP面向对象的特性(抽象、封装、继承、多态)
PHP面向对象编程的4个特性:1、抽象:把一类对的共同属性和方法抽象出来,形成类,这种思考方法就是抽象。2、封装:把成员方法和成员属性封装到类中,隐藏属性和方法,隐藏方法实现的细节,通过public、protected、private、final、static限定类成员的访问权限,数据被保护在内部,只有通过被授权的成员才能操作,尽可能的对成员进行封装。3、继承:可以使一个类继承并拥有另...原创 2019-06-06 13:52:51 · 184 阅读 · 0 评论 -
第二节 PHP设计模式(一)—单例模式(Singleton Pattern)
写在开始,凯 建议大家把前五节看完,这样有助于大家将来研究框架源码。主流框架中都有用到这些设计模式,单例、工厂、外观、注册树这几种是支撑TP和laravel框架运行必不可少的设计模式,大家一定要仔细研究一下。单例模式(Singleton Pattern):顾名思义,就是只有一个实例。作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。(一)为...原创 2019-06-06 14:01:49 · 263 阅读 · 0 评论 -
php7.2.x和5.6.x的垃圾回收机制(一)
注:本篇文章并不是最终准确答案,仅仅是本人试验结果,以及自己总结,欢迎大家共同讨论。注:本篇文章并不是最终准确答案,仅仅是本人试验结果,以及自己总结,欢迎大家共同讨论。注:本篇文章并不是最终准确答案,仅仅是本人试验结果,以及自己总结,欢迎大家共同讨论。PHP版本信息分别为:7.2.20 、 5.6.40有对垃圾回收机制了解,可在留言区探讨一下,相互分享,共同进步。 PHP是世界上最...原创 2019-07-14 01:10:15 · 656 阅读 · 0 评论 -
PHP对数组两次foreach的使用陷阱
1. 两次循环如果不实用引用打印结果没有任何问题$array = ['a','b','c'];foreach ($array as $value){}foreach ($array as $value){}var_dump("<pre>", $array);//执行结果array(3) { [0]=> string(1) "a" [1]=> ...原创 2019-07-08 15:41:37 · 1800 阅读 · 0 评论 -
PHP通过日志文件统计IP访问次数排序,取前n条
ip.log192.168.1.1192.168.1.1192.168.1.1192.168.1.1192.168.1.2192.168.1.2192.168.1.2192.168.1.3192.168.1.4192.168.1.4192.168.1.5代码逻辑:// 打开资源$resource = fopen('./ip.log', 'r');$arr =...原创 2019-07-08 15:42:36 · 1010 阅读 · 0 评论 -
PHP 重启 php-fpm 的几种方法
启动php-fpm:/usr/local/php/sbin/php-fpmphp 5.3.3 以后的php-fpm不再支持php-fpm 以前具有的 /usr/local/php/sbin/php-fpm (start|stop|reload)等命令,所以不要再看这种老掉牙的命令了,需要使用信号控制:master进程可以理解以下信号INT, TERM立刻终止QUIT平滑终...原创 2019-07-08 15:42:56 · 20835 阅读 · 0 评论 -
Laravel打印sql
方法一:$sql = DB::table('my_table')->select()->tosql();此方法支持 select 语句方法二:DB::connection()->enableQueryLog();DB::table('my_table')->insert($data);$logs = DB::getQueryLog();dd...原创 2019-07-08 15:43:09 · 964 阅读 · 0 评论 -
PHP 获取客户端ip地址
一、如果没有使用代理服务器, REMOTE_ADDR = 客户端IP HTTP_X_FORWARDED_FOR = 没数值或不显示 $ip = $_SERVER['REMOTE_ADDR'];二、使用透明代理, REMOTE_ADDR = 最后一个代理服务器 IP HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这...原创 2019-05-29 20:24:16 · 188 阅读 · 0 评论 -
第七节 PHP设计模式(六)—建造者模式(Builder Pattern)
建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式属于对象创建型模式。根据中文翻译的不同,建造者模式又可以称为生成器模式。(一)为什么需要建造者模式1,对象的生产需要复杂的初始化,...原创 2019-06-06 17:31:45 · 192 阅读 · 0 评论 -
第六节 PHP设计模式(五)—观察者模式 (observer Pattern)
观察者模式 (observer Pattern): 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。也叫发布-订阅模式(一)为什么需要观察者模式1,一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作2,完美的将观察者和被观察的对象分离开,使得每个类将重点放在某一个功能上,一个对象只做一件事情。3,观...原创 2019-06-06 16:58:04 · 166 阅读 · 0 评论 -
第五节 PHP设计模式(四)—注册树模式(Registry Pattern)
注册树模式(Registry Pattern ):注册树模式为应用中经常使用的对象创建一个中央存储器来存放这些对象 —— 通常通过一个只包含静态方法的抽象类来实现(或者通过单例模式)。也叫做注册器模式(一)为什么需要注册树模式解决常用对象的存放问题,实现类似于全局变量的功能。Thinkphp和Laravel的容器就是注册树模式。(二)注册树模式UML图这个设计模式的UML图...原创 2019-06-06 16:14:23 · 242 阅读 · 0 评论 -
第四节 PHP设计模式(三)—外观模式(门面模式)(Facade Pattern)
外观模式 (Facade Pattern):为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。(一)为什么需要外观模式1,开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。2,维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。3,外观模式可...原创 2019-06-06 15:44:52 · 257 阅读 · 0 评论 -
第三节 PHP设计模式(二)—工厂模式(Factor Pattern)
工厂模式(Factor Pattern),就是负责生成其他对象的类或方法,也叫工厂方法模式抽象工厂模式( Abstract Factor Pattern),可简单理解为工厂模式的升级版(一)为什么需要工厂模式1,工厂模式可以将对象的生产从直接new 一个对象,改成通过调用一个工厂方法生产。这样的封装,代码若需修改new的对象时,不需修改多处new语句,只需更改生产对象方法。2,若所...原创 2019-06-06 14:53:52 · 211 阅读 · 0 评论 -
升级WampServer支持PHP7
1. 把升级包解压后覆盖原文件 (http://aviatechno.net/files/wamp2.5.18_oto.zip)2. 修改 wamp\wampmanager.conf 文件:a. 在 defaultLanguage = english 后面添加[options]urlAddLocalhost = "off"ChangeServicesNames = "off原创 2016-04-13 09:20:34 · 2268 阅读 · 2 评论 -
windows下安装redis 以及phpredis的扩展 (windows redis php&php7)
windows redis php phpredis一、工具准备1. redis for windows 下载 https://github.com/ServiceStack/redis-windows2. php扩展下载 http://pecl.php.net/package-stats.php (redis 和 igbinary)注: 下载扩展是要注意看自己的php版本及x86orx64二、redis安装1.redi原创 2015-12-10 10:05:35 · 1337 阅读 · 0 评论 -
PHP发送POST请求的三种方式
PHP发送POST请求的三种方式原创 2016-01-14 15:34:05 · 854 阅读 · 0 评论 -
ThinkPHP 3.2.3 数据表大小写问题(查询时候强制转换小写)解决办法
ThinkPHP官方解决方案://在配置中加入'DB_PARAMS' => array(\PDO::ATTR_CASE => \PDO::CASE_NATURAL), // 数据库连接参数亲测行不通 (或许是我操作问题,如果有同样问题的同学,请接着往下看)//ThinkPHP/Common/funcitons.php//line 457 return trim(preg_repl原创 2015-06-04 16:32:43 · 3529 阅读 · 0 评论 -
php 小数整理,向上取整,向下去整,四舍五入,丢弃小数部分,保留整数部分
1.丢弃小数部分,保留整数部分php: intval(7/2)js:parseInt(7/2)2.向上取整,有小数就整数部分加1php: ceil(7/2)js: Math.ceil(7/2)3,四舍五入.php: round(7/2)js: Math.round(7/2)4,向下取整php: floor(7/2)js: Math.floor(7/2)转载 2015-06-25 13:55:57 · 377 阅读 · 0 评论 -
微信JS-SDK官方支付接口在THINKPHP中使用
1、下载demo进入微信JS-SDK说明文档http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html在页面底部下载demo2、将demo中的文件放入ThinkPHP中进入sample/php,除了sample.php其余全部放入ThinkPHP项目的Common中打开sample.php可以原创 2015-04-01 16:07:01 · 3794 阅读 · 0 评论 -
一个简单的长连接demo
文件大小未知长度 已经下载0 完成进度0% //文件长度 var filesize=0; function $(obj) {return document.getElementById(obj);} //设置文件长度 function setFileSize(fsize) { filesize=fsize;原创 2015-06-24 16:38:07 · 1809 阅读 · 0 评论 -
php实现自动运行文件
autoexec.php<?phpignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行.set_time_limit(30); //执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去$interval=3; //每隔5分钟运行 这个时间间隔可以更改do{ $url原创 2015-05-22 10:02:30 · 746 阅读 · 0 评论 -
使用ThinkPHP进行图片批量裁剪
步骤: 1、读取到文件夹下面的所有图片 2、循环通过thumb2方法进行裁剪01/**02 * 裁剪图片03 */04public functio原创 2015-04-13 09:37:38 · 815 阅读 · 0 评论 -
php根据给定日期获取给定日期本周的日期
<?phpclass Calendar{ protected $_table1;//table表格 /* * 根据日期获取一周的日期 */ public function showOneWeek() { $week='2015-04-28'; $whichD=date('w',strtotime($week))原创 2015-04-29 11:28:22 · 1020 阅读 · 0 评论 -
php实现日历超清晰代码
<?php/** * PHP万年历 * @author Fly 2015/4/29 */class Calendar{ protected $_table;//table表格 protected $_currentDate;//当前日期 protected $_year; //年 protected $_month; //月 protected $原创 2015-04-29 10:56:58 · 801 阅读 · 0 评论 -
php处理xml
$abc = " pepperoni tomato "; $xml = simplexml_load_string($abc); dump($xml);exit; $data = json_decode原创 2015-04-17 13:34:04 · 362 阅读 · 0 评论