PHP
Icebreaking丶
HelloWorld
展开
-
php微信H5支付V3版
php微信H5支付V3版原创 2023-10-28 11:26:07 · 170 阅读 · 0 评论 -
tp6使用redis消息队列
tp6使用redis消息队列原创 2023-09-25 13:57:56 · 154 阅读 · 0 评论 -
php实现微信jsapi支付(v3版本)
php微信jsapi支付 v3版原创 2022-11-09 11:18:59 · 2904 阅读 · 2 评论 -
php实现微信jsapi支付(v2版本)
php微信支付原创 2022-11-02 15:47:06 · 1088 阅读 · 0 评论 -
tp5传递不同的分页参数并修改分页后的数据
tp5传递不同分页参数并且修改分页后得数据原创 2022-07-14 11:42:34 · 287 阅读 · 0 评论 -
fastadmin自定义页面,点击上传按钮,无法触发上传的事件解决
使用官方的命令行生成curd表单可正常使用上传组件,但是自定义页面没有办法调起上传事件,本文讲解怎么解决此问题fastadmin一个php控制器对应一个js文件php方法 //对比订单 public function compare_order() { return $this->view->fetch(); }html<form id="first-form" role="form" data-toggle="validator"原创 2022-02-26 16:02:06 · 3516 阅读 · 0 评论 -
fastadmin对表格字段进行判断进行格式化
{field: 'remark_dict', title: __('Remark_dict'), operate: 'false',formatter: function (value,row,index) { //return '总额:'+ row.remark_dict +'<br/>' //业务逻辑 }},原创 2022-01-26 14:12:50 · 1653 阅读 · 0 评论 -
使用Guzzle发送请求报415 Unsupported Media Type错误解决
原创 2022-01-06 12:39:29 · 524 阅读 · 0 评论 -
第十三章 PHP设计模式之建造者模式
<?php//画小人abstract class PersonBuilder{ abstract public function BuildHead(); abstract public function BuildBody(); abstract public function BuildArmLeft(); abstract public function BuildArmRight(); abstract public function Buil原创 2021-12-12 14:13:41 · 172 阅读 · 0 评论 -
第十二章 PHP设计模式之外观模式
//子系统1class SubSystemOne{ public function methodOne() { echo "子系统方法1\n"; }}//子系统2class SubSystemTwo{ public function methodTwo() { echo "子系统方法2\n"; }}//子系统3class SubSystemThree{ public function metho.原创 2021-12-12 13:49:40 · 204 阅读 · 0 评论 -
第十一章 迪米特法则
总结迪米特法则,如果两个类不彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。在类的结构设计上,每一个类都应当 尽量降低成员的访问权限类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。...原创 2021-12-12 13:42:47 · 142 阅读 · 0 评论 -
第十章 PHP设计模式之模板方法模式
// 对甲乙两名同学所抄试卷,尽量将相同的部分提到父类// 金庸小说考题试卷class TestPaper{ public function TestQuestion1() { echo "杨过说过,后来给了郭靖,炼成倚天剑、屠龙刀的玄铁可能是[]a.球磨铸铁 b.马口铁 c.高速合金钢 d.碳素纤维 \n"; echo "答案 ".$this->answer1()."\n"; } public function TestQues原创 2021-12-06 11:09:01 · 74 阅读 · 0 评论 -
第九章 PHP设计模式之原型模式
<?phpclass Company{ public $company; public function setName($name) { $this->company = $name; } public function getName() { return $this->company; }}Class Resume { public $name; publi原创 2021-12-06 10:42:53 · 264 阅读 · 0 评论 -
第八章 PHP设计模式之工厂方法模式
class Operation{ protected $a = 0; protected $b = 0; public function setA($a) { $this->a = $a; } public function setB($b) { $this->b = $b; } public function getResult() { $result = .原创 2021-12-02 09:43:36 · 81 阅读 · 0 评论 -
第七章 PHP设计模式之代理模式
class SchoolGirl{ private $name; function __construct($name) { $this->name = $name; } public function getName() { return $this->name; }}interface GiveGirl{ public function GiveDolls(); publi原创 2021-12-01 16:09:37 · 167 阅读 · 0 评论 -
第六章 PHP设计模式之装饰模式
<?phpabstract class Component{ abstract public function Operation();}/** * 被装饰者类 * ConcreteComponent */class ConcreteComponent extends Component{ public function Operation() { echo "具体对象的操作.\n"; }}abstract class Dec原创 2021-11-29 14:03:10 · 73 阅读 · 0 评论 -
第五章 控制倒转原则
总结依赖倒转原则, 高层模块不应该依赖底层模块,抽象不应该依赖细节,都应该依赖抽象。针对接口编程,不要对实现编程。里氏替换原则,子类型必须能够替换它们的父类型。只有当子类可以替换父类,软件单位的功能不受影响时,父类才真正被复用,而子类也能够在父类的基础上增加新的行为。由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以扩展。依赖倒转其实可以说是面向对象设计的标志,用哪种语言来编写程序不重要,如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象原创 2021-11-27 15:09:14 · 143 阅读 · 0 评论 -
第四章 开放封闭原则
总结软件实体应该可以扩展,但是不可以修改。怎样的设计才能面对需求的改变却可以保持相对稳定,从而使得系统可以在第一个版本以后不断推出新的版本呢?无论模块是多么的‘封闭’,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。等到发生变化时立即采取行动。在我们最初编写代码时,假设变化不会发生。当发生变化时,我们就创建抽象来隔离以后发生的同类变化。面对需求,对程序的改动是通过增加新代原创 2021-11-27 10:48:48 · 56 阅读 · 0 评论 -
第三章 单一职责原则
总结单一职责原则, 就一个类而言,应该仅有一个引起 它变化的原因。如果一个类承担的职责过多,就等于把职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破环。软件设计真正要做的许多内容,就是发现职责并把这些职责相互分离。果你能够想到多于一个的动机改变一个类,那么这个类就具有多于一个类的职责。...原创 2021-11-27 10:43:44 · 152 阅读 · 0 评论 -
第二章 PHP设计模式之策略模式
<?php//声明一个抽象类//里面还有个抽象方法abstract class Strategy{ // 算法方法 abstract public function AlgorithmInterface();}//A算法class ConcreteStrategyA extends Strategy{ public function AlgorithmInterface() { echo 'A类实现'; }}//B算法c原创 2021-11-27 10:34:01 · 68 阅读 · 0 评论 -
第一章 PHP设计模式之简单工厂模式
简单工厂模式<?php/** * Operation */class Operation{ protected $a = 0; protected $b = 0; public function setA($a) { $this->a = $a; } public function setB($b) { $this->b = $b; } public functio原创 2021-11-19 16:42:37 · 61 阅读 · 0 评论 -
thinkphp5.0使用自带的think-queue队列
composer安装相关的类库这里使用的tp5.0,所以只能是安装低版本的包composer require topthink/think-queue=1.1.6安装完毕在extra下生成配置文件queue.php使用redis作为队列驱动return [ 'connector' => 'Redis', // Redis 驱动 'expire' => null, // 任务的过期时间,默认为60秒; 若要禁用,则设原创 2021-11-13 15:24:14 · 3347 阅读 · 0 评论 -
windows下PHP截取视频第一帧
php截取视频第一帧,需要配合第三方软件实现,php执行windowsShell命令,进行图片处理首先下载第三方软件ffmpeghttp://www.ffmpeg.org/download.htmlPHP代码//图片保存的名称$name = md5(date('YmdHis')).".png"; //文件绝对路径$ffmpeg = "D:/App/ffmpeg/bin/ffmpeg.exe";//视频的文件路径$video_route="D:/server/plan/public/upl原创 2021-11-02 10:07:24 · 2034 阅读 · 0 评论 -
PHP使用GuzzleHttp发送get/post请求
GuzzleHttp是一个http客户端设置header头$http = new Client(['headers' => [ "Access-Token" => '104231665f5749ecd79122edbcb89b55f7c55e40', "Content-type" => 'application/json' ]]);发送post请求 $response = $http->post(原创 2021-10-22 17:05:16 · 7595 阅读 · 0 评论 -
fastadmin使用Summernote富文本编辑器
使用方法FastAdmin的富文本编辑器只需要给对应的textarea增加一个class为editor即可,FastAdmin在渲染时即会将textarea渲染为富文本编辑器,目前支持summernote、nkeditor和ueditor等富文本编辑器,需安装对应的插件即可正常使用。<textarea id="c-product_content" class="form-control editor" name="row[product_content]" cols="30" rows="10"&原创 2021-08-26 14:55:59 · 2675 阅读 · 0 评论 -
php允许多个域名跨域问题
php开发中跨域报错问题The value of the ‘Access-Control-Allow-Credentials’ header in the response is ‘’ which must be ‘true’ when the request’s credentials mode is ‘include’. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withC原创 2021-08-05 15:09:47 · 570 阅读 · 1 评论 -
php保存远程图片
/** * @param $url //远程图片路径 * @param string $path //保存图片文件夹 * @return string|string[] //返回文件名称 */function download($url, $path = ''){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);原创 2021-05-25 13:35:34 · 374 阅读 · 0 评论 -
2021年php面试题
1.用PHP封装自定义函数,将字符串’ni_hao_shi_jie’转化为字符串’NiHaoShiJie’2.用PHP打印乘法口诀表3.用PHP写出两种常用的一维数组排序算法4.怎么理解php程序设计依赖注入与控制反转的概念5.Swoole内存溢出处理6.HTTP常见状态码含义7.Swoole工作流程与fpm工作流程区别8.简述MySQL性能优化9.MySQL引擎myisam与innodb的区别10.NGINX如何记录来访者的IP11.Linux解压缩包与添加压缩包(后缀为.tar.gz原创 2021-05-01 16:57:21 · 320 阅读 · 1 评论 -
PHP的foreach循环
$a = ['张三','李四','王五'];function run ($value) { print_r($value); return;}function runs ($value) { print_r($value); exit();}foreach ($a as $value) { echo run($value); //输出 张三,李四,王五 echo runs($value); //输出 张三 循环被打破}...原创 2021-03-20 12:30:21 · 231 阅读 · 0 评论 -
PHP的H5页面在外部浏览器调起微信小程序
外部浏览器调用H5调起微信小程序本次使用的是通过小程序scheme码跳转至小程序PHP服务端<?phpnamespace app\index\controller;use think\Db;use think\Controller;class Mini extends Controller{ public $appid = '你的appid'; public $secret = '你的secret'; public functio原创 2021-02-25 12:47:00 · 1437 阅读 · 0 评论 -
windows下Homestead创建laravel开发环境
拉取虚拟机vagrant box add laravel/homestead拉取homesteadgit clone https://github.com/laravel/homestead.git HomesteadHomestead初始化bash init.sh进入Homesteadvagrant ssh退出Homesteadexit重新加载配置vagrant reload --provision浏览器访问192.168.10.10...原创 2020-12-26 12:34:50 · 79 阅读 · 0 评论 -
PHP8与PHP7计算性能对比
随着php最新版本的发布,给php带来了巨大性能提升,主要是增加了JIT及时编译的支持,以下是计算性能的测试,并发性能还未进行测试。$start = microtime(true);$sum = 0;for ($i = 0; $i < 10000000000; $i++) { $sum += $i;}$end = microtime(true);echo $end - $start;php7.2耗时164sphp8.0耗时60s从上面的结果看来性能的提升还是很大的原创 2020-11-28 12:59:50 · 7943 阅读 · 0 评论 -
swoole与传统nginx/php-fpm并发性能比较
nginx/php-fpm$servername = "";$username = "root";$password = "";$dbname = "test"; // 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// 检测连接if ($conn->connect_error) { die("连接失败: " . $conn->connect_error);} $sql =原创 2020-11-21 15:09:42 · 705 阅读 · 1 评论 -
php使用swoole实现websocket通信
下载安装完swoole,开启websocket服务器php ws_server.php服务端codeclass WebSocketTest{ public $server; public function __construct() { $this->server = new Swoole\WebSocket\Server("0.0.0.0", 9501); $this->server->on('open', functi原创 2020-11-19 20:23:46 · 699 阅读 · 0 评论 -
linux环境下编译安装PHP7扩展swoole
linux环境下如何安装swoole下载源码http://git.oschina.net/swoole/swoole编译安装cd swoolephpize (ubuntu 没有安装phpize可执行命令:sudo apt-get install php-dev来安装phpize)./configure (此处需要定义php的路径)make && make install配置php,测试 #修改php.ini文件 extension=swoole.so #测试模块是否原创 2020-11-16 18:31:02 · 85 阅读 · 0 评论 -
PHP常用自定义函数封装整理
打印函数function dd($data){ // 定义样式 $str = ''; if (is_bool($data)) { $show_data = $data ? 'true' : 'false'; } elseif (is_null($data)) { $show_data = 'null'; } else { $show_data = "<pre style=\"background: #000;原创 2020-09-24 16:04:27 · 677 阅读 · 1 评论 -
PHP面向对象之延迟静态绑定
php5.3已经开始支持延迟静态绑定。延迟静态绑定指的是在父类中获取子类的最终状态。在父类中,如果出现self关键字,被子类继承后,这个self值的还是父类而不是子类。如果在父类中出现了self关键字,并且子类继承了含有self的这段代码,那么需要考虑静态延迟绑定。在父类中使用static代替self.说到底,self到底表示什么?self用在类中,引用自身的静态成员变量,表示的就是类名,完全可以被类名替换掉。被子类继承之后,self还是表示的父类名,而不是子类self了Demo未使用延迟静态绑定原创 2020-09-09 20:47:45 · 274 阅读 · 0 评论 -
PHP设计模式三大类
设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大原创 2020-09-07 19:25:19 · 119 阅读 · 0 评论 -
PHP5到PHP7新特性汇总
短标签的使用//短标签的使用,echo时使用,一般是是视图模板中使用.以下两种写法相同$name = '张三';<?=$name?><?php echo $name; ?>三元运算符简写 php5.3后增加$page = '';$page = $page ? $page : 1;echo $page; //1$page = $page ?: 1;echo $page; //1通过匿名函数实现回调 php5.3后增加//例如数组中每个单元值修改functi原创 2020-09-07 17:59:51 · 158 阅读 · 0 评论 -
PHP二维数组追加修改二维数组数据
1.foreach循环追加foreach ($res as $k => $v) { $res[$k]['time'] = date('Y-M-D',$v['time']);}2.循环引用追加foreach ($res as $k => &$v) { $v['time'] = date('Y-M-D',$v['time']);}3.使用array_walk追加array_walk($res,function (&$v) { $v['time'] = da原创 2020-08-11 16:14:58 · 1468 阅读 · 0 评论