php技巧

php两种基本的输出方及实例详解

2021-11-10
在 PHP 中,有两种基本的输出方法:echo 和 print. echo 和 print 之间的差异 echo - 输出一个或多个字符串,可以接受多个参数并且没有返回值 print - 只能输出一个字符串,只能接受一个参数并且有返回值,并始终返回 1 提示:echo 比 print 稍快,因为它不返回任何值. PHP echo 语句 1.echo 是一个语言结构,有无括号均可使用:echo 或 echo(); 2.显示字符串,下面的例子展示如何用 echo 命令来显示不同的字符串(同时请注意字

php没有文件被上传的实例分析及解决办法

2021-11-07
1.修改php.ini,设置上传文件的大小. 2.在httpd.conf中添加"php_value upload_max_filesize "300M"". 3.重启服务器即可. 使用ThinkPhp框架上传小图片文件成功,上传大文件失败. 后来查找了原因,是因为php限制了上传文件的大小,修改php.ini如下配置: upload_max_filesize = 300M post_max_size = 300M 重启服务器,依然如此,问题并未得到解决. 解决方法如

PHP遍历数组的6种方式总结

2021-11-04
目录 1.foreach 2.array_map 3.array_walk 4.for 5.each 6.reset 总结 在PHP的日常操作中,数组是最常出现的结构,而我们几乎每天都在处理数组相关的内容.那么问题来了,你一般怎么遍历并处理数组. 1.foreach 很熟悉吧,是不是你的最爱? $arr = ['a', 'b', 'c']; foreach ($arr as $key => $value) { $arr[$key] = $value . '_i'; } print_r($arr)

关于PHP数组迭代器的使用方法实例

2021-11-02
近来在开发一个视力筛查电子报告系统的产品,这个产品的作用是自动提取视力筛查过程中得到的屈光检查数据,并结合数据自动生成通俗易懂且专业的电子报告,以方便家长可以通过公众号或H5链接查阅. 要实现这个需求,第一步是对验光设备里打印出来的纸质报告做OCR,图片识别接口返回的是二维数组,报告的原图是这样的: OCR接口返回的数据是这样的 array(3) { ["words_result"]=> array(36) { [0]=> array(1) { ["words&q

php双向队列实例讲解

2021-11-02
1.双向队列是指一种具有队列和栈的性质的数据结构. 2.双向队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行. 双向队列就像是一个队列,但是你可以在任何一端添加或移除元素. 实例 <?php class DoubleQueue { public $queue = array(); /**(尾部)入队 **/ public function addLast($value) { return array_push($this->queue,$value); } /**(尾部)出队**

如何解决php-fpm启动不了问题

2021-11-01
1.重新下载一个64位的"ZendGuardLoader.so". 2.将其放到"/usr/local/zend/"下. 3.重新执行"lamp php-fpm start"即可. 修复步骤 用file命令查看当前的ZendGuardLoader.so的文件信息,可以看到当前so文件为32位的文件. test@ubuntu:/usr/local/zend$ file ZendGuardLoader.so ZendGuardLoader.so: E

php修改word的实例方法

2021-10-31
1.将word另存为网页. 2.修改为默认页面视图. 3.编写php代码. 4.通过fwrite等函数修改Word内容即可. 实例 ob_start();//开启缓存 print'';//输出头部 $content = file_get_contents (S_ROOT.'./temp/word/jzydt.htm');//取得模板内容 $content = str_replace('<{jzydt_company_name}>',"400电话",$content);//经

php去除deprecated的实例方法

2021-10-28
1.找到并打开"php/php.ini"文件. 2.修改内容为"error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_WARNING"即可. 去掉PHP的中警告(warning).deprecate等提示的方法 打开php/php.ini: 修改 error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED 为 error_r

php去除数组中为0的元素的实例分析

2021-10-26
1.利用array_diff()函数来去除数组中为0的元素. 2.该函数用于比较两个数组的值并返回差集,只需要使用一个包含"0"数组和原数组进行比较即可.语法格式"array_diff($arr, [0])". 实例 <?php // 清除数组中指定元素 $arr = [1,2,3,0,1]; $arr = array_diff($arr, [0]);//输出[1,2,3,1] var_dump($arr); ?> 内容扩展: 在实现移除数组中项目为空的

php png失真的原因及解决办法

2021-10-24
1.创建一个PHP示例文件. 2.创建一个和背景图片一样大小的真彩色画布. 3.复制背景图片. 4.通过"imagecreatefrompng"合成png图片即可. 实例 <?php ob_clean(); $bg = "image1.png"; $image_1 = imagecreatefrompng($bg); $bgx = imagesx($image_1); $bgy = imagesy($image_1); //创建一个和背景图片一样大小的真彩色画

php实例化对象的实例方法

2021-10-23
想要将类实例化成对象,只是多了一个简单的小步骤,需要使用new关键字并且在后面加上一个和类名同名的方法就可以了.表明一个新的对象. 需要注意的是,当实例化对象不需要为对象传递参数时,在new关键字的后面直接使用类名不用加上括号. 实例化对象的语法格式如下: 变量名 = new 类名(参数列表); 或 变量名 = new 类名; 实例 <?php class Family{ } $father1 = new Family(); $father2 = new Family; $father3 = n

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