
PHP
PHP 学习笔记
'"<>{{7*7}}
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GatewayWorker
安装:composer require workerman/gateway-worker目录结构:0x01 Gateway类注意:startPort设置端口,是和BusinessWorker进行连接的本地端口。GatewayWorker类的使用创建项目目录,然后composer下载gateway,然后在项目根目录下创建gateway.php<?phprequire_once 'vendor/autoload.php';us...原创 2020-09-12 20:29:44 · 835 阅读 · 0 评论 -
workermanDay03 workerman 与TP5 框架整合,web消息推送demo
0x00 workerman 与其他框架整合与其它mvc框架结合建议以上图的方式(ThinkPHP为例):1、ThinkPHP与Workerman是两个独立的系统,独立部署(可部署在不同服务器),互不干扰。2、ThinkPHP以HTTP协议提供网页页面在浏览器渲染展示。3、ThinkPHP提供的页面的js发起websocket连接,连接workerman4、连接后给Workerman发送一个数据包(包含用户名密码或者某种token串)用于验证websocket连接属于哪个用户。5原创 2020-09-11 18:36:38 · 567 阅读 · 0 评论 -
workerman Day02 定制通讯协议、Channel分布式通讯组件、心跳检测、高并发Linux内核优化
目录0x00 定制通讯协议0x02 Channel 分布式通讯组件原理#demo0x03 心跳检测0x03 workerman 命令行0x04 workerman 开发注意事项linux内核优化:打开文件数0x00 定制通讯协议数据边界的标识:例如http协议头中的\r\n\r\n 就是数据边界的标识例如:我们自己要定义一个协议Json ,数据格式采用json,数据边界的标识采用\n<?phpnamespace Workerman\原创 2020-09-10 22:02:12 · 429 阅读 · 0 评论 -
workermanDay01 安装、Worker类
workerman 开源异步PHP socket 即时通讯框架0x00 Workman安装安装 libevent(php<7) 或者 Event 扩展(php >=7)step1 不论php版本,都要安装 libevent 库:yum install libevent-devel -ystep2 安装 Event扩展pecl.php.netwget https://pecl.php.net/get/event-2.4.3.tgz解压:tar xf event-原创 2020-09-09 19:44:10 · 343 阅读 · 0 评论 -
PHP WebSocket
强调一下:websocket 是一个应用层协议,协议标识符为ws 即websocket的缩写,wss 为 websocket security的缩写websocket步骤原创 2020-09-09 11:07:31 · 414 阅读 · 0 评论 -
PHP Socket库
#Socket原创 2020-09-08 10:22:04 · 439 阅读 · 0 评论 -
ThinkPHP5:评论、回复功能设计,连表查询优化
0x00 评论表设计原创 2020-07-19 11:33:39 · 1450 阅读 · 1 评论 -
ThinkPHP5:点赞表的设计、点赞API接口开发
0x00 点赞表的设计0x01 点赞API接口的开发<?php/* * @Author: your name * @Date: 2020-07-18 17:42:20 * @LastEditTime: 2020-07-18 20:00:52 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /myNewsApp/application/api/c原创 2020-07-18 20:05:04 · 1404 阅读 · 0 评论 -
ThinkPHP5:app版本控制,版本升级接口开发
0x00 app版本控制解决方案可以在controller下创建v1 v2等文件夹 对应不同的版本这样我们在更新v2版本的时候v1版本就不会受到影响对应的路由配置可以这样写:Route::resource('api/:ver/cat','api/:ver.Cat');0x01 API接口文档编写api接口文档:API的入参、出参格式需要包含哪些内容:API接口地址 请求方式:get put post delete 入参格式 出参格式 http code0x02原创 2020-07-08 13:47:55 · 1008 阅读 · 0 评论 -
ThinkPHP5开发中API数据安全相关解决方案
0x00 四种API数据安全问题接口请求地址 和 参数暴露 重要接口返回数据明文暴露 APP登录态请求的数据安全性问题 代码层的数据安全问题其中前三种问题,都可以使用加密来解决。0x01 加密方式MD5 AES 对称加密算法,加密速度快,资源使用率高 RSA 非对称加密算法,加密效率低,数据量大的时候加密时间比较长0x02 如何进行加密?将基础参数(app版本号,手机型号,sign等)放入http协议的header头中 每次http请求都携带sign 保证sign的唯一性原创 2020-07-07 11:48:33 · 1555 阅读 · 0 评论 -
打造自己的PHP框架Day02:
0x00 框架视图模块的编写(View):思路:在Action.php控制中添加一个display方法,将传给display的方法的html文件名,require进来即可。如何向view层传递数据呢?可以传递给display方法一个数组,然后在display方法中用extract函数将数组中的键转化为变量。因为html文件已经被引入到php文件中了,所以我们可以直接在html中使用<?php echo $xxxx;?> (等价于<?=$xxxx?>)代码:原创 2020-06-14 12:48:46 · 203 阅读 · 0 评论 -
打造自己的PHP框架Day01:入口文件,类的自动加载,控制器,控制器中间件
我们自己框架特点:1.单入口2.MVC前后端分离3.支持缓存memcache4.支持Redis5.可以自己扩展不同的功能0x00 入口文件需要做什么?<?php // 设置框架的编码header("Content-type:text/html;charset=utf-8");// 设置时区ini_set("date.timezone",'Asia/Shanghai');//定义我们项目的路径常量define('APP_PATH',__DIR__.'/')...原创 2020-06-12 13:22:31 · 457 阅读 · 0 评论 -
ThinkPHP5.0.11Day0A:如何使用验证码
目录0x00 验证码:0x01 配置验证码:0x00 验证码:1.首先在tp根目录下,通过composer获取验证码代码如果下载速度过慢,建议修改中文镜像,composer2.在index.html中加入: <div>{:captcha_img()}</div> //或者 <img src="{:captcha_src()...原创 2020-02-24 11:21:36 · 249 阅读 · 0 评论 -
ThinkPHP5.0.11Day09: Validate类(后端效验,后端场景效验)、文件上传与后端效验、token令牌
目录0x00 如何效验前端发来的数据0x01 几种常用的验证规则:0x02 场景验证:0x00 如何效验前端发来的数据index.php<form action="register" method="post"> <div>用户名:<input type="text" name="username"></div>...原创 2020-02-23 21:36:23 · 1086 阅读 · 0 评论 -
ThinkPHP5.0.11Day08:模板布局,模板继承,thinkphp命令行
0x00模板布局首先修改config.php,添加如下两条配置:然后在模块下的view文件夹下创建一个layout.html与配置的'layout_name'的值相对应:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name...原创 2020-02-23 14:01:52 · 479 阅读 · 0 评论 -
ThinkPHP5.0.11Day07:view创建,传数据给view,遍历传来的数组,相关配置
0x00视图创建:文件分布:Index模块下有个controller目录,model目录,view目录,controller目录下有个IndexController.php控制器。view目录下需要创建一个index_controller目录来与IndexController.php对应,对应规则为字母全部变成小写,如果是驼峰法命名,驼峰之前用下划线隔开。index_controlle...原创 2020-02-20 11:07:51 · 769 阅读 · 0 评论 -
ThinkPHP5.0.11Day06:Model插入,查询(排序),更新,删除,聚合函数,时间戳,关联模型
0x00插入操作在模块下创建一个model文件夹和controller文件夹同级.在model下创建文件,文件名和后台数据库的表名对应,例如你有一个user表(如果config中定义了表的前缀的话,文件名应该是去掉前缀后的名字),就创建一个User.php文件然后在controller文件夹下创建一个UserController.php文件。那么当涉及到关于用户的操作时,首先会进U...原创 2020-02-19 13:23:14 · 659 阅读 · 0 评论 -
ThinkPHP5Day05:ORM操作数据库
目录0x01数据库配置文件以及连接数据库:0x02ORM插入数据0x03 ORM查询数据0x04 ORM where查询0x05 field()查询某些字段0x06 limit0x07 distinct0x08 连表查询0x09事务Transaction0x0A 更新以及自增自减操作0x01数据库配置文件以及连接数据库:打开application/d...原创 2020-02-16 23:04:09 · 376 阅读 · 0 评论 -
ThinkPHP5.0.11Day04 MVC架构,Controller控制器(_initialize,前置操作,空控制器,多级控制器)
0x00MVC架构:tp框架是基于MVC架构的:M:Model 层操作数据库V:View 视图层,就是web页面C:Controller 控制器,相当于大脑0x01Controller两个命名空间:think 对应 thinkphp/library/think 目录 loader.php中可以添加修改app 对应 application 目录 public/index.php中...原创 2020-02-16 15:24:04 · 946 阅读 · 0 评论 -
ThinkPHP5.0.11Day03:Request(获取ip地址),Session和Cookie,判断请求类型,方法注册,Response(json xml jsonp)
0x00 Request对象:原生php开发中的超全局变量数组$_GET,$_POST,$_REQUEST,$_SERVER,$_SESSION,$_COOKIE,$_ENV等,在ThinkPhp中都被封装在了Request对象中;方法 描述 param 获取所有类型的请求的变量 get 获取$_GET变量 post 获取$_POST变量 put ...原创 2020-02-15 10:11:50 · 1281 阅读 · 0 评论 -
ThinkPHP5.0.11Day02:路由模式(普通模式,强制模式)
目录0x01 路由模式1.普通模式:2.强制模式:3.路由分组:4.闭包路由:5.默认路由:6.资源路由:7.总结:原创 2020-02-14 15:01:56 · 1516 阅读 · 0 评论 -
ThinkPHP5.0.11Day01: composer 、助手函数、配置文件
0x00 composer安装步骤:0x01 用composer将thinkphp框架下载到服务器的公开目录0x03 composer详解0x03 用Composer下载依赖0x04 将自己的类上传到packagist0x05 助手函数0x06 tp系统常量0x07 tp配置0x08 获取配置值的方法:0x09 扩展配置原创 2020-02-13 15:07:14 · 795 阅读 · 0 评论 -
PHPDay12:PHP7
0x00 PHP7版本新增特性1.新增操作符(1)<=> 比较两个数大小-1:前者小于后者0:前者等于后者1:前者大于后者(2)三元操作符改进$c = $a??3当$a存在且不为0的时候就将$a赋值给c。否则将3赋值给c(3)unicode解析字符的Unicode形式在网页中也可以正常解析例如:echo "\u{4f60}" 你(...原创 2020-01-31 17:25:21 · 221 阅读 · 0 评论 -
PHPDay11:XML
目录一、什么是XML?二、XML语法1.xml文档声明:2.XML树结构(DOM)三、PHP操作XML三、什么是XPath?一、什么是XML?XML = Extensible Makeup Language 可扩展标记语言,类似于HTML,只不过XML中没有预定义标签,需要自行定义标签。这是因为XML的设计宗旨是传输数据,而非显示数据。这个东西就是存储数据的,后...原创 2019-07-07 11:13:30 · 203 阅读 · 0 评论 -
PHPDay0F:正则表达式,CURL
目录0x00 正则表达式0x01 常用正则表达式总结0x02 贪婪模式和非贪婪模式0x03 PHP中使用正则表达式1.int preg_match(string $pattern,string $subject[,array $matches])2. int preg_match_all(string $pattern,$string $obj[,array $matche...原创 2020-01-20 23:21:53 · 561 阅读 · 0 评论 -
正则表达式Regex总结
一、PHP中的正则表达式 正则表达式:正则表达式是一些规则,用于匹配一个或多个字符串中的模式/^\d\d\d\d$/^表示从字符串的开始处开始匹配;\d表示数字;$表示匹配到字符串的末尾;所以,这个正则表达式表示,从字符串的头匹配到字符串的尾,字符串必须从头开始第一个字符是数字,第二个字符也是数字,第三第四个字符都是数字,并且第四个字符就是字符串的结尾。简洁表示法:/^...原创 2020-01-20 10:18:45 · 386 阅读 · 0 评论 -
PHPDay03 变量命名,删除变量,可变变量(以变量的值作为变量名),值传递和引用传递
目录0x00变量的声明:0x01命名规则:0x02命名方法:0x03删除变量:0x04 以变量的值作为变量名0x05 变量的值传递和引用传递0x00变量的声明:以$+字母数字下划线作为变量名0x01命名规则:不可以数字开头 不能与关键字重名0x02命名方法:驼峰命名法:$userName帕斯卡命名法:$UserName下划线间隔法:$us...原创 2019-03-15 12:20:16 · 164 阅读 · 0 评论 -
PHPDay02 输出函数、标记、报错、注释
目录0x00 php使用的两种方式:0x01 php标记0x02要学会看报错:0x03 注释:0x04 六种输出的函数0x00 php使用的两种方式:1.直接写php代码2.嵌入到html代码中(php文件中可以运行html代码,但是在html文件中不能运行php代码):嵌入部分的php代码会动态生成相应的html代码<!DOCTYPE html>...原创 2019-03-14 23:42:40 · 332 阅读 · 0 评论 -
PHPDay01 php环境搭建以及站点配置
html css js 是在客户端(浏览器)中运行,而php在服务器端运行,将运行完之后的结果返回到客户端。php支持几乎所有的数据库,但是和MySQL是绝配。安装集成环境phpstudy,然后在浏览器url栏中输入:localhost或者127.0.0.1访问本地搭建的服务器(默认访问网站根目录下的index.php文件),如果成功,则说明安装成功127.0.0.1/phpMyadmin...原创 2019-03-14 15:17:21 · 237 阅读 · 0 评论 -
CSSDay02 组合选择器
把基本选择器 通过特殊符号串在一起,具有特定意义。分组选择器/*div{ background:green; color: blue;}p{ background: green; font-size: 50px; color: blue;}*//*分组选择器 多个标签选择器通过 ,来隔开 div,p,ul 可以简化代码*/di...原创 2019-02-26 23:14:42 · 1021 阅读 · 0 评论