【浅析php原型模式】教程文章相关的互联网学习教程文章

浅析PHP文件下载原理【图】

1、php下载原理图2、文件下载源码:代码如下: <?php $file_name="哈哈.jpg";//需要下载的文件 $file_name=iconv("utf-8","gb2312","$file_name"); $fp=fopen($file_name,"r+");//下载文件必须先要将文件打开,写入内存 if(!file_exists($file_name)){//判断文件是否存在 echo "文件不存在"; exit(); } $file_size=filesize("a.jpg");//判断文件大小 //返回的文件 Header("Content-type: application/octet-stream"); //按照...

浅析php单例模式

本系列文章来总结一下设计模式在PHP中的应用,这是第一篇创建型模式之单例模式。 一、设计模式简介 首先我们来认识一下什么是设计模式: 设计模式是一套被反复使用、容易被他人理解的、可靠的代码设计经验的总结。 设计模式不是Java的专利,我们用面向对象的方法在PHP里也能很好的使用23种设计模式。 那么我们常说的架构、框架和设计模式有什么关系呢? 架构是一套体系结构,是项目的整体解决方案;框架是可供复用的半成品软件,是...

浅析php工厂模式

本系列文章来总结一下设计模式在PHP中的应用,这是第二篇创建型模式之工厂模式。 设计模式的一般介绍在第一篇文章讲了,这里就不重复。 工厂模式实现:定义一个用于创建对象的接口,让子类决定实例化哪一个类。 应用场景:众多子类并且会扩充、创建方法比较复杂。 工厂模式分为三种:简单工厂、工厂方法、抽象工厂 , 三种工厂的区别是,抽象工厂由多条产品线,而工厂方法只有一条产品线,是抽象工厂的简化。而工厂方法和简单工厂相...

浅析php创建者模式

创建者模式: 在创建者模式中,客户端不再负责对象的创建与组装,而是把这个对象创建的责任交给其具体的创建者类,把组装的责任交给组装类,客户端支付对对象的调用,从而明确了各个类的职责。 应用场景:创建非常复杂,分步骤组装起来。代码如下: <?php /** * 创建者模式 */ //购物车 class ShoppingCart { //选中的商品 private $_goods = array(); //使用的优惠券 private $_tickets = array(); pub...

浅析php原型模式

原型模式: 用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。 应用场景: 类的资源非常多、性能和安全要求,一般和工厂方法结合使用。代码如下: <?php /** * 原型模式 */ //声明一个克隆自身的接口 interface Prototype { function copy(); } //产品要实现克隆自身的操作 class Student implements Prototype { //简单起见,这里没有使用get set public $school; public $major; ...

浅析php适配器模式(Adapter)

前几篇介绍了设计模式的特性并且详细讲解了4种创建型模式,创建型模式是负责如何产生对象实例的,接下来讲讲结构型模式。 一、什么是结构型模式? 结构型模式是解析类和对象的内部结构和外部组合,通过优化程序结构解决模块之间的耦合问题。 二、结构型模式的种类:适配器模式 桥接模式 装饰模式 组合模式 外观模式 享元模式 代理模式 1、 适配器模式(Adapter) 将一个类的接口转换成客户希望的另一个接口,适配器模式使得原本的由...

浅析PHP中strlen和mb_strlen的区别

在PHP中,strlen与mb_strlen是求字符串长度的函数,但是对于一些初学者来说,如果不看手册,也许不太清楚其中的区别。 下面通过例子,讲解这两者之间的区别。 先看例子: <?php //测试时文件的编码方式要是UTF8 $str=中文a字1符; echo strlen($str).<br>;//14 echo mb_strlen($str,utf8).<br>;//6 echo mb_strlen($str,gbk).<br>;//8 echo mb_strlen($str,gb2312).<br>;//10 ?> 结果分析:在strlen计算时,对待一个UTF8的中...

浅析get与post的一些特殊情况

最近在做一些有关文件上传等的工作,途中遇到了以下问题: 将表单以post方式提交给一个有参数的url(如:res.php?param=aaa),这样的得到的结果将会是什么呢? 下面就从几个例子将有关get与post的相关内容进行测试,首先看一下最简单的 <html> <body> <?php echo $_GET [param]; ?><form action="get_post_test.php?param=aaa" method="get"><input type="text" name="param" value="bbb" /> <input type="submit" value="submit"></form>...

浅析ThinkPHP的模板输出功能

ThinkPHP中的每一个xxxAction.class.php文件就代表着一个应用模块,这个Action中的每一个方法(function)代表着一个操作,操作可以分为有输出到模板的操作和只具执行不需要输出的操作。 打开Myapp/Lib/Action/IndexAction.class.php文件,我们可以看到里面的基础代码: class IndexAction extends Action{ public function index(){ } }对此,需要指出一下几点: 1.在ThinkPHP的开发中,要增加一个应用模块,就要在Action文件夹里建...

PHP中strlen()和mb_strlen()的区别浅析

在php中常见的计算字符串长度的函数有:strlen和mb_strlen.当字符全是英文字符的时候,两者是一样。这里主要比较一下,中英文混排的时候,两个计算结果。 先来看一个例子:代码如下: <?php //测试时文件的编码方式要是UTF8 $str=中文a字1符; echo strlen($str).<br>;//14 echo mb_strlen($str,utf8).<br>;//6 echo mb_strlen($str,gbk).<br>;//8 echo mb_strlen($str,gb2312).<br>;//10 ?>结果分析:在strlen计算时,...

ThinkPHP中U方法的使用浅析

thinkPHP中U方法的定义规则如下(方括号内参数根据实际应用决定): U([项目://][路由@][分组名-模块/]操作? 参数1=值1[&参数N=值N])或者用数组的方式传入参数:U([项目://][路由@][分组名-模块/]操作,array(参数1=>值1 [,参数N=>值N])) 如果不定义项目和模块的话 就表示当前项目和模块名称,下面是一些简单的例子: U(Myapp://User/add) // 生成Myapp项目的User模块的add操作的URL地址U(Blog/read?id=1) // 生成Blog模块的...

浅析ThinkPHP中execute和query方法的区别

初学ThinkPHP的时候,很多人都对execute()和query()方法的区别搞不懂,本文就此浅析二者的区别。大家都知道,ThinkPHP中execute()和query()方法都可以在参数里直接输入SQL语句。但是不同的是execute()通常用来执行insert或update等SQL语句,而query常用来执行select等语句。 execute()方法将返回影响的记录数,如果执行SQL的select语句的话,返回的结果将是表的总记录数: 代码如下:$model = M( "MyTable" );$result = $model ->ex...

浅析PHP微信支付通知的处理方式

通知机制的实现,官方只有文档没有demo代码,对没搞过的人来说,需要花大量时间来做测试。 从文档上说的来看,微信每次通知过来的数据,结构比较复杂,是一个多段数据,除了要取出POST数据外,还要取其它的数据。 这里首先涉及到一个关于php://input与$_POST取值的问题,简单列几点如下:代码如下: 1,Content- Type取值为application/x-www-form-urlencoded时,php会将http请求body相应数据会填入到数组$_POST,填入到$_POST数...

浅析echo(),print(),print_r(),return之间的区别

PHP中echo(),print(),print_r(),return的区别? 往往有很多新手和不太使用print()的朋友就答不好这个问题 从而面试失败。 那么究竟她们有什么区别呢?下面我们来看看 答案:echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)print() 只能打印出简单类型变量的值(如int,string)print_r() 可以打印出复杂类型变量的值(如数组,对象)return 语句 从当前函数退出,并从那个函数返回一个值。 echo 输...

珊瑚虫IP库浅析

这不是什么新鲜事情了,很早之前就已经有人做出来了。就是使用PHP操作纯真IP库或珊瑚虫IP库,根据来访者的IP得到所在的物理位置。 我先帖出代码。然后再慢慢一步步浅析出来。希望对想了解这一块的朋友们有帮助。 Only For PHP5的代码。会继续优化代码的。class IpLocation{ private $fp; private $wrydat; private $wrydat_version; private $ipnumber; private $firstip; private $lastip; private $ip_rang...