
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 · 867 阅读 · 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 · 498 阅读 · 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 · 14174 阅读 · 1 评论 -
php的ts和nts选择
关于php的ts和nts ,你了解多少? 1. 简介 ts(Thread Safety)即线程安全,多线程访问时,采用了加锁机制,当一个线程访问该类的某个数据时,进行保护,其他 线程不能进行访问直到该线程读取完,其他线程才可使用。不会出现数据不一致或者数据污染php以ISAPI方 式加载的时候选择这个版本.,php以ISAPI方式加载的时候选择这个版本. nts(No原创 2016-11-08 20:31:42 · 22034 阅读 · 1 评论 -
php设计模式之一__装饰者模式
装饰者模式 1. 功能 动态将功能附加到对象上,对于功能的扩展,比继承更灵活,有弹性。 2. 结构图 3. 举例说明 场景:某咖啡厅做了一个点咖啡系统,不同口味的咖啡价格不同,但某天,做咖啡的原料,例如牛奶、糖的价格上涨了,此时,如果按照继承的方式来设计各个咖啡类,那么咖啡的价格计算就比较麻烦了,需要修改每个类的价格,然后重新计算。这种设计方式,类的数量会爆炸式增长,而原创 2016-12-24 15:27:08 · 397 阅读 · 0 评论 -
php设计模式之二__单例模式
单例模式(职责模式/单态模式) 1. 特点: 在程序中创建一个单一功能的访问点,即实例化出的对象是唯一的,常用于数据库的连接对象,windows的任务管理器,回收站,应用程序的日志,网站的计数器(实现同步)等。 2. 关键要素(三私一公) 1> 私有化构造函数,__clone函数,实际操作对象(eg:数据库操作对象); 2>公开静态成员方法(创建类的对象) 3. 类的结构图 4.原创 2016-12-24 17:11:40 · 369 阅读 · 0 评论 -
php设计模式之三__工厂模式
工厂模式: 1. 特点: 工厂模式其实是一种类,为您提供一些创建对象的方法,通过该工厂可以,方便的创建不同的对象,不用去 new,如果需要更改创建对象的类型,直接修改该工厂类即可,很好的遵循了开闭原则及单一责任原则等。 2. 分类: 根据抽象程度不同,分为,简单工厂模式、工厂方法模式、抽象工厂模式。 1)简单工厂模式(静态工厂方法模式) a.类图 b.原创 2016-12-25 21:50:59 · 326 阅读 · 0 评论 -
php设计模式之四__观察者模式
观察者模式 1.定义 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使他们能够自动更新自己。 2. UML图 3.代码示例: <?php /** * 观察者模式 * @package design pattern */ /** * 抽象主题角色 */ interface Subject { /**原创 2016-12-28 21:42:53 · 365 阅读 · 0 评论 -
php设计模式之五__适配器模式
适配器模式 1.定义: 将一个类的接口转换成客户希望的另外一个接口,使得原来由于接口不兼容而不能一起工作的类,可以一起工作了。通常分为类适配器和对象适配器两种。 2.UML图 3.代码示例: <?php //适配器模式(对象适配【组合关系】) //通用接口 interface Target{ public function request();//普通请求的接口 } //适配原创 2016-12-29 19:15:14 · 330 阅读 · 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 · 736 阅读 · 0 评论 -
利用反射类定位php的函数定义的物理位置
当遇到一堆,过程化开发的项目,例如destoon之流,一坨一坨的函数,而且么有注释,那你就苦了,想找到一个函数定义的文件位置,除了编辑器自带的jumpto 【有时还不太准确】功能外,自己封装一个func_dump()函数,查看定义位置及函数信息也是一个不错的选择。 代码: test.php文件: <?php class b { public function f() { }原创 2016-09-05 22:16:31 · 1692 阅读 · 0 评论 -
移除utf8+BOM格式的html文件头有一行空格的问题
最近在改模板时,发现页面最开头地方多了一行空白行,真是苦撒老夫,查看源码出现,这是什么鬼?? 究其原因,是文件格式的问题,保存时一不小心保存为了utf8+bom格式了, 什么事bom: 这种编码方式一般会在windows操作系统中出现,比如WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不 可见的字符(0xEF 0xBB 0x原创 2016-09-05 22:03:18 · 1792 阅读 · 0 评论 -
php--多维数组排序函数array_multisort
php之array_multisort 理解原创 2016-08-06 19:52:39 · 980 阅读 · 0 评论 -
php 数据类型转换 实例
近日在新浪面试遇到的一个题: 如下图:运算优先级+短路运算+自增运算 布尔类型做数值运算是,结果仍是boolean。原创 2016-08-07 22:43:57 · 500 阅读 · 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 · 3739 阅读 · 0 评论 -
php中的filesize函数使用细节
问题:大家有没有遇到过,使用filesize函数计算文件大小时,报错的情况:E_WARNING 级的错误,错误类似于 file stat...;即,文件状态不正确啥的, 原因:filesize函数不能计算中文字符类型[gbk编码]文件名的文件大小,或者大于2G的文件大小 解决方案:在计算前用icon函数对中文字符进行转码为utf-8, 大文件可以使用sprintf("%u", filesiz原创 2016-08-23 21:34:16 · 5301 阅读 · 0 评论 -
php.ini 中配置项的设置
php.ini的配置项配置: 第一种情况:直接在php.ini中修改,重启apache即可生效。 第二种情况:无权操作服务器,使用ini_set()函数,在脚本中配置。 第三种情况: 无权操作服务器,在网站目录下的.htaccess中配置。 此时,就有一个指令[配置项]配置的作用域问题,PHP中的每个指令都有自己的作用域,指令只能在其作用域中修改,不是任何地方都能修改配置指令的。 php原创 2016-08-23 21:36:34 · 596 阅读 · 0 评论 -
php文件上传时,文件大小限制问题
在默认情况下,php.ini 中对上传文件和post方式提交的数据大小是有限制的,其中,post的最大数据是2M,而上传文件的最大是8M; 但实际情况中上传的文件远远大于8M,这时就需要修改php.ini的配置了,两种方式, 第一种: 在有权修改服务器配置时,直接修改php.ini重启apache,搞定,【通常post的配置比upload大一些】 第二张: 无权限操作服务器,在网站目录中添原创 2016-08-23 21:46:41 · 661 阅读 · 0 评论 -
时间、日期格式化技巧
实际应用中,经常需要,2016-09-09 这种格式的字符串日期格式: 转换方式: 1. 在生产日期格式时,在个位数字前补零,例如一些日期的js插件。 2. 在拿到数据后,后台统一处理。 后台格式化处理: 函数: sprintf(数据格式,数据); 数据格式: %% - 返回百分比符号 %b - 二进制数 %c - 依照 ASCII 值的字符 %d原创 2016-09-04 11:59:18 · 712 阅读 · 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 · 6307 阅读 · 0 评论 -
PHP中的静态方法和非静态方法调用方式再解
之前对静态方法和非静态方法的理解如下,比较笼统: 1. 静态方法中不能调用非静态方法 2. 非静态方法的调用的方式为:$obj->methodName(); 今天在偶然测试时发现那样说并不准确,更正如下: 1.非静态方法[方法中不含$this字眼]的调用方式有self/className::methodName()和$obj->methodName(); 但非静态 属性是用cl原创 2017-03-02 17:03:36 · 9293 阅读 · 0 评论