php技巧

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();//创

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

2022-03-01
因为工作需要将Excel的文件记录读出再写入数据库中,之前使用的是VBS,可是那也不是正规的应用程序,使用PowerBuilder也可以,但是PowerBuilder毕竟只是临时使用,C#好长时间不用了,就打算使用最近学习的PHP来操作. 下班后就开始干,折腾了将近4个小时,终于搞定了,遇到了好多的坑,快崩溃了,想一想为这些肤浅的代码所累,程序员的日子不好过! 要使用PHP读取Excel的文件记录,查了资料都是使用PHPExcel这个文件包,并且全部都要使用Composer来安装,结果遇到了第一

php如何利用ffmpeg获取视频第一帧为缩略图

2022-03-01
目录 phpffmpeg获取视频缩略图 1.环境 2.centos7安装ffmpeg 3.项目安装ffmpeg包 4.php代码 附Fmpeg读取视频信息 总结 php ffmpeg获取视频缩略图 1.环境 centos 7 ffmpeg version 2.8.15 Copyright 2.centos7安装ffmpeg centos7安装ffmpeg sudo rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro sudo

PHP如何从txt文件中读取数据详解

2022-02-28
目录 一.打开/关闭文件 二.读写文件 1.读取整个文件 2.读取一行数据 3.读取一个字符 4.读取任意长度的字符串 总结 一.打开/关闭文件 1.对文件操作时首先要打开文件,打开文件用 fopen()函数,语法是: fopen(filename,mode,include_path,context); 2.对文件操作结束后应该关闭这个文件,使用函数 fclose(); 例如: 二.读写文件 1.读取整个文件 有三个函数可以使用,分别是:readfile()函数.file()函数.file_ge

PHP文件上传利用的常见函数总结大全

2022-02-28
目录 前言 1.deldot 2.in_array 3.intval 4.strrchr 5.strtolower 6.strrpos 7.str_ireplace 8.strstr 9.substr 10.trim 附PHP文件上传处理 参考资料 总结 前言 收集了几个在文件上传利用中常见的函数. 对这些函数的深入理解应该有助于文件上传利用的顺利进行. 1. deldot deldot函数为upload-lab中一个常见的函数,它实际为一个自定义函数,定义于common.php中,函数定义如下

PHP实现将Word文件保存到SQL&nbsp;Server数据库

2022-02-25
算起来,折腾了整整一天,就是完成将上传的Word文件保存到MS SQL Server 2014数据库中. 第一次使用PHP来开发一个小程序,压力也挺大,主要是用户觉得我很快就能完成,这就有点尴尬了,怎么可能?!对于PHP,我还是个新手. 没有办法,只能硬着头皮干了,星期一开始. 原先我一直以为CSDN是最好的开发文档集散地,查资料是首选,结果我查了无数的资料,都没有找到相关的内容,快崩溃了.我发现很多记录日志真是糟糕,写开发日志是为了方便自己也方便别人,胡乱写有什么意义呢?! 只能不停地试,总算

PHP实现获取MySQL数据库的记录数据

2022-02-24
目录 如果后台数据处理使用PHP来进行,那么就要有相应的数据处理及返回. 最常用的就是获取记录总数和表记录查询结果. 获取数据表的记录总数 <?php require 'linkConfig.php';//根据连接信息连接数据库 $sql = "select count(*) from druserlist where C04='普通用户'";//查询数据表 $result = $mysqli->query($sql);//以索引的方式返回一个结果集 list($rowCo

php查询类的方法总结

2022-01-08
本教程操作环境:windows7系统.PHP7.1版.DELL G3电脑 在php中,可以使用get_class_methods()函数来查询类里面有哪些方法. get_class_methods()函数可以获取类的所有方法,返回由类的方法名组成的数组. 语法: get_class_methods($class_name) $class_name:类名或者对象实例. 返回值:返回由 $class_name 指定的类中定义的方法名所组成的数组.如果出错,则返回 null. 示例: <?php cl

phpstorm最新激活码分享亲测phpstorm2021.3版可用

2022-01-05
2020年11月份phpstorm最新激活码分享给大家,如果你的phpstorm过期了或是安装最新版的phpstorm2020.2.3可以使用下面的phpstorm激活码,我的phpstorm2020.2.3激活成功 2022年01月08日更新:支持2022年最新版 phpstorm2021.3.1 X8JSJ4MLNV-eyJsaWNlbnNlSWQiOiJYOEpTSjRNTE5WIiwibGljZW5zZWVOYW1lIjoi5rC45LmF5r+A5rS7IGlkZWHCt21lZGVt