php技巧

php访问对象中的成员的实例方法

2021-10-22
对象是由成员属性和成员方法构成的,想要访问对象成员的话,实际上有点像访问数组中的元素,既然有点像的话,通过对象的引用来访问对象的成员,还需要使用一个特殊的运算符号->来完成对象成员的访问. 实例 <?php class Website{ public $baba, $dad, $title; public function demo(){ echo '福如东海,寿比南山'; } } $love = new Website(); $love -> baba = '爸爸'; $love -&

php实现自动生成验证码的实例讲解

2021-10-20
现在验证码在表单中的应用越来越多了,但是如果用js来实现总觉得不太方便,因此使用php来实现下,在此记录下. 当然,我们也可以封装成一个函数,以后使用的时候也是很方便的,这里并未封装,感兴趣的小伙伴可以自己封装下. 具体实现代码: 新建一个cap_sz.php文件: <?php session_start(); //设置session,一定要在顶部 $width = 150; //设置图片宽为300像素 $height = 40; //设置图片高为40像素 $image = imagecreat

php将xml转化对象的实例详解

2021-10-19
XML文件 $xml= "123456"; 将文件转换成对象 $objectxml = simplexml_load_string($xml); 将对象转换个JSON $xmljson= json_encode($objectxml ); 将json转换成数组 $xmlarray=json_decode($xmljson,true); 内容扩展: PHP将XML转换成数组/对象 $xml= "<xml><appid>123456</appid&g

php安全攻防世界unserialize函数反序列化示例详解

2021-10-14
目录 步骤 总结 步骤 首先打开题目,发现给了一段源码: 分析源码,发现类里面有三个魔术方法: __construct():构造函数,对类的变量进行初始化,创建时自动调用,用得到的参数覆盖$file __destruct():销毁时调用,会显示文件的代码,这里要显示fl4g.php __wakeup():在进行反序列化之前会调用,会把$file重置成index.php 正则表达式的含义:o或c开头,冒号,一个或多个数字,不区分大小写 ok,分析完毕:我们要将序列化后的字符串进行base64加密之

web php include攻防世界php安全示例详解

2021-10-13
步骤 打开所给的实验环境,发现给出代码,分析代码可知是文件包含漏洞: 其中含有两个参数: hello参数中的内容会被输出到页面 page参数中的内容则会被进行文件包含,但是会对php://进行过滤 两个函数: strstr(string,search[,before_search]):strstr() 函数搜索字符串(search)在另一字符串(string)中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE.区分大小写,stristr()函数不区分大小写. string:必需.规

php安全攻防利用文件上传漏洞与绕过技巧详解

2021-10-11
目录 前言 文件上传漏洞的一些场景 场景一:前端js代码白名单判断.jpg|.png|.gif后缀 场景二:后端PHP代码检查Content-type字段 场景三:代码黑名单判断.asp|.aspx|.php|.jsp后缀 场景四:代码扩大黑名单判断 绕过方式--htaccsess: 绕过方式--大小写绕过: 场景五:一些复合判断 空格.点绕过(windows) ::$DATA绕过(windows) 双写绕过 %00截断 %0a绕过 图片马绕过 二次渲染绕过 条件竞争 /.绕过 前言 文件上传漏

php如何处理setcookie失效的问题

2021-09-23
1.浏览器开启cookie. 2.删除在setcookie()之前的任何HTTP头部输出. 3.使用php的setcookie()来创建cookie即可. 使用php的setcookie()来创建cookie和php中开启session的 session_start()一样,在setcookie()之前不能有任何HTTP头部输出.我去检查代码,发现如下代码 var_dump($qOpenId); setcookie('qOpenId',$openid,time() + 30 * 24 * 360

php类自动加载失败的处理方案及实例代码

2021-09-21
1.打开相应的PHP代码文件. 2.添加"$class = str_replace("\\","/",$class);"代码即可. 文件在本地win系统下测试无异常,代码如下: function stu_autoload($class){ if(file_exists($class.".php")){ require ( $class.".php"); }else{ die("unable to

PHP中=&gt;和-&gt;以及::符号的用法

2021-09-21
没关系,下面我们做一下详细的解释,如果你有C++,Perl基础,你会发现这些家伙和他们里面的一些符号功能是差不多的. '- >'符号 插入式解引用操作符"(infix dereference operator).换句话说,它是调用由引用传递参数的子程序的方法(当然,还有其它的作用).正如我们上面所提到的,在调用PHP的函数的时候,大部分参数都是通过引用传递的.PHP中的'->'功能就和它们在Perl或C++中一样.下面是一个简单的解引用的例子: echo $x->def();

深入浅出理解PHP原理之变量赋值

2021-09-20
PHP的变量赋值 这个标题估计很多人会不屑一顾,变量赋值?excuse me?我们学开发的第一课就会了好不好.但是,就是这样基础的东西,反而会让很多人蒙圈,比如,值和引用的关系.今天,我们就来具体讲讲. 首先,定义变量和赋值这个不用多说了吧 $a = 1; $b = '2'; $c = [4, 5, 6]; $d = new stdClass(); 四个变量,分别定义了整型.字符串.数组的对象.这也是我们天天要打交道的四种类型. 然后,变量给变量赋值. $a1 = $a; $b1 = $b; $

聊聊PHP中删除字符串的逗号和尾部斜杠的方法

2021-09-17
正如标题所述,本文将给大家通过两个示例来介绍PHP删除字符串中的逗号以及尾部斜杠的方法,感兴趣的朋友咱们一起继续往下看吧~ 下面我们通过具体的实例分别讲解: 第一个示例的要求则是"编写一个PHP脚本以从指定的数字字符串中删除逗号". PHP示例代码如下: $str1 = "2,345.12"; $x = str_replace( ',', '', $str1); if( is_numeric($x)) { echo $x." "; } 运行结果如

PHP操作MySQL的常用代码段梳理与总结

2021-09-16
这篇文章为大家介绍,实用的PHP网站实际开发中常用到的操作mysql数据库的代码段,所有代码均可靠执行,此文将持续更新!!! 1.向数据库插入数据表 <?php $con = mysql_connect("[数据库地址]","[数据库用户名]","[数据库密码]");//创建MySQL连接 mysql_select_db("[数据库名]", $con);//选择MySQL数据库 $sql = "CREATE T

聊聊PHP中require_once()函数为什么不好用

2021-09-16
在上一篇<聊聊PHP中die()和sleep()函数的用法>中给大家简单介绍了die()和sleep()函数的使用方法,感兴趣的朋友可以去学习了解一下~ 本文将告诉你PHP中require_once()为什么不好用! 不过在说它不好用之前,我们先开看看require_once()函数的定义和用法. require_once()函数是PHP中的内置函数,当我们想要将一个PHP文件引入到另一个文件中时,例如当我们需要在PHP脚本中多次引入一个文件时,它就非常有用了.它用于检查文件是否被包含了不止一

聊聊PHP中die()和sleep()函数的用法

2021-09-16
在上一篇<聊聊PHP中删除字符串的逗号和尾部斜杠的方法>给大家介绍了PHP删除字符串中的逗号以及尾部斜杠的方法,感兴趣的朋友可以去学习了解一下~ 本文也将给大家通过示例来讲解标题所述"PHP中die()和sleep()函数的用法". 一.关于die()函数的用法 die()是在PHP一个内置功能.它用于打印消息并退出当前的 php 脚本.相当于PHP 中的exit()函数. 语法很简单,如"die($message)" die()函数只接受一个参数,并且

php遇到错误Call to undefined function ImageCreate()解决方法

2021-09-15
目录 常规Ubuntu与windows 编译make安装方法 phpize方法 centos安装GD库 在使用php处理一些图像时,有时会出现诸如这样的错误:Call to undefined function imagecreate() 这是由于没有安装或是没有开启php的gd库导致的问题. 常规Ubuntu与windows 解决方案: 一.在linux系统(这里用的是Ubuntu系统)下 首先在终端输入下列命令: sudo apt-get install php5-gd 这样就已经安装完ph

php复制文件后改名的实例代码

2021-09-15
1.сoру函数来实现复制文件后修改文件名,该函数可以将一个文件复制(拷贝)到指定目录中. 2.语法"copy($file, $newfile)":如果执行成功则返回TRUE,如果执行失败则返回FALSE. 实例 <?php header("Content-type:text/html;charset=utf-8"); $file = 'test.txt'; $newfile = 'newtest.txt'; if(copy($file, $newfile))

PHP Class self 与 static 异同与使用详解

2021-09-15
对于大多数 PHPer 来说,self 与 static 两个 PHP 关键词都不算陌生.我们学会通过self::xxxx这种方式来调用当前类的静态属性和方法.而 static 呢?想必很多人只知道它是用于定义一个静态方法和类属性关键词. 这也是我之前的认知. 现在我们来回顾一下这两个关键词的一些常见用法: // self 用法 1 :调用静态成员属性 class Person { protected static $maxAddressCount = 5; // 收获地址创建最大数量. pub

实例解析PHP定时器的具体实现

2021-09-15
目录 前言 原因 危险的做法 正确的姿势 CLI模式 总结 前言 常见的定时器有两种:一种周期性定时执行,例如每天的凌晨三点出报表:另一种在指定时间后执行(一次),例如会员登录系统五分钟后发放每日登录奖励.两种情况对应shell中的cron和at命令,与JavaScript中的setInterval和setTimeout函数类似(严格来说setInterval是周期性执行,指定时间点执行需要自行处理). 做web开发的PHP程序员对JavaScript中的两个定时器函数应该都还熟悉,回到PHP层

聊聊PHP中的 === 运算符为什么比 == 快

2021-09-14
在上一篇<聊聊PHP中require_once()函数为什么不好用>中给大家介绍了PHP中require_once()为什么不好用的原因,感兴趣的朋友可以去阅读了解一下~ 那么本文将给大家介绍PHP中的===运算符为什么比==快? PHP中的===和==运算符,这两个运算符属于PHP中的比较运算符. ===运算符称为绝对等于,==运算符称为等于. 语法示例: $a == $b,如果在类型转换后 $a 等于 $b,则为 TRUE: $a === $b,如果 $a 等于 $b,并且两者的类型相同,

php头编码实例设置方法及代码

2021-09-14
在PHP中可以通过在PHP文件头部添加"header("Content-type: text/html; charset=utf-8");"语句来设置编码. 设置utf编码的代码如下: header("Content-type: text/html; charset=utf-8"); 注:通常情况以上代码放在php页面的首页 header() 函数向客户端发送原始的 HTTP 报头. 附: php页面为gbk编码 header("Con