网站整改公告 团队
为了遵守相关法律法规,合法合规运营,网站进行全面整改,整改工作于2021年3月18日12:00开始,预计于3月25日11:59结束,整改期间全站无法发布任何内容,之前发布的内容重新审核后才能访问,由此给您带来很大的麻烦,请您谅解。
原文链接:http: www.cnblogs.com/ru...[2021/3/24]
PHP中的对象比较
在之前的文章中,我们讲过PHP中比较数组的时候发生了什么?。这次,我们来讲讲在对象比较的时候PHP是怎样进行比较的。
首先,我们先根据PHP文档来定义对象比较的方式:
同一个类的实例,比较属性大小,根据顺序,遇到不同的属性值后比较返回,后续的不会再比较
不同类的实例,比较属性值
===,必须...[2021/3/8]
ThinkPHP5权限管理
自己写的权限管理,大致思路:用户登陆成功之后,查出该用户的权限列表,并把权限列表存到se ion中,进入系统后,再判断该模块是否在se ion中,如果存在就说明有该权限,就显示出来,如果没有就说明没有该权限,就不显示。
可以按角色分配权限,也可以给某个人自定义权限,需要给角色分配权限时,把用户...[2021/3/8]
PHP中命名空间是怎样的存在(一)?
命名空间其实早在PHP5.3就已经出现了。不过大部分同学可能在各种框架的使用中才会接触到命名空间的内容,当然,现代化的开发也都离不开这些能够快速产出的框架。这次我们不从框架的角度,仅从简单的代码角度来解析一下命名空间的概念和使用。
首先,我们要定义命名空间是个什么东西。
其实就像操作系统的目...[2021/3/8]
PHP中命名空间是怎样的存在?(二)
今天带来的依然是命名空间相关的内容,本身命名空间就是PHP中非常重要的一个特性。所以关于它的各种操作和使用还是非常复杂的,光使用方式就有很多种,我们一个一个的来看。
子命名空间
命名空间本身就像目录一样,所以命名空间当然也是可以定义子命名空间的,真的就和操作系统的各种目录层级是完全一样的。我们...[2021/3/8]
php 二叉树遍历
二叉树是逻辑结构,二叉链表是二叉树的物理实现,是它的一种存储结构。两者之间的关系属于概念和实现,抽象和具体的关系。
前序遍历:根节点->左子树->右子树
中序遍历:左子树->根节点->右子树
后序遍历:左子树->右子树->根节点
深度...[2021/3/8]
PHP中命名空间是怎样的存在?(三)
这是与命名空间有关的最后一篇。最后还是两个比较简单的内容,是关于命名空间和全局相关的一些类、函数、常量的使用对比。当然,最后我们还会总结一下命名空间的名称解析规则做为这三篇系列文章的结束。
全局空间
当文件中定义了命名空间,也就是namesapce指定了当前的命名空间后,在调用全局类、函数、常...[2021/3/8]
use关键字在PHP中的几种用法
在学习了和使用了这么多年的PHP之后,您知道use这个关键字在PHP中都有哪些用法吗?今天我们就来看一下它的三种常见用法。
1. 用于命名空间的别名引用
命名空间
include ''namespace/file1.php'';
use FILE1\objectA;
use FILE1\...[2021/3/8]
变着花样来接参,PHP中接收外部参数的方式
对于PHP这样一个web语言来说,接参是非常重要的一个能力。毕竟从前端表单或异步请求传递上来的数据都要获取到才能进行正常的交互展示。当然,这也是所有能够进行web开发的语言的必备能力。今天我们就来看看PHP各种各样的接参形式。
首先,我们要准备一个静态页面,就像下面这个一样,它提供了一个表单,...[2021/3/8]
PHP网站常见安全漏洞,及相应防范措施总结
目前,基于PHP的网站开发已经成为目前网站开发的主流,本文笔者重点从PHP网站攻击与安全防范方面进行探究,旨在减少网站漏洞,希望对大家有所帮助!
一、常见PHP网站安全漏洞
对于PHP的漏洞,目前常见的漏洞有五种。分别是Se ion文件漏洞、SQL注入漏洞、脚本命令执行漏洞、全局变量...[2021/3/1]
记一次PHP的Invalid binding type问题
首先说明下环境问题,新旧服务器的迁移。代码在老服务器运行没有任何问题。环境都是PHP7.3,结果新的服务器上流量导过来以后,就报出了如下问题:
FastCGI sent in stderr: "PHP me age: PHP Fatal error: Invalid binding type...[2021/3/1]
学习下Redis这个核心数据类型学习下Redis这个核心数据类型
string 字符串
tring 类型是二进制安全的,即 string 中可以包含任何数据。
Redis 中的普通 string 采用 raw encoding 即原始编码方式,该编码方式会动态扩容,并通过提前预分配冗余空间,来减少内存频繁分配的开销。
在字符串长度小于 1MB 时,按所需长...[2021/3/1]
trait能力在PHP中的使用
相信大家对trait已经不陌生了,早在5.4时,trait就已经出现在了PHP的新特性中。当然,本身trait也是特性的意思,但这个特性的主要能力就是为了代码的复用。
我们都知道,PHP是现代化的面向对象语言。为了解决C++多重继承的混乱问题,大部分语言都是单继承多接口的形式,但这也会让一些可...[2021/3/1]
Linux下安装php-soap通过重新编译php过程
首先安装完php后最好保留当时安装的文件,比如我的路径/export1 oft
1
2
3
4
5
6
7
8
9
; html-script: false ] cd php-5.1.6/ext/soap
/usr/loca...[2021/3/1]
关于PHP的方法参数类型约束
在之前的文章PHP方法参数的那点事儿中,我们讲过关于PHP方法参数的一些小技巧。今天,我们带来的是更加深入的研究一下PHP中方法的参数类型。
在PHP5之后,PHP正式引入了方法参数类型约束。也就是如果指定了方法参数的类型,那么传不同类型的参数将会导致错误。在PHP手册中,方法的类型约束仅限于...[2021/3/1]
PHP内存溢出是什么样的
相信很多人做大批量数据导出和数据导入的时候,经常会遇到PHP内存溢出的问题,在解决了问题之后,总结了一些经验,整理成文章记录下。
优化点
优化SQL语句,避免慢查询,合理的建立索引,查询指定的字段,sql优化这块在此就不展开了。
查询的结果集为大对象时转数组处理,框架中一般有方法可以转,如La...[2021/3/1]
关于PHP的方法参数类型约束
在之前的文章PHP方法参数的那点事儿中,我们讲过关于PHP方法参数的一些小技巧。今天,我们带来的是更加深入的研究一下PHP中方法的参数类型。
在PHP5之后,PHP正式引入了方法参数类型约束。也就是如果指定了方法参数的类型,那么传不同类型的参数将会导致错误。在PHP手册中,方法的类型约束仅限于...[2021/3/1]
后期静态绑定在PHP中的使用
什么叫后期静态绑定呢?其实我们在之前的文章PHP中的static中已经说过这个东西了。今天我们还是再次深入的理解一下这个概念。
首先,我们通过一段代码来引入后期静态绑定这一概念:
cla A
{
public static function who()
{
...[2021/3/1]
[PHP] php使用curl_multi_exec并行同时执行http请求[PHP] php使用curl_multi_exec并行同时执行http请求
当php代码要对外请求多个接口的时候 , 可以使用下面的方式并行执行多个请求
主要是使用curl_multi_exec函数实现
代码中请求的test.php文件 , 是sleep(10)秒
如果按传统的逐行执行的方式 , 请求两次这个接口代码会阻塞20秒的时间 , 现在使用同时并行执行的方...[2021/3/1]
MacOS下PHP7.1升级到PHP7.4.15的方法
最近写SDK的时候需要用到object类型提示符,PHPStorm智能提示说需要PHP7.2以上才能支持这种类型提示。
我一查我本机的PHP是7.1.30版本,于是考虑升级一下PHP版本。
首先要尝试使用如下命令进行升级:
brew update
brew upgrade ph...[2021/2/22]
PHP中类的自动加载
在之前,我们已经学习过Composer自动加载的原理,其实就是利用了PHP中的类自动加载的特性。在文末有该系列文章的链接。
PHP中类的自动加载主要依靠的是__autoload()和spl_autoload_register()这两个方法。今天我们就来简单的看一下这两个方法的使用。
_...[2021/2/22]
PHP中的“重载”是个啥?
很多面试官在面试的时候都会问一些面向对象的问题,面向对象的三大特性中,多态最主要的实现方式就是方法的重载和重写。但是在PHP中,只有重写,并没有完全的重载能力的实现。
重写,子类重写父类方法。
重写
cla A
{
public function test($a)
...[2021/2/22]
PHP实现一个二维码同时支持支付宝和微信支付的示例
实现思路
生成一个二维码,加入要处理的url连接
在用户扫完码后,在对应的脚本中,判断扫码终端,调用相应的支付
若能够扫码之后能唤起相应app,支付宝要用手机网站支付方式,微信要使用jsapi支付方式
效果展示
提示: 因为项目即将上线,所以上面的支付二...[2021/2/19]
array_values()在php中返回数组的操作实例
在对数组的一些操作上,有些人对于键值方面不太理解。为了方便大家能够更好地对一些值进行返回,本篇带来了array_values() 函数进行介绍,使用后能直接返回数组。下面我们就array_values()函数的定义、语法、参数、返回值、实例进行介绍,一起都来看看返回数组的方法吧。
1、定义
...[2021/2/18]
WEB前端第六十二课——自封装Ajax、跨域、分页
1.Ajax封装方法
自封装Ajax请求文件,其实就是将原生的Ajax的请求代码抽象为一个函数,
然后单独生成一个js文件保存,用到Ajax的时候引入文件,调用函数的过程。
封装Ajax大致步骤如下:
⑴ 提供创建xhr对象的兼容性函数
⑵...[2021/2/18]
PHP中的“重载”是个啥?PHP中的“重载”是个啥?
很多面试官在面试的时候都会问一些面向对象的问题,面向对象的三大特性中,多态最主要的实现方式就是方法的重载和重写。但是在PHP中,只有重写,并没有完全的重载能力的实现。
重写,子类重写父类方法。
重写
cla A
{
public function test($a)
...[2021/2/18]
PHP中类的自动加载
在之前,我们已经学习过Composer自动加载的原理,其实就是利用了PHP中的类自动加载的特性。在文末有该系列文章的链接。
PHP中类的自动加载主要依靠的是__autoload()和spl_autoload_register()这两个方法。今天我们就来简单的看一下这两个方法的使用。
_...[2021/2/18]
PHP匿名类的用法
在PHP7之后,PHP中加入了匿名类的特性。匿名类和匿名方法让PHP成为了更现代化的语言,也让我们的代码开发工作越来越方便。我们先来看看匿名类的简单使用。
直接定义
$objA = new cla
{
public function getName()
{
...[2021/2/18]
PHP怎么遍历对象?
对于php来说,foreach是非常方便好用的一个语法,几乎对于每一个PHPer它都是日常接触最多的请求之一。那么对象是否能通过foreach来遍历呢?
答案是肯定的,但是有个条件,那就是对象的遍历只能获得它的公共属性。
普通遍历
cla A
{
public $a1 ...[2021/2/18]
PHP实现一个二维码同时支持支付宝和微信支付PHP实现一个二维码同时支持支付宝和微信支付
实现思路
生成一个二维码,加入要处理的url连接
在用户扫完码后,在对应的脚本中,判断扫码终端,调用相应的支付
若能够扫码之后能唤起相应app,支付宝要用手机网站支付方式,微信要使用jsapi支付方式
效果展示
提示: 因为项目即将上线,所以上面的支付二维码连接被我替换了(注...[2021/2/18]
WEB前端第六十一课——xhr对象POST请求、xhr兼容性、timeout、progress
1.xhr对象发送post请求
Ajax中post请求与get请求不同之处在于多了一个表单,而get请求则是通过url发送附加信息。
在xhr对象中,post请求可以通过FormData构建表单数据。
语法:var formData = new FormData();
...[2021/2/1]
PHP的switch和ifelse谁更快?
对于多个if条件判断的情况下,我们使用switch来代替ifelse对于代码来说会更加的清晰明了,那么他们的效率对比呢?从PHP手册中发现有人已经对比过了,自己也用他的代码进行了实验:
$s = time();
for ($i = 0; $i < 1000000000; ++$...[2021/2/1]
PHP的可变变量与可变函数
什么叫可变。在程序世界中,可变的当然是变量。常量在定义之后都是不可变的,在程序执行过程中,这个常量都是不能修改的。但是变量却不同,它们可以修改。那么可变变量和可变函数又是什么意思呢?很明显,就是用另一个变量来定义他们,这个变量是可变的呀!
可变变量
$a = ''hello''...[2021/2/1]
在PHP中灵活使用foreach+list处理多维数组
先抛出问题,有时候我们接收到的参数是多维数组,我们需要将他们转成普通的数组,比如:
$arr = [
[1, 2, [3, 4]],
[5, 6, [7, 8]],
];
我们需要的结果是元素1变成1,2,3,4,元素2变成5,6,7,8,这时候,我们就可以用f...[2021/2/1]
DVWA通关之命令注入(command injection) - ruoli-s
DVWA通关之命令注入(command injection)
难度等级:low
过关思路
我们先将其难度设置为low,看到其界面如下:
通过分析得知,该功能是输入一个IP地址,然后通过ping进行测试,先输入127.0.0.1和www.baidu.com测试如下:
127....[2021/2/1]
对象赋值在PHP中到底是不是引用?
之前的文章中,我们说过变量赋值的问题,其中有一个问题是对象在进行变量赋值的时候,直接就是引用赋值。那么到底真实情况是怎样呢?
之前变量赋值的文章
PHP的变量赋值
对象引用测试
在继续深入的学习PHP手册后,发现原来对象还真不是直接的引用复制。通过下面手册中的例子来进行分...[2021/2/1]
彻底搞明白PHP中的include和require彻底搞明白PHP中的include和require
在PHP中,有两种包含外部文件的方式,分别是include和require。他们之间有什么不同呢?
如果文件不存在或发生了错误,require产生E_COMPILE_ERROR级别的错误,程序停止运行。而include只产生警告,脚本会继续执行。
这就是它们最主要的区别,其他方面...[2021/2/1]
富文本编辑器新增导入word功能,自动转为html,可直接显示图片
用我现在最常使用的php框架fastadmin举例子,当然thinkphp或者原生php也是同样的原理,大家理解思路就好了、
环境:fastadmin,summernote编辑器
【summernote的居中功能在段落里,且不会吃掉section标签,加上导入word功能...[2021/2/1]
final关键字在PHP中的使用
final关键字的使用非常简单,在PHP中的最主要作用是定义不可重写的方法。什么叫不可重写的方法呢?就是子类继承后也不能重新再定义这个同名的方法。
cla A {
final function testA(){
echo ''This is cla A!''...[2021/2/1]
goto语法在PHP中的使用goto语法在PHP中的使用
在C++、Java及很多语言中,都存在着一个神奇的语法,就是goto。顾名思义,它的使用是直接去到某个地方。从来代码的角度来说,也就是直接跳转到指定的地方。我们的PHP中也有这个功能,我们先来看看它是如何使用的:
goto a;
echo "1"; 不会输出
a:
echo ''...[2021/1/25]
PHP中使用if的时候为什么建议将常量放在前面?
在某些框架或者高手写的代码中,我们会发现有不少人喜欢在进行条件判断的时候将常量写在前面,比如:
if(1 == $a){
echo 111;
}
这样做有什么好处呢?我们假设一个不小心的粗心大意,少写了一个=号,会有什么结果。
$a = ''a'';
if($a =...[2021/1/25]
PHP中用+号连接数组的结果是?
我们在开发中,有时候会将两个数组合并连接起来,这个时候要注意了,千万不要偷懒直接使用+号哦,为什么呢?我们看看以下代码:
$a = [1, 2];
$b = [4, 5, 6];
$c = $a + $b;
print_r($c);
请用第一直接告诉我它的结果是什么?或许我这...[2021/1/25]
laravel 学习笔记 —— 神奇的服务容器
本文转载至:https: www.insp.top/learn-laravel-container
laravel 学习笔记 —— 神奇的服务容器
竟然有人认为我是抄 Laravel 学院的,心塞。世界观已崩塌。
容器,字面上理解就是装东西的东西。常见的变量、对象属性等都可...[2021/1/25]
WEB前端第五十九课——时间戳、数据交互小案例
1.时间戳
程序开发中所说的时间戳,通常是指从1970年1月1日0时到当前事件的毫秒数。
time()方法,用于获取当前的时间戳,结果为毫秒数。
date()方法,用于将时间戳结果转换为通常的时间格式。
语法:date(format,timeStamp); f...[2021/1/25]
php压缩文件夹并下载到本地
/** * @param $path 要压缩的文件夹路径 * @param $filename 要生成的压缩包名称 */ public function create_zip($path,$filename) { $zip = new \ZipArc...[2021/1/25]
WEB前端第六十课——原生Ajax与HTTP协议
1.Ajax简述
全名:Asynchronous JavaScript and xml,
是指围绕“由js向服务器发起http请求”这个功能而开发的一整套完整的方法。
因此,引入jQuery封装好的Ajax会浪费很多资源,实际利用到...[2021/1/25]
PHP方法参数的那点事儿PHP方法参数的那点事儿
在所有的编程语言中,方法或者函数,都可以传递一些参数进来进行业务逻辑的处理或者计算。这没什么可说的,但是在PHP中,方法的参数还有许多非常有意思的能力,下面我们就来说说这方面的内容。
引用参数
涉及到值传递和引用传递的问题。在正常情况下,我们使用值传递的时候,变量是进行了拷贝,方...[2021/1/25]
PHP方法的返回值
不仅是PHP,大部分编程语言的函数或者叫方法,都可以用return来定义方法的返回值。从函数这个叫法来看,本身它就是一个计算操作,因此,计算总会有个结果,如果你在方法体中处理了结果,比如进行了持久化保存,那么这个函数就不用返回任何内容。而计算的结果是要给外部使用的,这时候就要将计算结果进...[2021/1/25]
PHP没有定时器?
确实,PHP没有类似于JS中的setInterval或者setTimeout这样的原生定时器相关的函数。但是我们可以通过其他方式来实现,比如使用declare。
先来看看是如何实现的,然后我们再好好学习一下declare表达式到底是个什么东西。
function do_tick($...[2021/1/25]
ubuntu 编译安装NGINX
一、编译安装LNMP,并安装wordpre
1、下载nginx并解压缩。
root@ubuntu:~# wget http: nginx.org/download/nginx-1.18.0.tar.gz
root@ubuntu:~# tar -xf nginx-1.18.0.tar...[2021/1/25]