PHP
Loedan
静若瘫痪,动若癫痫
展开
-
深度挖掘 Laravel 生命周期
转自https://learnku.com/articles/10421/depth-mining-of-laravel-life-cycle,记录学习本文首发于个人博客深度挖掘 Laravel 生命周期,转载请注明出处。这篇文章我们来聊聊 「Laravel 生命周期」 这个主题。虽然网络上已经有很多关于这个主题的探讨,但这个主题依然值得我们去研究和学习。我想说的是当我们在决...转载 2019-07-01 16:45:51 · 318 阅读 · 0 评论 -
PHP 线程,进程和并发
转载自http://chenpeng.info/html/3021进程进程是什么?进程是正在执行的程序;进程是正在计算机上执行的程序实例;进程是能分配给处理器并由处理器执行的实体。 进程一般会包括指令集和系统资源集,这里的指令集是指程序代码,这里的系统资源集是指I/O、CPU、内存等。 综合起来,我们也可以理解进程是具有一定独立功能的程序在关于某个数据集合上的一次运行活动, 进程是系统进行...转载 2019-01-17 17:12:15 · 162 阅读 · 0 评论 -
PHP中的PSR规范
PHP Standards Recommendation什么是PSR?PSR是PHP Standards Recommendation的简称,这个是php-fig组织制定的一套规范。至今,php-fig已经发布了五个规范:PSR-0:自动加载标准,2014-10-21该标准已经被废弃,使用PSR-4替代,不再细讲 PSR-1:基本的编码风格 PSR-2:编码风格(更严格) P...转载 2019-01-02 15:13:29 · 167 阅读 · 0 评论 -
在PHPstorm中使用数组短语法[],出现红色波浪
在tp3.2.3项目中使用数组短语法 [ ] ,报错如下错误: Short array syntax is allowed in PHP 5.4 only less... (Ctrl+F1) Checks that language features used in the source code correspond the selected language level. (i.e...原创 2018-12-25 14:21:39 · 2100 阅读 · 2 评论 -
PHP7.2 count()更加严格, 一些变化记录
echo count('123123'); list(,$v) = each($_GET); 报错信息如下:Warning: count(): Parameter must be an array or an object that implements Countable in D:\Qampp\htdocs\adminer\compile.php on line 3 ...转载 2018-12-20 15:28:43 · 2884 阅读 · 0 评论 -
php脚本暴力破解网站密码(附php源代码)
有一种网站,没有验证码;有一种网站,你可以利用某种手段获取到登陆者的用户名(比如邮箱啦等等,用户名你是知道的),你所不知道的仅仅是登录密码,有没有什么方法可以破解呢? 我们单位有一个内网(虽是内网,但有时在家也可以登录),用户名可以搞到,密码原始是六位的数字(其实大多数人都没有修改过),而且牛叉的是,这个网站登录时,如果输入错误次数过多也不会让你输入验证码,这太好了,心中窃喜,可以用暴力...转载 2018-11-30 14:57:35 · 12043 阅读 · 1 评论 -
PHP基础知识------页面静态化
1、在开发项目时,有时会遇到一些页面数据量特别大,但是又不经常改变的情况,如商城首页等,这时候就需要进行页面静态化,减轻服务器和数据库的压力。这里我们先用原生的PHP写一个简单的demo,用来理解页面静态化的原理,然后再尝试用框架说明一下(thinkphp)。主要会使用到PHP的ob相关函数和文件操作函数file_put_contents.这里在项目中新建了两个文件,test.php(...转载 2018-11-30 11:01:42 · 136 阅读 · 0 评论 -
docker 从入门到自动化构建 PHP 环境
docker灵活的搭建php环境使用docker搭建灵活的线上php环境 有时候你可能不太需要一些别人已经集成了的包或者镜像我们就可以使用以下方式自己动手逐一构建自己所需要的环境结构 并在最后实现一键自动化部署一步一步点亮docker技能树 ## ## ## == ## ## ## ## ## === ...原创 2018-11-30 10:40:37 · 262 阅读 · 0 评论 -
Laravel 5.5 常用扩展包
扩展包* overtrue/laravel-lang // 为 Laravel 提供默认提示信息添加多语言版本翻译* intervention/image // 图片裁剪处理* summerblue/generator:~0.5 // Laravel 5.x Scaffold Generator 代码生成器* laravel-debugbar // 开发者工...原创 2018-11-28 15:01:03 · 578 阅读 · 0 评论 -
Laravel 5.5 $errors
$errors 所有视图中总是存在一个$errors 变量,从而允许你在视图中方便而又安全地使用。$errors 变量是一个Illuminate\Support\MessageBag 实例。// 处理错误信息 (获取某字段的第一条错误信息) $errors = $validator->errors(); echo $errors->...原创 2018-11-28 15:01:19 · 1093 阅读 · 1 评论 -
laravel :paginate()上一页,下一页
控制器$news = News::where('type_id',1)->where('is_del',1)->paginate(3);前端@if($news->currentPage() == 1)@else <li><a href="{{url('news?page=1')}}">首页</a></li>..转载 2019-01-14 16:30:53 · 9056 阅读 · 0 评论 -
PHP面试题大全
1、__FILE__表示什么意思?文件的完整路径和文件名 __FILE__ 获取当前执行的PHP脚本 例如:www/app/index.php2、__DIR__表示什么意思?当前脚本所在目录 例如:www/app/3、如何获取服务端和客户端的IP地址?客户端:$_SERVER[‘REMOTE_ADDR’]服务端:$_SERVER[‘SERVER_ADDR’]4、写出使用...转载 2019-01-08 23:26:44 · 833 阅读 · 0 评论 -
PHP注释规范(PHPDOC)总结
本文章向大家介绍PHP注释规范(PHPDOC)总结,主要包括PHP注释规范(PHPDOC)总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。针对PHP开发规范,有必要总结一下,与各位分享用过IDE或看过其他源码的小伙伴们应该都见过类似下面这样的注释/** * 递归获取所有游戏分类 * @param int $id * @ret...原创 2019-02-15 11:17:29 · 743 阅读 · 0 评论 -
laravel / lumen 使用多个数据库连接
1、配置.env文件DB_CONNECTION=db_aDB_TIMEZONE=+08:00DB_CHARSET=utf8mb4DB_COLLATION=utf8mb4_general_ciDB_OPT_HOST=devDB_OPT_PORT=3306DB_OPT_DATABASE=db_a_nameDB_OPT_USERNAME=hjm_devDB_OPT_PASSWOR...原创 2019-06-17 12:01:17 · 1751 阅读 · 0 评论 -
laravel中with()方法,has()方法和whereHas()方法的区别
with()with()方法是用作“渴求式加载”的,那主要意味着,laravel将会伴随着主要模型预加载出确切的的关联关系。这就对那些如果你想加在一个模型的所有关联关系非常有帮助。因为“渴求式加载”缓解了1+N的查询问题,仅需1+1次查询就能解决问题,对查询速度有了质的提升。例如:user > hasMany > post$users = User::with('po...原创 2019-06-20 14:32:06 · 424 阅读 · 0 评论 -
各类抽奖活动开发总结及分析
在所有活动总,抽奖活动占的比例是非常大的,现对已开发过的抽奖活动进行一个总结分析及评比思考抽奖活动在整理上可以分为以下几种类型:不限制人数,不设置奖品数量上限,只设置中奖概率 不限制人数,设置奖品数量上限,设置中奖概率 不限制人数,设置部分奖品数量上限部分没有上线,设置中奖概率 限制人数,人人中奖,设置中奖概率 限制人数,设置奖品数量上限,设置中奖概率 限制人数,设置部分奖品数量...转载 2019-05-13 16:50:30 · 2505 阅读 · 0 评论 -
php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法。用法很简单,代码里有详细注释说明,一看就懂<?php/* * 经典的概率算法, * $proArr是一个预先设置的数组, * 假设数组为:array(100,200,300,400), * 开始是从1,1000 这个概率范围内筛选第一个数是否在他的出现概率范围之内, * 如果不在,则将概率空间,也就是k的值减去刚刚的那个数...转载 2019-05-13 16:47:56 · 487 阅读 · 0 评论 -
PHP中的stdClass是什么?如何使用?(代码示例)
PHP中的stdClass是什么?本篇文章就来带大家认识一下PHP中的stdClass,介绍它的用途和使用方法,希望对大家有所帮助。stdClass是什么?有什么用?stdClass是PHP中的类原型、空类,它是最简单的对象,用于将其他类型转换为对象;它类似于Java或Python对象。stdClass不是对象的基类。如果将对象转换为对象,则不会对其进行修改。但是,在不是NU...原创 2019-04-25 14:31:48 · 774 阅读 · 0 评论 -
利用predis操作redis方法大全
predis是PHP连接Redis的操作库,由于它完全使用php编写,大量使用命名空间以及闭包等功能,只支持php5.3以上版本,故实测性能一般,每秒25000次读写。将session数据存放到redis也很简单:session.save_handler = redissession.save_path = “tcp://127.0.0.1:6379″以下是汇总一些操作,并不断更新...原创 2019-03-27 15:03:48 · 206 阅读 · 0 评论 -
postman的几种参数格式
之前一直使用postman来测试网络请求,但几种参数格式傻傻仍分不清楚。直到最近一个项目的时候,在postman使用form-data测试没问题,但在iOS请求后端一直报请求类型错误,所以重新梳理了相关知识。 今天我们来看看postman的几种参数格式。**1. form-data **即multipart/form-data,它将表单的数据组织成Key-Value形式,用分隔符boun...原创 2019-03-06 17:16:00 · 7704 阅读 · 1 评论 -
Swagger-PHP 自定义生成API 转
从此接口文档成为一笑而过,从此服务端不再被客户端追债似得要接口文档主要内容:1、项目背景2、Swagger应用3、总结项目背景 作为一个服务端开发人员,我相信大多数的同学都会和客户端开发同学沟通接口问题。 但是啊,但是,每当我们高高兴兴的开发完成,告诉客户端和前端同学可以调试的时候,通常大家会问一句“文档呢?”。于是,服务端像是被追债...原创 2019-02-15 14:24:38 · 834 阅读 · 0 评论 -
怎样使用PhpDocumentor生成文档
命令行方式: 在phpDocumentor所在目录下,输入 phpdoc –h 会得到一个详细的参数表,其中几个重要的参数如下: -f 要进行分析的文件名,多个文件用逗号隔开 -d 要分析的目录,多个目录用逗号分割 -t 生成的文档的存放路径 -o 输出的文档格式,结构为输出格式:转换器名:模板目录。 例如:phpdoc -o HTML:frames...转载 2019-02-15 13:20:03 · 129 阅读 · 0 评论 -
Laravel 5.5 文件系统
文件系统// 获取硬盘实例 Storage::put('avatars/1', $fileContents); Storage::disk('s3')->put('avatars/1', $fileContents);// 获取文件 $contents = Storage::get('file.jpg'); $exists = Storage::d...原创 2018-11-27 09:27:09 · 518 阅读 · 0 评论 -
Laravel 5.5 Redis
Redis// 与 Redis 交互 $user = Redis::get('user:profile:'.$id); Redis::set('name', 'Taylor'); $values = Redis::lrange('names', 5, 10); $values = Redis::command('lrange', ['name', 5, 10...原创 2018-11-27 09:26:57 · 253 阅读 · 0 评论 -
Laravel 5.5 CSRF
CSRF// CSRF(跨站请求伪造)是一种通过伪装授权用户的请求来攻击授信网站的恶意漏洞。{{ csrf_field() }}<input type="hidden" name="_token" value="{{ csrf_token() }}">{{ method_field('PUT') }}<input type="hidden" name="_原创 2018-11-26 14:53:28 · 386 阅读 · 0 评论 -
Laravel 5.5 Middleware
Middleware(中间件)// 请求之前/之后的中间件 一个中间件是请求前还是请求后执行取决于中间件本身。比如,以下中间件会在请求处理前执行一些任务:<?phpnamespace App\Http\Middleware;use Closure;class BeforeMiddleware{ public function handle($req...原创 2018-11-26 14:50:16 · 401 阅读 · 0 评论 -
Laravel 5.5 Route
Route(路由)幂等性:指一次和多次请求某一个资源应该具有同样的副作用,也就是一次访问与多次访问,对这个资源带来的变化是相同的。 路由动作动词 描述 是否幂等 GET 获取资源,单个或多个 是 POST 创建资源 否 PUT 更新资源,客户端提供完整的资源数据 是 PATCH 更新资源,客户端提供部分的...原创 2018-11-26 14:42:02 · 817 阅读 · 0 评论 -
Artisan & Npm & Yarn
Artisan// artisan 命令$ php artisan serve // 启动服务$ php artisan list // 查看 artisan 命令列表$ php artisan list make // 查看所有有效的make命令$ php artisan migrate // 表迁移$ php artisan make:seeder UsersTableS...原创 2018-11-26 14:26:28 · 460 阅读 · 0 评论 -
Laravel 开发 API 注意事项
Restful:全称为 Representational State Transfer,直译为表现层状态转移,或许可以解释为用 URL 定位资源,用 HTTP 动词描述操作。RESTful 设计原则 * HTTPS HTTPS 为接口的安全提供了保障,可以有效防止通信被窃听和篡改。而且现在部署 HTTPS 的成本也越来越低,你可以通过 cerbot 等工具,方便快速的制...原创 2018-11-26 13:40:44 · 813 阅读 · 0 评论 -
Laravel Homestead: 403 forbidden on nginx, http://homestead.app访问不了
起因:是因为Homestead.yaml 映射失败,一般是由于没有修改sites导致的, 正确的sites设置,类似于: 而很多人吧folders的配置看成是sites的配置了 解决方法: ①按照正确的设置修改Homestead.yaml 的sites ②从新载入配置文件(这步很重要,但是不需要重启vagrant)1.vagrant global-st...转载 2018-11-23 14:19:45 · 387 阅读 · 0 评论 -
Laravel --实战篇 UUID(唯一识别码)
前言 : 一般的唯一识别id都是各种时间戳、毫秒级时间戳加php内置函数或者加上随机数等手段来生成的。 下面给大家介绍一个组件,也是我在各个实战项目中必不可少的一个组件,ramsey/uuid。一、ramsey/uuid的实现方式● 机器hash(防止多台机器之间ID冲突)● 进程ID(防止多进程冲突)● 时间戳(秒)● 自增值(同一秒内自增)该方法号称是1000年以内不...转载 2018-10-20 12:34:08 · 8484 阅读 · 0 评论 -
laravel5.5 excel的安装和使用
在项目开发中 最常用的就是把数据导出成excel的文件报表了然而新下的项目中啥也没有;没有excel的扩展会报这个错误然后你需要通过composer安装这个依赖学习源头:https://www.jianshu.com/p/4a2457efbf91excel官方文档:http://laravelacademy.org/post/2024.html1,使用Composer安...转载 2018-10-15 19:49:48 · 516 阅读 · 0 评论 -
[Laravel5.2教程配套图文资料]文件上传方法
客户端 提交到服务器$file = Input::file('myflie');if($file -> isValid()){ //检验一下上传的文件是否有效 $clientName = $file -> getClientOriginalName(); //获取文件名转载 2017-04-08 14:15:12 · 1090 阅读 · 0 评论 -
Laravel 5.5 Controller
Controller(控制器)// 控制器中间件Route::get('profile', 'UserController@show')->middleware('auth');public function __construct(){ $this->middleware('token'); // 所有方法生效 $this->middlewar...原创 2018-11-26 14:55:14 · 138 阅读 · 0 评论 -
Laravel 5.5 Request
Request(请求)$path = $request->path(); // 获取请求路径$request->is('user/*'); // 验证请求路径是否与给定模式匹配,该方法参数支持 * 通配符// 获取请求URL $url = $request->url(); // 不包含查询字符串 $url_with_query = $reque...原创 2018-11-26 15:01:23 · 462 阅读 · 0 评论 -
Laravel 5.5 Response
Response(响应)// 添加响应头 return response($content) ->header('Content-Type', $type) ->header('X-Header-One', 'Header Value') ->header('X-Header-Two', 'Header Value')...原创 2018-11-26 15:05:46 · 720 阅读 · 0 评论 -
Laravel 5.5 Cache
Cache(缓存)// 缓存使用 (获取缓存实例) * 访问多个缓存存储 $value = Cache::store('file')->get('foo'); Cache::store('redis')->put('bar', 'baz', 10); (从缓存中获取数据) $...原创 2018-11-27 09:26:44 · 634 阅读 · 0 评论 -
Laravel 5.5 Queue
Queue(队列)// 分发任务 dispatch(new Job); // 以下的任务将被委派到默认队列... dispatch((new Job)->onQueue('emails')); // 以下任务将被委派到 "emails" 队列... ProcessPodcast::dispatch($podcast)->onConnection('sq...原创 2018-11-27 09:26:20 · 303 阅读 · 0 评论 -
Laravel 5.5 加密
加密encrypt(); // 加密decrypt(); // 解密// 哈希算法加密 Laravel 的 Hash 门面为存储用户密码提供了安全的 Bcrypt 哈希算法 Hash::make($request->newPassword); (通过哈希验证密码) Hash::check('plain-text', $hashedPasswo...原创 2018-11-27 09:26:07 · 546 阅读 · 0 评论 -
Laravel 5.5 权限控制
权限控制// Gate Gate 是用于判断用户是否有权进行某项操作的闭包,通常使用 Gate 门面定义在 App\Providers\AuthServiceProvider 类中。Gate 总是接收用户实例作为第一个参数,还可以接收相关的 Eloquent 模型实例作为额外参数 Gate::define('update-post', function ($user, $po...原创 2018-11-27 09:25:52 · 489 阅读 · 0 评论