
PHP技术分析
tangqing24680
这个作者很懒,什么都没留下…
展开
-
PHP 实现二叉树排序
数据结构实现原理:二叉树操作原理:通过递归的方式,对数据进行重排输出;<?phpnamespace Tool;/** * PHP 实现二叉树排序 * @Author:Victor */class Node{ public $leftNode; public $rightNode; public $value; public static $array = []; //排序 publ原创 2020-05-27 11:00:41 · 279 阅读 · 0 评论 -
Composer实现PHP自动加载
从**composer**出来之后,php开发者对php的代码构建得心应手,以前臃肿的代码文件引入的时代一去不复还了。安装中文官网:https://www.phpcomposer.com/使用方法在根目录下创建composer.json文件,内容如下{ "require": { "monolog/monolog": "1.0.*" }}在根...原创 2019-08-29 18:25:32 · 1094 阅读 · 1 评论 -
PHP设计模式----装饰器模式
在不修改核心功能的情况下进行装饰,称之为装饰器模式。主类不必修改连续添加修饰类,不影响核心功能—主类/** * User: Victor * Date: 2019/8/23 * Time: 10:29 *///装饰器模式class BaseArt{ protected $content; protected $art = null; public ...原创 2019-08-23 11:40:19 · 125 阅读 · 0 评论 -
PHP模式----适配器模式
开发中,我们经常会做一些API,以供各种客户端调用,我们把这种模式叫做适配器模式适用于各种客户端;简单,方便。//简单天气API:api.phpclass WeatherApi{ public static function show() { $today = ['tep' => 28, 'wind' => 10, 'sun' => ...原创 2019-08-23 15:24:59 · 106 阅读 · 0 评论 -
PHP设计模式之工厂模式
PHP工厂模式面向对象法则:重要的开闭原创—对于修改是封闭,对于扩展是开放的<?php //开放数据库连接接口(数据库连接工厂) interface Db { public function conn(); } //开放创造数据库的接口(创造数据库工厂) interface Factory { public function createDb(); }...原创 2019-08-16 17:00:58 · 132 阅读 · 0 评论 -
PHP设计模式---策略模式
最近,写策略模式的时候,发现和工厂模式差不多,有点混淆不清,特意说说的它们的差异。实现方式(1)工厂模式返回的就是一个对象工厂,让使用者自己调用相应的工厂方法,又叫创建行模式;(2)策略模式返回的是直接结果,无需触碰里面的实现方法(聚合),又叫行为模式。关注点(1)一个关注对象创建;(2)一个关注行为的封装。<?php interface MathCal { ...原创 2019-08-21 16:16:42 · 104 阅读 · 0 评论 -
PHP设计模式-责任链模式
功能开发中,会遇到一些事件的处理,按照不同级别,处理不同的事情,我们称之为责任链模式 。无法处理,则层层汇报。class board{ protected $lev = 1; protected $toplev = 'admin'; public function process($lever) { if ($lever <=...原创 2019-08-20 17:59:24 · 141 阅读 · 0 评论 -
PHP设计模式之-观察者模式
开发中,有些验证功能需要我们实现,类似于这类功能,我们往往可以通过观察者模式去实现。下面分析下观察者模式。遵循单一职责原则 对于不同的验证,可以向外扩展,无需修改内部结构。 符合观察者与被观察者的模式<?php class user implements SplSubject { public $lognum; public...原创 2019-08-20 11:57:28 · 102 阅读 · 0 评论 -
PHP设计模式----桥接模式
程序开发中,我们面对不同的信息(M种信息,用不通的工具(N种工具)发送,按照单一职责原则,我们可能需要使用M*N种类来完成此项功能,这样会使程序显得非常臃肿,所以,需要用一种方式来完成此项工作-----桥接模式原理:把发送工具(发送器),当做一个父类的一个属性来调用发送工具中的方法,来进行消息发送。abstract class info{ protected $send = null...原创 2019-08-23 17:14:38 · 144 阅读 · 0 评论 -
PHP设计模式之-单例模式
在开发中,我们常常会遇到类的多次加载的问题,而我们实际又只需要加载一次即可,故出现了单例设计模式。只需要 new 一次即可保证不能被覆盖保证不能被克隆<?php class Single { private static $instance = null; public static function getInstance() { if (self::...原创 2019-08-19 16:58:53 · 99 阅读 · 0 评论 -
关于Thinkphp5.1的视图输出报错的问题
事起是这样的,前几天有人找到我,用Thinkphp5.1搭建一个外贸网站。 看了下文档,**PHP >= 5.6.0**,在使用的过程中的,发现视图输出的时候报错:带提示型的类型参数默认值一定为null,其实这是PHP版本的问题引起的,切换到**PHP7.0+**就可以了。目前官方还是没修正这个问题。...原创 2019-07-02 09:01:41 · 880 阅读 · 0 评论 -
关于PHP一些数据已经发送-功能无法使用的问题-提示:Some data has already been output的解决方案
在PHP开发中,我们经常为网站做一些功能,而且这些功能有个共同的属性,就是:在输出最终功能之前,不能有任何数据输出,如果一旦有输出,就会发生致命的错误“Some data has already been output”,比如我们常用的:验证码输出、文件下载、pdf文件输出,报头数据发送 - header('Content-Type:text/html;charset=utf-8') ...原创 2019-05-13 16:50:37 · 962 阅读 · 0 评论 -
关于RSA公私密钥换行处理的问题
在RSA加密处理时,经常遇到RSA密钥为一行,但是在Linux下,需要换行处理,否则,无法进行加密处理。换行,只能按照指定的规则换行,否则无法加密,下面介绍下标准处理方: public function TrasferRSA() { if (IS_POST) { $rsa_type = I('post.rsa_type'); ...原创 2019-03-18 10:09:29 · 11141 阅读 · 1 评论 -
Thinkphp3.0下限制用户刷新
在网站使用中,经常有用户进行恶意的无限制刷新。这种情况下,其实是不允许的,应为这样会给服务器带了一定压力,所以我们需要限制这样的访问,下面,我介绍一种常用的方法,是通过Thinkphp实现的。&lt;?php/** * 限制刷新时间 * * @param type $id:是否有唯一的标识名; * * @return boolean */function flushPageLim...原创 2019-03-18 09:35:10 · 253 阅读 · 0 评论 -
关于在PHP5.6版本以上用get_file_content函数抓取远程内容的问题
最近,因为Web应用程序迁移到云服务器上,发生了一个致命问题。原有服务器的PHP环境为5.5,云服务的PHP环境为5.6。当时,抓取远程内容的函数用的是:get_file_content(),迁移之后,发现PDF文件打不开,经过调试,原来PHP5.5时,抓取URL远程内容时,不会自动gzip压缩内容,而PHP5.6时,抓取URL远程内容时,会自动gzip压缩,恰恰 get_file_content...原创 2019-03-14 15:25:04 · 1481 阅读 · 0 评论 -
Thinkphp5.1-实现FTP文件服务器
实现FTP文件服务器环境搭建配置服务详情地址:https://github.com/victor24680/linux-ftp-tp5原创 2018-12-19 13:08:00 · 2942 阅读 · 0 评论 -
PHP程序员成长方向
1.Linux 能够流畅的使用Shell脚本来完成很多自动化的工作;awk/sed/perl 也操作的不错,能够完成很多文本处理和数据统计等工作;基本能够安装大 部分非特殊的Linux程序(包括各种库、包、第三方依赖等等,比如MongoDB/Redis/Sphinx/Luncene/SVN之类的);了解基 本的Linux服务,知道如何查看Linux的性能指标数据,知道基本的Linux下面的问题...转载 2018-12-06 09:18:39 · 1138 阅读 · 0 评论 -
PHP 批量读取图片文件遇到的问题与分析
记一次读取图片文件遇到的问题目标:批量读取文件【大约有5000多张图片】,然后根据文件名来处理图片,移动,重命名,写库等操作 处理流程准备临时目录和目标目录:imges/ tempImg和targeImg【tempImg目录下有XXX / XXX.JPG等图片文件】; 开始浏览目录,使用scandir()函数【使用之前最好检查下的php.ini配置文件中的disable_function...原创 2018-11-30 12:06:15 · 409 阅读 · 0 评论 -
PHP判断微信浏览器
PHP如何判断是不是微信浏览器-代码演示&amp;amp;amp;lt;?php function is_wxBrowers(){ $str=strpos($_SERVER['HTTP_USER_AGENT'],'MicroMessenger'); if($str!==false){ return true; //微信浏览器 } return false; //非微信浏览器 }?&amp;amp;amp;gt;...原创 2018-10-12 11:41:29 · 1787 阅读 · 0 评论