php
文章平均质量分 64
lee_3312
Shrug off dust & Move forward
展开
-
利用php程序放大图片
等比例放大或缩小图片:[放大图片可能会引起变形]代码如下:function resizeimage($srcfile,$mySize){ $size=getimagesize($srcfile); switch($size[2]){ case 1: $src_img=imagecreatefromgif($srcfile); $output = 'imageg原创 2016-08-15 22:48:25 · 775 阅读 · 0 评论 -
关于php安全的几个问题
1、SQL注入SQL注入是一种恶意攻击,用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行。还有一种是通过system()或exec()命令注入的,它具有相同的SQL注入机制,但只针对shell命令。$username = $_POST['username'];$query = "select * from auth where username = '".$usernam转载 2016-09-08 21:30:21 · 454 阅读 · 0 评论 -
php 源码简单加密的几种方法
第一种:利用base64 + 压缩 加密。 加密函数如下:function encode_file_contents($filename) { $type=strtolower(substr(strrchr($filename,'.'),1)); if ('php' == $type && is_file($filename) && is_writable($f原创 2016-11-04 19:13:14 · 14007 阅读 · 1 评论 -
php的ts和nts选择
关于php的ts和nts ,你了解多少? 1. 简介ts(Thread Safety)即线程安全,多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染php以ISAPI方式加载的时候选择这个版本.,php以ISAPI方式加载的时候选择这个版本. nts(No原创 2016-11-08 20:31:42 · 21860 阅读 · 1 评论 -
php设计模式之一__装饰者模式
装饰者模式1. 功能动态将功能附加到对象上,对于功能的扩展,比继承更灵活,有弹性。2. 结构图3. 举例说明 场景:某咖啡厅做了一个点咖啡系统,不同口味的咖啡价格不同,但某天,做咖啡的原料,例如牛奶、糖的价格上涨了,此时,如果按照继承的方式来设计各个咖啡类,那么咖啡的价格计算就比较麻烦了,需要修改每个类的价格,然后重新计算。这种设计方式,类的数量会爆炸式增长,而原创 2016-12-24 15:27:08 · 345 阅读 · 0 评论 -
php设计模式之二__单例模式
单例模式(职责模式/单态模式)1. 特点:在程序中创建一个单一功能的访问点,即实例化出的对象是唯一的,常用于数据库的连接对象,windows的任务管理器,回收站,应用程序的日志,网站的计数器(实现同步)等。2. 关键要素(三私一公)1> 私有化构造函数,__clone函数,实际操作对象(eg:数据库操作对象);2>公开静态成员方法(创建类的对象)3. 类的结构图4.原创 2016-12-24 17:11:40 · 323 阅读 · 0 评论 -
php设计模式之三__工厂模式
工厂模式:1. 特点:工厂模式其实是一种类,为您提供一些创建对象的方法,通过该工厂可以,方便的创建不同的对象,不用去new,如果需要更改创建对象的类型,直接修改该工厂类即可,很好的遵循了开闭原则及单一责任原则等。2. 分类:根据抽象程度不同,分为,简单工厂模式、工厂方法模式、抽象工厂模式。 1)简单工厂模式(静态工厂方法模式)a.类图b.原创 2016-12-25 21:50:59 · 278 阅读 · 0 评论 -
php设计模式之四__观察者模式
观察者模式1.定义定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使他们能够自动更新自己。2. UML图3.代码示例:<?php/*** 观察者模式* @package design pattern*//*** 抽象主题角色*/interface Subject { /**原创 2016-12-28 21:42:53 · 306 阅读 · 0 评论 -
php设计模式之五__适配器模式
适配器模式1.定义:将一个类的接口转换成客户希望的另外一个接口,使得原来由于接口不兼容而不能一起工作的类,可以一起工作了。通常分为类适配器和对象适配器两种。2.UML图3.代码示例:<?php//适配器模式(对象适配【组合关系】)//通用接口interface Target{ public function request();//普通请求的接口}//适配原创 2016-12-29 19:15:14 · 287 阅读 · 0 评论 -
php邮件发送-phpmailer
提供两种利用phpmailer发送邮件的方法:准备:配置好163或者qq的smtp/imap服务(具体怎么配置,找度娘),phpmailer的两个类(phpmailer、smtp)(自己下载)。第一种: 网易转发header("content-type:text/html;charset=utf-8");ini_set("magic_quotes_runtime",0);ini_s原创 2016-09-22 22:59:52 · 666 阅读 · 0 评论 -
利用反射类定位php的函数定义的物理位置
当遇到一堆,过程化开发的项目,例如destoon之流,一坨一坨的函数,而且么有注释,那你就苦了,想找到一个函数定义的文件位置,除了编辑器自带的jumpto 【有时还不太准确】功能外,自己封装一个func_dump()函数,查看定义位置及函数信息也是一个不错的选择。代码:test.php文件:<?phpclass b { public function f() { }原创 2016-09-05 22:16:31 · 1631 阅读 · 0 评论 -
移除utf8+BOM格式的html文件头有一行空格的问题
最近在改模板时,发现页面最开头地方多了一行空白行,真是苦撒老夫,查看源码出现,这是什么鬼?? 究其原因,是文件格式的问题,保存时一不小心保存为了utf8+bom格式了,什么事bom:这种编码方式一般会在windows操作系统中出现,比如WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0x原创 2016-09-05 22:03:18 · 1691 阅读 · 0 评论 -
php--多维数组排序函数array_multisort
php之array_multisort 理解原创 2016-08-06 19:52:39 · 915 阅读 · 0 评论 -
php 数据类型转换 实例
近日在新浪面试遇到的一个题:如下图:运算优先级+短路运算+自增运算布尔类型做数值运算是,结果仍是boolean。原创 2016-08-07 22:43:57 · 442 阅读 · 5 评论 -
php中一个神奇的函数extract
看源码是遇到的一个php函数,比较神器!常用于:将 wddx_deserialize() 返回的结合数组中的内容导入到符号表变量中去。测试代码,用法如下:echo ''; $host = 'lyf3312'; $arr = [ 'host' => 'www.g.cn', 'uname' => 'root', 'pwd' =>'root', 'lyf3312@16原创 2016-08-19 23:31:26 · 3653 阅读 · 0 评论 -
php中的filesize函数使用细节
问题:大家有没有遇到过,使用filesize函数计算文件大小时,报错的情况:E_WARNING 级的错误,错误类似于 file stat...;即,文件状态不正确啥的,原因:filesize函数不能计算中文字符类型[gbk编码]文件名的文件大小,或者大于2G的文件大小解决方案:在计算前用icon函数对中文字符进行转码为utf-8,大文件可以使用sprintf("%u", filesiz原创 2016-08-23 21:34:16 · 5207 阅读 · 0 评论 -
php.ini 中配置项的设置
php.ini的配置项配置:第一种情况:直接在php.ini中修改,重启apache即可生效。第二种情况:无权操作服务器,使用ini_set()函数,在脚本中配置。第三种情况: 无权操作服务器,在网站目录下的.htaccess中配置。此时,就有一个指令[配置项]配置的作用域问题,PHP中的每个指令都有自己的作用域,指令只能在其作用域中修改,不是任何地方都能修改配置指令的。php原创 2016-08-23 21:36:34 · 535 阅读 · 0 评论 -
php文件上传时,文件大小限制问题
在默认情况下,php.ini 中对上传文件和post方式提交的数据大小是有限制的,其中,post的最大数据是2M,而上传文件的最大是8M; 但实际情况中上传的文件远远大于8M,这时就需要修改php.ini的配置了,两种方式,第一种: 在有权修改服务器配置时,直接修改php.ini重启apache,搞定,【通常post的配置比upload大一些】第二张: 无权限操作服务器,在网站目录中添原创 2016-08-23 21:46:41 · 573 阅读 · 0 评论 -
时间、日期格式化技巧
实际应用中,经常需要,2016-09-09 这种格式的字符串日期格式:转换方式:1. 在生产日期格式时,在个位数字前补零,例如一些日期的js插件。2. 在拿到数据后,后台统一处理。后台格式化处理:函数: sprintf(数据格式,数据);数据格式:%% - 返回百分比符号%b - 二进制数%c - 依照 ASCII 值的字符%d原创 2016-09-04 11:59:18 · 626 阅读 · 0 评论 -
PHP代码打包---phar
php中的phar类似于java中的打包文件jar,即将一个文件夹中的一类文件压缩。功能:Phar可以将一组PHP文件进行打包,还可以创建默认执行的stub(或者叫做 bootstraploader)。前提: 将php.ini中phar.readonly 设置为0/false;创建过程: user目录下有3个文件,其中test.php是默认入口文件。user.class.p原创 2016-08-12 23:30:54 · 6109 阅读 · 0 评论 -
PHP中的静态方法和非静态方法调用方式再解
之前对静态方法和非静态方法的理解如下,比较笼统:1. 静态方法中不能调用非静态方法2. 非静态方法的调用的方式为:$obj->methodName();今天在偶然测试时发现那样说并不准确,更正如下:1.非静态方法[方法中不含$this字眼]的调用方式有self/className::methodName()和$obj->methodName();但非静态属性是用cl原创 2017-03-02 17:03:36 · 9206 阅读 · 0 评论