php技巧

PHP网站常见安全漏洞,及相应防范措施总结

2021-02-28
目前,基于PHP的网站开发已经成为目前网站开发的主流,本文笔者重点从PHP网站攻击与安全防范方面进行探究,旨在减少网站漏洞,希望对大家有所帮助! 一.常见PHP网站安全漏洞 对于PHP的漏洞,目前常见的漏洞有五种.分别是Session文件漏洞.SQL注入漏洞.脚本命令执行漏洞.全局变量漏洞和文件漏洞.这里分别对这些漏洞进行简要的介绍. 1.session文件漏洞 Session攻击是黑客最常用到的攻击手段之一.当一个用户访问某一个网站时,为了免客户每进人一个页面都要输人账号和密码,PHP设置了S

Git命令之分支详解

2021-02-28
1.1 概述 在 Git 中提交时,会保存一个 commit 对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关的附属信息,包含零个或者多个指向该提交对象的父对象指针:首次提交时没有直接祖先的,普通提交有一个祖先,由两个或者多个分支合并产生的提交则有多个祖先. 1.1.1 示例 在工作目录中有三个文件,准备将他们暂存后提交.暂存操作会对每一个文件计算校验和(SHA-1哈希串),然后把当前版本的文件快照保存在 Git 仓库中(Git使用blob类型的对象存储这些快照), 并将校验

php框架知识点的整理和补充

2021-02-28
我们对于比较常见的php框架,已经基本上有所认识,不过一些比较冷门的框架也可以做一个了解,以便日后的特殊使用.本篇整理了4种php框架,在不同的使用方法上都独具特色,其中很多的框架不被大家熟知,下面我们就分别对每个框架做一个简单的介绍,一起看看具体内容吧. 1.Akelos AkelosPHP框架是RubyonRails相似的框架,是基于MVC设计模式的网络应用程序开发平台.Akelos对服务器的唯一要求是支持PHP,与其他类似框架相比代码应用程序少,因此可以在大多数共享主机服务器上运行,通过约

Docker 安装 PHP并与Nginx的部署实例讲解

2021-02-27
安装 PHP 镜像 查找 Docker Hub 上的 php 镜像: 此外,我们还可以用 docker search php 命令来查看可用版本: 这里我们拉取官方的镜像,标签为7.3.24-fpm-stretch docker pull php:7.3.24-fpm-stretch 等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为php,标签为7.3.24-fpm-stretch的镜像. Nginx + PHP 部署 Nginx 部署可以查看本人博客中:Docker 安装

php中get_object_vars()在数组的实例用法

2021-02-20
在php中有一些函数,是为了数组的使用而辅助的.本篇要提到的是get_object_vars(),咋子函数的名称上大家会觉得有些复杂,不过在返回关联数组上,是经常会用到的函数方法.下面我们对php中get_object_vars()的概念.语法.使用注意进行介绍,然后讲解在数组中的实例方法. 1.概念 获取$object对象中的属性,组成一个数组. 2.语法 get_object_var($object) 3.使用注意 缺点,只转一维,不会递归 4.实例 <?php class person{

PHP反序列化字符串逃逸实例详解

2021-02-18
通过CTF比赛了解PHP反序列化,记录自己的学习. 借用哈大佬们的名言 任何具有一定结构的数据,如果经过了某些处理而把结构体本身的结构给打乱了,则有可能会产生漏洞. 0CTF 2016piapiapia-----反序列化后长度递增 安询杯2019-easy_serialize_php-----反序列化后长度递减 0CTF 2016piapiapia 由于是代码审计,直接访问www.zip发现备份的源码,有一下文件,flag就在config.php,因此读取即可 class.php        

array_values()在php中返回数组的操作实例

2021-02-17
在对数组的一些操作上,有些人对于键值方面不太理解.为了方便大家能够更好地对一些值进行返回,本篇带来了array_values() 函数进行介绍,使用后能直接返回数组.下面我们就array_values()函数的定义.语法.参数.返回值.实例进行介绍,一起都来看看返回数组的方法吧. 1.定义 array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名. 2.语法 array_values(array) 3.参数 array 4.返回值 返回包含数组中所有的值的数组. 5.

php中str_replace替换实例讲解

2021-02-15
在对于字符串的替换上,我们已经学过了不少的方法.但在做练习题的时候,我们会对多个字符串进行替换.从方法的实用性来说,str_replace就非常适合处理多个字符串的替换问题.下面我们就php中str_replace的概念.语法.参数.返回值进行讲解,然后带来替换的实例分享. 1.概念 str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写). 该函数区分大小写.请使用 str_ireplace() 函数执行不区分大小写的搜索. 2.语法 str_replace(find,r

php中laravel调度执行错误解决方法

2021-02-08
我们说laravel框架的功能性比较明确,作为全栈框架在代码的运行上是比较简洁的.在对laravel框架安装完成后,我们可以就其中的一些操作为大家展现.本篇要带来的是在laravel中的调度,分为两种不同目录的情况讨论,同时把可能在调度中会出现的错误情况,单独为大家呈现并解决. 1.不在laravel根目录(命令行操作前的地址) php /www/wwwroot/laravel6/artisan schedule:run /www/wwwroot/laravel/artisan 解释 /www/

php中创建字符串的变量实例讲解

2021-02-07
在编程中经常会设置一个变量,这样就可以对一些程序进行反复的时候,想要改动一些结果,对变量的值进行修改就可以了.为了让大家能够对变量有一个初步的认识,本篇先就变量的概念.使用注意带来介绍,然后以创建字符串变量的实例方法,帮助大家学会基础的变量使用方法. 1.概念 变量用于存储值,比如数字.文本字符串或数组.一旦设置了某个变量,我们就可以在脚本中重复地使用它.PHP 中的所有变量都是以 $ 符号开始的. 2.使用注意 (1)PHP中,不需要在设置变量之前声明该变量. (2)不必向 PHP 声明该变量

php字符串中转义成特殊字符实例讲解

2021-02-05
在php的字符串使用时,我们有学会一些转义字符,相信大家在记忆这些知识点的时候费了不少的功夫.本篇我们为大家带来的是字符串的转义方法,涉及到特殊字符的使用,主要有两种方法可以实现:mysql库函数和转义函数.下面就这两种方法,在下文中展开详细的介绍. 1.转义字符说明 双引号中,所有转义字符都可正常使用. 单引号中,只有单引号转义字符可以使用("),别的都不可使用. 2.利用mysql库函数 PHP版本在7.0之前: mysql_escape_string ( string $unescaped

php中Workerman框架实例讲解

2021-02-04
在我们探讨php框架的开发时,更多的是偏向于理论的框架.那么本篇要讲的Workerman框架,与其他的框架有很大的不同,可以广泛的应用在生活中.我们平时所用到的软件,也许正是Workerman开发出来的.下面我们就php中Workerman框架的概念.与其他框架区别带来讲解. 1.概念 Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架.被广泛的用于手机app.移动通讯,微信小程序,手游服务端.网络游戏.PHP聊天室.硬件通讯.智能家居.车联网.物联网等领域的开发

PHP优化教程之解决嵌套问题

2021-02-03
在开发过程中,我们经常遇到一对多的场景, 例如:查询订单列表,并且展示订单详情商品.数量数据 思路0:传统做法 a. 查询订单列表 b. 遍历订单详情 $orderList = select * from order where xx; foreach($orderList as $orderItem) { $orderItem->detailList = select * from order_detail where order_id = $orderItem->id; } 分析:查询SQ

PHP超级全局变量、魔术变量和魔术函数汇总整理

2021-02-01
PHP在设计的时候已经预定义了9个超级全局变量.8个魔术变量和13魔术函数,这些变量和函数可以在脚本的任何地方不用声明就可以使用. 在PHP开发会频繁的使用这些变量和函数,这些变量和函数可以方便的帮我们解决很多问题.下面详细的讲解下PHP中的超级全局变量.魔术变量和魔术函数. PHP超级全局变量(9个) $GLOBALS:储存全局作用域中的变量 $_SERVER:获取服务器相关信息 $_REQUEST:获取POST和GET请求的参数 $_POST:获取表单的POST请求参数 $_GET:获取表单

php中unable to fork报错简单解决方法

2021-01-30
今天小编遇到一个问题,当调用了system方法,并且执行了shell脚本,开始的时候,一切都非常正常,但是当程序运行后一段时间,出现了显示unable to fork的报错,这个是什么原因呢,后来小编排查了下,主要是因为达到用户的进程上限了,下面小编给大家介绍下解决方式. 限制linux用户的进程数 修改以下文件 vi /etc/security/limits.conf vpsee hard nproc 32 @student hard nproc 32 @faculty hard nproc

PHP中CakePHP添加数据库实例方法

2021-01-26
数据库的使用出现在编程的各个角落,不论是python还是java,甚至是框架中都离不开相关的操作.可以说在CakePHP框架的配置中,数据库是必不可少的组成部分.当然很多人还没有接触过这种配置,本篇文章对CakePHP添加数据库的步骤进行了梳理,下面一起来看看操作方法. 1.CakePHP数据库配置文件可以在/app/Config/文件夹中找到,默认文件名是database.php.default,该文件是CakePHP数据库的配置文件模板. 2.找到复制到当前目录,并重命名为database.

php中rsort函数实例用法

2021-01-26
在讲到升序的数组方法后,那么对应的就会出现降序的方法.在我们正式揭晓方法之前,大家已经学习了sort函数的用法,那么对应的降序函数名称就是rsort() .两个函数在结构语法上都非常相似,下面我们就rsort() 函数的概念.语法.返回值.降序实例带来介绍,具体使用方法如下. 1.概念 rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序. 注意: 如果数组元素是数字,则根据数字排序:如果数组元素是字符串,则根据字母排序:如果数组包含数字值和文本/字符串,则根据字母排序.

docker中实现安装php拓展步骤讲解

2021-01-22
一:php核心拓展包安装 在docker中安装的php有一些核心的拓展包,他们一般放置在/usr/src/php/ext/目录下 如下: docker exec -it php /bin/bash #进入php容器 cd /usr/src/php/ext/ dir 如下展示的就是php的核心拓展包 安装方式: #相关依赖安装 apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt

PHP中强制类型转换的示例详解

2021-01-22
前言 学过静态语言开发的朋友对类型转换不会陌生,比如Java.C#.C++等.静态语言的好处就是变量强制必须指定类型,这也是编译的要求,所以大部分编译型的语言都会有强制变量类型的要求.而PHP据说也会在PHP8中加入JIT实现编译功能,并且在7.4中就会引入变量声明时的类型指定.下面我们先看看目前PHP中的参数类型及返回值类型的使用. 1function add(int $a, float $b) : int{ 2 return (int) $a + $b; 3} 上述代码中,方法参数中定义了参

PHP方法的返回值示例详解

2021-01-21
前言 不仅是PHP,大部分编程语言的函数或者叫方法,都可以用return来定义方法的返回值.从函数这个叫法来看,本身它就是一个计算操作,因此,计算总会有个结果,如果你在方法体中处理了结果,比如进行了持久化保存,那么这个函数就不用返回任何内容.而计算的结果是要给外部使用的,这时候就要将计算结果进行返回了. return关键字 function testA($a, $b) { echo $a + $b; } var_dump(testA(1, 2)); // NULL function testB(