php技巧

PHP实战之投票系统的实现

2022-04-15
目录 一.实现代码 1.sql 2.html 3.admin.php(增删改查投票的页面)密码:admi 4.index.php投票的页面 二.效果图 一.实现代码 1.sql -- phpMyAdmin SQL Dump -- version 4.5.1 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 2022-03-28 05:42:05 -- 服务器版本:10.1.13-MariaDB -- PH

基于PHP实现个人博客网站

2022-04-13
目录 一.运行展示 二.功能说明 三.核心代码讲解 1.创建数据库 2.初始化数据 3.登录验证 4.用户注册 5.发表博客 6.更新博客 7.删除博客 8.发表评论 9.修改密码 10.修改昵称 11.管理员删除用户 四.运行环境 五.运行说明 一.运行展示 二.功能说明 未登录用户: 仅可以浏览所有博客的内容. 已登录用户: 浏览所有博客的内容: 发表博客: 删除自己的博客: 修改自己的博客: 在任一博客下评论: 修改昵称和密码. 管理员: 可以执行普通用户的所有功能: 修改任一博客的内容:

PHP实现腾讯云视频加密的示例代码

2022-04-13
目录 前言 实现加密 1.打开腾讯云视频开启key防盗链 2.导入csv文件到数据库 3.加密 前言 上传到腾讯云上面的视频,如何实现防盗链? 当我们的视频放到,腾讯云上面,播放的时候如何实现指定过期时间,防止他人盗刷流量,这就要用到,腾讯云key防盗链技术,这个技术有什么用呢? 视频 URL 中指定过期时间,他人获取后无法长期使用 在视频 URL 中指定最大允许播放 IP 数,他人获取后不能无限制地分发给更多人观看 CDN 节点检查视频 URL 中的参数和签名,对视频播放请求进行控制.如果请求

详解PHP如何在两个大文件中找出相同记录

2022-04-12
目录 1.引言 2.思路 3.实操 4.生成测试文件 5.分割文件 6.查找重复记录 7.完整代码 1.引言 给定a,b两个文件, 分别有x,y行数据, 其中(x, y均大于10亿), 机器内存限制100M,该如何找出其中相同的记录? 2.思路 处理该问题的困难主要是无法将这海量数据一次性读进内存中. 一次性读不进内存中,那么是否可以考虑多次呢?如果可以,那么多次读入要怎么计算相同的值呢? 我们可以用分治思想, 大而化小.相同字符串的值hash过后是相等的, 那么我们可以考虑使用hash取模,

基于PHP实现JWT登录鉴权的示例代码

2022-04-12
目录 一.什么是JWT 1.简介 2.JWT的组成 3.JWT验证流程和特点 二.相关问题 三.PHP实现 1.引入依赖 2.功能实现 3.封装工具类如下 一.什么是JWT 1.简介 JWT(JSON Web Token)是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准. 简单的说,JWT就是一种Token的编码算法,服务器端负责根据一个密码和算法生成Token,然后发给客户端,客户端只负责后面每次请求都在HTTP header里面带上这个Token,服务器负责验证这个Token

PHP试题之RCEService正则回溯解答

2022-04-09
目录 打开题目输入JSON类型的cmd后,尝试读取index.php的源代码,但是读取不出来,并且扫后台出来的/index以及/index/login也没有任何东西,实在不知道怎么做了,只能看一下别人的wp,发现别人以来都是审查源码,我就奇怪了,源码怎么弄来的,看了很多wp发现应该是比赛的时候直接给的源码,但是buu平台忘记加上了 <?php putenv('PATH=/home/rceservice/jail'); if (isset($_REQUEST['cmd'])) { $json =

Ezpop pop序列化链反序列化知识

2022-04-09
<?php //flag is in flag.php //WTF IS THIS? //Learn From https://ctf.ieki.xyz/library/php.html#%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E9%AD%94%E6%9C%AF%E6%96%B9%E6%B3%95 //And Crack It! class Modifier { protected $var; public function append($value){ in

laravel源码分析队列Queue方法示例

2022-04-02
目录 前言 队列任务的创建 队列任务的分发 前言 队列 (Queue) 是 laravel 中比较常用的一个功能,队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和响应的时间.本文我们就来分析下队列创建和执行的源码. 队列任务的创建 先通过命令创建一个 Job 类,成功之后会创建如下文件 laravel-src/laravel/app/Jobs/DemoJob.php. > php artisan make:job DemoJob > Job created suc

Web端测试PHP代码函数覆盖率解决方案

2022-03-31
目录 1. 关于代码覆盖率 2. 业务背景 3. 函数覆盖率解决方案 (1)原理 (2)插桩 (3)信息存储 4. 报告生成 5. 总结 1. 关于代码覆盖率 衡量代码覆盖率有很多种层次,比如行覆盖率,函数/方法覆盖率,类覆盖率,分支覆盖率等等.代码覆盖率也是衡量测试质量的一个重要标准,对于黑盒测试来说,如果你不确定自己的测试用例是否真正跑过了系统里面的每一行代码,在测试的完整性上总要打些折扣.因此,业界几乎对各种编程语言都有自己的一套代码覆盖率解决方案.世界上最美的语言PHP当然也不例外.PH

PHP利用PHPMailer实现邮件发送功能

2022-03-27
目录 导语 一.安装环境 二.下载 三. 邮箱设置 四.php发送邮件 五.php框架中使用 导语 〝 古人学问遗无力,少壮功夫老始成 〞 随着企业化的管理越来越规范,各种项目管理系统中,都需要加入到邮件实时通知功能,所以在项目中如何整合发邮件功能,其实是很重要的一点.如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们. 一.安装环境 PHPMailer 需要 PHP 的 sockets 扩展支持 另外登录 QQ 邮箱 SMTP 服务器则必须通过 SSL 加密的

PHP session的反序列化你了解吗

2022-03-27
session反序列化的漏洞是由三种不同的反序列化引擎所产生的的漏洞 其中 session.serialize_handler string--定义用来序列化/反序列化的处理器名字.默认使用php 若使用如下设置: <?php //ini_set('session.serialize_handler', 'php'); //ini_set("session.serialize_handler", "php_serialize"); ini_set("

详解php反序列化之字符逃逸法

2022-03-22
目录 1.先说关键字符变多 例题1 例题2 2.关键字符减少 总结 按我的理解,反序列化的过程就是碰到;}与最前面的{配对后,便停止反序列化.如下序列化: <?php class Test { public $a = "aa"; public $b = "bbb"; public $c = "cccc"; } $qwe = new Test(); echo serialize($qwe); 输出序列化结果为:O:4:"Test&q

PHP操作SQL&nbsp;Server数据库实现表的改查与统计

2022-03-16
目录 今天上午做表格数据的检查与修改,涉及到PHP对MS SQL Server数据表的查询.统计与修改. 平时我也不记编码和命令,到了用的时候都再查手册,这往往很耗费时间,现在写博客有个好处就是把有用的代码记录下来,下次就直接复制,修改一下就直接用了. 这样可以省去很多时间. 下面是检索三个表来更新数据,即主表有信息不全,检索两个其他的信息表进行补录. <?php require 'pspLinkConfig.php';//加载数据库 $sql = "select C24 from cwk

PHP连接数据库实现页面增删改查效果

2022-03-16
目录 效果图 实现代码 sql cyg.php delete.php update.php create.php 效果图 实现代码 sql -- phpMyAdmin SQL Dump -- version 4.5.1 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 2022-03-15 17:51:32 -- 服务器版本: 10.1.13-MariaDB -- PHP Version: 5.6.21

php反序列化之字符串逃逸详解

2022-03-14
目录 php反序列化–字符串逃逸 过滤后字符串变多 字符串变多原理详解 过滤后字符串变少 总结 php反序列化–字符串逃逸 PHP反序列化的字符串逃逸,一共分有两种情况,情况一:过滤后字符串变多,情况二:过滤后字符变少(本篇文章默认已有反序列化相关知识基础) 过滤后字符串变多 以ctfshow-web262为例讲解: error_reporting(0); class message{ public $from; public $msg; public $to; public $token='u

PHP设计模式的策略,适配器和观察者模式详解

2022-03-13
策略模式 特点 定义一系列算法封装起来, 让他们可以相互替代,策略模式提供了管理相关算法族的办法, 提供了可以体会继承关系的棒法, 避免使用多重条件转移语句 实现 <?php abstract class Strategy { abstract function goSchool(); } class Run extends Strategy { public function goSchool() { echo "走路去学校"; } } class Subway extends

PHP实现动态表单生成工具详解

2022-03-13
目录 Form介绍 特点 项目主页链接 安装方法 快速使用 链式操作创建块表单 数组配置创建块表单 行内表单 table表单 表单包含多种input类型,包括 hiiden类型 ,text类型,radio类型,checkbox类型,textarea类型,file类型,select类型等基础类型,手写表单就是累耗时耗力开发销量太低而且代码量大了还容易写出bug,每个页面的表单遇到改动的时候恨不得长十双手去改,于是我自己开发了一个php写的表单生成工具,在业务逻辑通过配置或者链式操作去初始表单结构和

php实现归并排序算法的方法详解

2022-03-08
目录 php实现归并排序算法 归并排序原理 总结 php实现归并排序算法 归并排序算法的复杂度是O(nlogn). 代码如下,只需要clone下来执行composer install然后执行 php artisan test:mergeSort 就可以看到结果了 /** * 归并排序把数据逐步分解,然后对分解后的数据进行排序,最后合并到一起 * * @return mixed */ public function handle() { $this->a = [3,70,4,38,5,6,8,4,

PHP数组的内部实现你了解吗

2022-03-07
目录 前言 探究 zval zend_array 结构介绍 结构体 数组插入操作 hash函数 总结 前言 这几天在翻github的时候, 碰巧看到了php的源码, 就 down 下来随便翻了翻 那么PHP中什么玩意最引人注目嘞? 一定是数组了, PHP中的数组太强大了, 于是就想着不如进去看看数组的实现部分. 这篇文章打算全程针对代码进行解读了. 以下代码基于最新 php8.1. commitId: ea62b8089acef6551d6cece5dfb2ce0b040a7b83 .感兴趣的可

PHP实现读取Excel文件的记录(二)

2022-03-02
<PHP实现读取Excel文件的记录(一)> 中有在PHP中读取Excel的例子,有些麻烦,因为必须要加载很多的文件. 应该有ODBC的读取方法,还没有试,今天的方法简单了很多,只需要加载两个文件即可,这两个文件(OLERead.php.reader.php)我找了好长时间才找到,放在后面. 试验成功的代码: <?php require_once 'reader.php';//加载Reader $excelData = new Spreadsheet_Excel_Reader();//创