自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

写PHP的老王

会那么一点点PHP,有兴趣可以关注公众号 "写PHP的老王"

  • 博客(32)
  • 资源 (3)
  • 收藏
  • 关注

原创 对于魔术方法__call,__callStatic 新的认识

误解的一般解释__call方法在对象方法不存在的时候被调用__callStatic方法在调用对象静态方法不存在的时候被调用例如class Car{ public function __call($method,$params=[]){ echo "car call\n"; }}(new Car())->color();class Bus{...

2019-10-15 09:13:30 229

原创 Laravel5.8入门系列一 搭建环境,Hello World!

一、环境要求Laravel 5.8对于PHP环境要求如下:PHP >= 7.1.3OpenSSL PHP 扩展PDO PHP 扩展Mbstring PHP 扩展Tokenizer PHP 扩展XML PHP 扩展Ctype PHP 扩展JSON PHP 扩展二、工具PHP环境,使用xampp集成环境,注意下载PHP7.1.3以上版本代码ide,sublime t...

2019-09-06 17:15:31 713

原创 老王带你一步步看源码|Laravel 的路由匹配的过程都干了些什么?

Laravel 的路由配置有很多,可以设置域名,设置请求协议,设置请求方式,请求路径。那么,Laravel在获取到请求之后,去匹配路由都做了些什么呢?本文以Laravel5.8源码讲解,带你一步步看源码。Laravel 默认路由的验证器有四个,UriValidator,MethodValidator,SchemeValidator,HostValidator分别处理uri的匹配,请求方法的匹配,...

2019-09-27 09:02:37 532

转载 老王,你给我说说 Laravel 的请求是怎么到达控制器的

老王啊,你总在说Laravel的东西,能不能给我大概简单的说一下一个请求是怎么样到达我写在控制的代码中去的。中间都经历了哪些东西啊。入口Laravel5.8 入口文件为public/index.php$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);$response = $kernel->hand...

2019-09-18 09:02:02 492 1

原创 Laravel5.8 入门系列四,实现内容发布系统的准备工作

在这一节,要讲的内容是添加一个内容发布的功能,实现网站内容的增删改查功能。在这之前,先要完成一些准备工作。创建数据表使用php artisan make:migration create_posts_table创意一个表迁移文件/database/migrations/xxxx_create_posts_table.php,生成数据表posts的数据迁移内容如下:<?phpuse ...

2019-09-15 22:35:26 245

原创 Laravel5.8入门系列三,添加注册邮箱验证

为了密码垃圾用户,一般在用户注册的时候都会对用户进行验证。这里我们在注册的时候填写了用户的邮箱,但在注册过程中并没有对用户邮箱的真实性进行验证,因此需要添加一个邮件验证机制。整体思路是用户注册的时候,向用户的邮箱发送一个带有特殊验证串的链接,用户点击链接之后,用户验证通过,然后就可以正常登录的,否则用户登录的时候提示用户需要邮件进行激活。修改用户数据表为了实现上面的功能,需要在用户表中添加两...

2019-09-08 22:00:35 1237

原创 Laravel5.8入门系列二,快速实现用户注册登录功能

一 XAMPP 环境配置这次我们需要开始使用继承开发环境了,因为我们需要使用数据库,完成用户的登录注册功能。首先要配置好XAMPP环境,我们需要添加一个vhost,指向blog5.8的public目录。配置8000端口打开XAMPP的配置目录xampp/apache/conf,编辑http.conf文件,搜索Listen 80,然后在下面再添加一个端口监听Listen 8000。修改后...

2019-09-07 23:16:34 2168

转载 如何把 Laravel 默认邮箱登录改成用户名登录

Laravel中默认的登录是通过邮箱和密码进行登录的。那么,怎么样才能用最少的改动将它改成用密码登录呢?默认的,Laravel使用的是Illuminate\Foundation\Auth\AuthenticatesUsers这个trait完成登录功能的。通过观察AuthenticatesUsers的代码,发现下面一段很有意思的代码: protected function validate...

2019-08-11 18:00:44 889

原创 你知道Laravel中Facade为什么这样实现?

Route::get('/', function () { return view('welcome');});在laravel中的路由文件routes/web.php有这么一段代码,用于配置路由。这里Route就是用Facade实现类方法get的静态调用。Laravel中的Facade解决类什么问题?在php中,很多情况都需要使用一个容器获取到所有的对象,然后再调用改对象的...

2019-08-04 20:24:04 296

原创 Laravel 如何完成beforeResponse功能?

背景一般的项目需求都会要求统一的输出结构,特别是对于api应用而言。因此,如果有beforeResponse的功能,则可以在数据输出之前对response进行统一格式化处理。假设这么一种场景,应用做api开发,使用抛异常的方式(自定义异常类ApiException)返回无效非法请求的情况。正常请求则返回合法数据(数组或可序列化的模型),希望返回的数据格式正常请求返回数据格式:{ "c...

2019-08-02 22:15:03 885

原创 PHP神奇又有用的Trait

php和java,c++一样都是单继承模式。但是像python,是支持多继承(即Mixin模式)。那么如何在php中实现多继承模式?这就需要使用trait。Trait使用方式:trait Arrayabletrait{ public function toArray(){ }}class Model{ use Arrayabletrait;}$model = new Mo...

2019-03-04 17:40:26 896

原创 Yii2,thinkphp5,query类

考虑一个场景,一个函数需对相同表进行多次查询,多次查询中有部分查询条件相同。对于这种情况,Yii2和thinkphp5的实现方式要格外小心。在Yii2中,可以直接使用clone 复用共同的查询条件,但是thinkphp5的话,必须把相同条件再重复写一次。例如,需要查询总有效文章数,以及今日发布有效文章数。Yii2 版本$query = Post::find();$query-&gt;wh...

2019-03-04 17:39:20 624

转载 ubuntu 14.04 mysql Atlas 读写分离 环境配置安装

Atlas 是Qihoo 360, Web平台部基础架构团队在mysql_proxy基础上开发维护开发的一款mysql 中间件,360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。更多mysql 中间件可以参考http://www.guokr.com/blog/475765/.Altas的一些新特性:1.主库宕机不影响读2.通过管理接口,简化管理工作3.实现读...

2019-02-25 18:11:20 220

原创 Laravel5.6 文件上传以及文件管理后台

今天聊聊在Laravel5.6 如何实现文件上传功能,以及上传文件的管理功能。主要有文件列表,上传新文件,创建文件夹,删除文件夹以及删除文件。首先添加一个控制器,在命令行中输入php php artisan make:controller Admin/FileController,创建一个空的FileController控制器,控制器中有下列四个方法:index 显示文件和目录列表uplo...

2019-02-20 10:11:12 1533

原创 Yii2 源码学习 Event

虽然PHP语言本身不能实现异步事件,但是并不代表事件在PHP中不是一个非常有效的代码注入方式。TinkSNS中就有钩子,允许用户在不修改主体业务代码的时候执行不同的操作。钩子对于一些活动,比如充值送积分,充值打折扣。不同的活动,不一样,如果每次都要修改充值业务的主体代码,不仅麻烦,而且容易产生bug。因此可以在充值成功之后触发充值成功的事件,在事件处理中去处理相应的返现,优惠打折操作。...

2019-02-16 18:23:32 276

原创 Yii2 源码学习--yii\base\Objec

在Yii2中,所有的类的都集成于基类Object。Object对象通过几个php的魔术方法,实现属性获取,设置,属性是否存在,属性是否可设置的方法。1.构造函数 public function __construct($config = []) { if (!empty($config)) { Yii::configure($this, ...

2019-02-13 14:10:35 198

原创 Laravel5.6 博客搭建系列四--文章标签后台管理

创建标签模型和迁移首先需要创建 Tag 模型类:php artisan make:model --migration Tag该命令会在 app 目录下创建模型文件 Tag.php,由于我们在 make:model 命令中使用了 --migration 选项,所以同时会创建 Tag 模型对应的数据表迁移。在标签(Tag)和文章(Post)之间存在多对多的关联关系,因此还要按照下面的命令创建存放文...

2019-02-12 11:20:38 707

原创 Laravel5.6 博客搭建系列三--博客内容增删改查

本篇内容分享创建后台博客内容增删改查操作。创建markdown转html Service要想实现markdown 到html的转换,需要安装两个依赖库:composer require michelf/php-markdowncomposer require michelf/php-smartypants在app下创建Services目录,存放相应的服务类文件。在app/Service...

2019-02-12 11:19:33 561

原创 Laravel5.6 博客搭建系列二--搭建后台管理系统

创建用户认证系统本篇文章跟大家分享搭建后台管理认证系统以及创建后台视图模板Laravel 中实现登录认证非常简单。实际上,几乎所有东西 Laravel 都已经为你配置好了。配置文件位于 config/auth.php,其中包含了用于调整认证服务行为的、文档友好的选项配置。执行php artisan make:auth和 php artisan migrate创建控制器以及需要的数据表。脚本会...

2019-02-12 11:15:59 879

原创 Laravel5.6 博客搭建系列一

Laravel框架目前已经发展到5.6版本了,但是目前官方的入门教程还是基于5.1的博客教程。为了更多的人能快速上手新版本,本教程使用Laravel5.6一部一部跟大家分享如何搭建一个博客系统。下面来看一下如何用十分钟使用Laravel5.6搭建简单博客安装环境Laravel 框架对PHP版本和扩展有一定要求PHP &gt;= 7.1.3PHP OpenSSL 扩展PHP PDO 扩...

2019-02-12 11:14:26 1556 1

原创 PHP 依赖注入,注入容器和服务定位器

考虑一个问题,如果一个web应用需要一个日志服务,日志服务可以是文本,数据库或者邮件的形式,而且日志需要将获取的信息格式化指定的形式。应用可以根据需要,任意切换日志服务是文本还是数据库还是邮件。如果以传统的方式,日志记录的代码类似下面的形式: class Logger{ public function formatLog($log) { ...

2019-01-28 14:16:29 1224

原创 Yii 作为模块被调用

Yii以及其他PHP框架,通常是通过一个入口文件把框架类库,引入进来。然后根据route找到指定的控制器执行业务逻辑。一般的框架都可以很容易的集成第三方类库。可是,如果说,多个项目之间需要相互调用,而且多个项目之间不是用相同的框架写的,但是是同一个语言。如果不是相同语言,就只好是各个框架之间开放不同的接口,通过rest或者soap的形式进行接口调用。虽然把各个模块封装成接口,可以很大的降低...

2019-01-28 14:14:03 370

原创 Yii2 主题记录

Yii2本身支持多模块,多主题开发。因此对开发中遇到的多主题问题,以及自定义不同模块主题需要的注意事项进行记录主题添加默认全局主题在配置文件中添加comment配置 'view' =&gt; [ 'theme' =&gt; [ 'basePath' =&gt; '@app/themes/{themesName}', ...

2019-01-28 14:12:18 185

原创 PHP POST 数组限制

今天调一个接口,测试批量上传数据。上传数据用的是POST方式,分成一个多维数组上传。但是,问题来了,最多可以批量上传多少条数据?PHP默认POST数据的限制是2M,但是并不代表你就可以真的传2M以内的任意长度的数组。PHP对输入变量是有限制的。默认php.ini里的max_input_vars的限制是1000.如果POST一个二维数组,每个二维子数组里有五个元素,那么,只能POST200个子...

2019-01-27 17:04:57 3084

原创 从YII2 和ThinkPHP5 中看PHP如何获取所有请求头

开发当中,很多信息除了通过参数传递之外,还会有一些数据通过请求头来传递。分析Yii2和ThinkPHP5 框架代码,看如何用PHP语言获取请求头。Yii2 获取所有请求头 public function getHeaders() { $headers = []; if (function_exists('getallheaders')) { ...

2019-01-27 17:03:40 1673

原创 用sphinx给PHP加个给力的搜索功能

最近工作上需要实现搜索功能,尝试了几种方案。虽然最终线上部署的还是最low的方案,但是中间的过程还是比较有意思的。业务上根据关键字查找内容。关键字的出处多来源于标题,文章描述等。主要实现方式有一些几种,各个方式各有利弊,需要权衡。like模糊查询标题和描述,使用或条件查询like查询估计是最常用的方式了,也是最容易实现的方式。业务代码少,逻辑清晰,准确率也高。不用其他额外操作(比如分词)。但是...

2019-01-27 17:02:29 276

原创 大黄蜂好看吗?用python分析电影观看数据

大黄蜂,2019-01-04 在大陆上映。观众们很期待。但是期待归期待,是否真的值得去电影院观看还是值得商榷的。本片导演 特拉维斯·奈特 主演:海莉·斯坦菲尔德,约翰·塞纳,小豪尔赫·兰登伯格 目前在猫眼电影中评分:9.20,评价人数:129402人。看数据还是值得瞧一瞧。猫眼电影目前m端有些数据还是直接返回json数据,所以抓取还是很方便。之前看网络上有一个分析海王电影的文章,但是一直没有找到...

2019-01-27 16:45:53 1382

转载 读Yii2框架的web返回格式化类Response

一个完整的网络请求,最后都需要一个符合协议的返回。Yii2在处理web请求之后,统一通过web/Response处理返回。错误也会经过错误处理返回一个Response。一个Response完整的流程有哪些?创建Response对象,设置Resonse响应格式json,html,xml等触发前置事件,暴露操给开发者在输出前对数据进行调整等数据格式化。将所有response的内容更加输出格式...

2019-01-27 16:42:37 1085

原创 PHP foreach 引用传递 循环之后的事情

foreach 是PHP语法中最最常用的。foreach可以直接对循环结构进行便利,也可以以引用的方式进行遍历,在遍历的过程修改原来循环结构今天就来谈谈foreach 以引用的方式,循环之后的一些事情。case 1$a = [0,1,3,5];foreach ($a as $key =&gt; &amp;$item) { echo $item.' ';}print_r($a);...

2019-01-27 16:41:15 2238

原创 如何快速高效的将数组转换成树形结构

任何无限极分类都会涉及到创建一个树状层级数组。从顶级分类递归查找子分类,最终构建一个树状数组。如果分类数据是一个数组配置文件,且子类父类id没有明确的大小关系。那么我们如何高效的从一个二维数组中构建我们所需要的树状结构呢。假设数据源如下:return [ ['id'=&gt;1,'name'=&gt;'文章','parent_id'=&gt;0], ['id'=&gt;2,'name'=...

2019-01-27 16:40:11 11510

原创 ThinkCMF thinkphp5.1 个人修改版本

上一个项目在api上使用了thinkphp5.1,但是后台还是使用thinkcmf5.0,tp版本是5.0 .当时就想统一thinkphp版本。最近得空有时间修改,因此在ThinkCMF 5.0.180901基础上将thinkphp版本改成5.1.29 。修改后,已经对本地测试的不兼容进行修改。ThinkCMF修改基础版本ThinkCMF 5.0.180901 正式版ThinkPHP版本...

2019-01-27 16:39:10 2220

原创 你所不知道的php json解析

json解析在php,或者说在任何编程语言中都非常常见。但是,你是否知道,json解析在php中是以扩展形式存在。json处理,最常用的就是json_encode,json_decode。string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] )json_encode接受三个参数,但是一般的,...

2019-01-27 16:35:14 866

机器学习〔中文版〕.pdf

机器学习书籍扫描版,帮助大家连接机器学习的概念,了解机器学习的大概

2017-10-06

2013电子设计大赛本科组

2013电子设计大赛题目本科组,刚出炉的,官网打不开,其他网站下载的

2013-09-04

matlab 图像下采样源码

matlab 图像下采样代码,给定原始图像和下采样比例,得到下采样之后的图像矩阵

2013-05-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除