随笔分类 -  PHP

摘要:PHP实现多web服务器共享SESSION数据(session数据写入mysql数据库) 一、问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即 一套用户名、密码在整个网站的各个模块中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统 一接口对用户数据进行访问即可。但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这就是一次登录,全 部通行的问题,映射到技术上,其实就是各个服务器之间如何实现共享 .. 阅读全文
posted @ 2013-12-30 13:17 Otgs 阅读(528) 评论(0) 推荐(0)
摘要:在Windows上PHP默认的Session服务端文件存放在C:\WINDOWS\Temp下,如果说并发访问很大或者 session建立太多,目录下就会存在大量类似sess_xxxxxx的session文件,同一个目录下文件数过多会导致性能下降,并且可能导致受到 攻击最终出现文件系统错误。针对这样的情况,PHP本身体提供了比较好的解决办法。打开 php.ini ,查找Session设置部分中以下一项: session.save_path = “N;/path” session.save_path = “C:\Temp” #此处以你自己设定的路径为准这项设置提供给我们可以给session... 阅读全文
posted @ 2013-12-30 11:20 Otgs 阅读(2440) 评论(0) 推荐(0)
摘要:今天编写数据库备份类时,在运行的过程中,出现了内存不足的问题,提示:Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 24904250 bytes),然后上网搜索下,网上给了几种方法。 对于主机提示内存不足的解决办法 一、修改php.ini(保举) memory_limit = 12M 2、在程序里面添加如下语句 ini_set(''memory_limit'', ''12M''); 3、在根目录建立 .htaccess文 阅读全文
posted @ 2013-12-25 15:09 Otgs 阅读(488) 评论(0) 推荐(0)
摘要:1、Table方法:定义要操作的数据表名称,可以动态改变当前操作的数据表名称,需要写数据表的全名,包含前缀,可以使用别名,例如:$Model->Table('think_user user')->where('status>1')->select();$Model->table('think_blog blog,think_type type')->where('blog.typeid=type.id')->field('blog.id as id,blog.title,blog. 阅读全文
posted @ 2013-12-20 15:27 Otgs 阅读(4199) 评论(0) 推荐(0)
摘要:PHPMailer是一个用于发送电子邮件的PHP函数包。 第一,需要下载PHPMailer文件包phpmailer. http://phpmailer.sourceforge.net/ 第二,确认你的服务器系统已经支持socket ,通过phpinfo();查看是否支持sockets(socket 是属于PHP扩展部分),如果显现为 “enabled”,那就是支持了。 第三,把文件解压到你的web服务器目录下,调用类就可以了. 首先包含class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体请见下面的示例代码: require("phpmailer/clas 阅读全文
posted @ 2013-12-20 15:06 Otgs 阅读(320) 评论(0) 推荐(0)
摘要:首先到数据库取数据,放到一个数组,然后把数据转化为一个树型状的数组,最后把这个树型状的数组转为html代码。也可以将第二步和第三步合为一步。详细如下:1。数据库设计:脚本如下:CREATETABLE`bg_cate`(`cate_Id`int(30)unsignedNOTNULLAUTO_INCREMENT,`cate_ParentId`int(30)unsignedDEFAULT'0',`cate_Name`varchar(100)NOTNULL,`cate_Intro`varchar(500)DEFAULTNULL,`cate_Order`int(30)unsignedDE 阅读全文
posted @ 2013-12-20 15:03 Otgs 阅读(562) 评论(0) 推荐(0)
摘要:外观模式:外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;外观模式又称为门面模式,它是一种对象结构型模式。模式结构:外观模式就是让client客户端以一种简单的方式来调用比较复杂的系统来完成一件事情;目的:1、为一个复杂子系统提供简单的接口2、减少客户端和子系统的耦合代码实现:示例1: 1 /** 2 3 * 外观模式 4 5 * 通过在必须的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了来自调用对象的复杂性 6 7 */ 8 9 ... 阅读全文
posted @ 2013-12-20 14:41 Otgs 阅读(251) 评论(0) 推荐(0)
摘要:当一个网站发展为知名网站的时候(如新浪,腾讯,网易,雅虎),网站的访问量通常都会非常大,如果使用虚拟主机的话,网站就会因为访问量过大而引起 服务器性能问题,这是很多人的烦恼,有人使用取消RSS等错误的方法来解决问题,显然是下错药,那么对于大流量的网站,需要采用什么样的方法来解决访问量 问题? 解决方法参考如下:首先,确认服务器硬件是否足够支持当前的流量。普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。其次,优化数据库访问。服务器的负载过大,一个重要的原因是CPU负荷过大,降低服 阅读全文
posted @ 2013-12-20 14:38 Otgs 阅读(934) 评论(0) 推荐(1)
摘要:单一入口概述单一入口的应用程序就是说用一个文件处理所有的HTTP请求,例如不管是列表页还是文章页,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口。打个比方,大家都要上WC,都是男生进一个门,女生进一个门,这两个门就是WC的两个入口。而现在去一个公园里面的WC,外面还有一个门,不管男女都从最外面的门进入,交了钱以后才进入里面的男厕所门或女厕所门,而这个最外面的门就是这个WC的单一入口。实现方式很简单,可以在访问index.php时限上一个特定的参数。例如index.php?action=list就是访问列表页,而index.php?action=single则访问文章 阅读全文
posted @ 2013-12-20 14:37 Otgs 阅读(368) 评论(0) 推荐(0)
摘要:前 些日子开始着真正的去了解下设计模式,开始么,简单地从单例模式开始,当然网上看了一些资料,单例模式比较好理解,看看介绍,然后看看代码基本也就能够理 解了,设计模式这些的花点心思基本的是能够理解的,当然要想很好的运用到项目上也是需要一定的实践,不能只是知道了解,或者说的是很厉害很懂的,一到要实 际操作就不行了,废话就不多说了,PHP战线上的同志们都加油吧;单例模式(职责模式):简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务;单例类:1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其 阅读全文
posted @ 2013-12-20 14:35 Otgs 阅读(169) 评论(0) 推荐(0)
摘要:php设计模式-策略模式1.概念:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。2.组成部分:a.抽象策略角色:策略类,通常由一个接口或者抽象类实现 b.具体策略角色:包装了相关的算法和行为。c.环境角色:持有一个策略类的引用,最终给客户端调用。3.解决的问题:a.电商中运费的处理 网站邀请注册 等处理4.结构图 1 class Activity { 2 private $strategy; //用于保存策略实例 3 public $strategyName = 'DEFAULTAc... 阅读全文
posted @ 2013-12-20 14:33 Otgs 阅读(225) 评论(0) 推荐(0)
摘要:/\*\* *3.1php设计模式-观测者模式 *3.1.1概念:其实观察者模式这是一种较为容易去理解的一种模式吧,它是一种事件系统,意味着 * 这一模式允许某个类观察另一个类的状态,当被观察的类状态发生改变的时候,观察类 * 可以收到通知并且做出相应的动作;观察者模式为您提供了避免组件之间紧密耦合的另一种方法 *3.1.2关键点: * 1.被观察者->追加观察者;->一处观察者;->满足条件时通知观察者;->观察条件 * 2.观察者 ->接受观察方法 *3.1.3缺点: *3.1.4观察者模式在P... 阅读全文
posted @ 2013-12-20 14:31 Otgs 阅读(175) 评论(0) 推荐(0)
摘要:建造者模式:将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示的设计模式;目的:消除其他对象复杂的创建过程结构图:优点:建造者模式可以很好的将一个对象的实现与相关的“业务”逻辑分离开来,从而可以在不改变事件逻辑的前提下,使增加(或改变)实现变得非常容易。缺点:建造者接口的修改会导致所有执行类的修改。以下情况应当使用建造者模式: 1、需要生成的产品对象有复杂的内部结构。 2、需要生成的产品对象的属性相互依赖,建造者模式可以强迫生成顺序。 3、在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到。使用建造者模式主要有以下效果: 1、建造者模式的使 阅读全文
posted @ 2013-12-20 14:28 Otgs 阅读(217) 评论(0) 推荐(0)
摘要:工厂模式:由工厂类根据参数来决定创建出哪一种产品类的实例;工厂类是指包含了一个专门用来创建其他对象的方法的类。所谓按需分配,传入参数进行选择,返回具体的类。工厂模式的最主要作用就是对象创建的封装、简化创建对象操作。简单的说,就是调用工厂类的一个方法(传入参数)来得到需要的类;代码实现:示例1(最基本的工厂类): 1 class MyObject { 2 3 4 5 public function __construct(){} 6 7 8 9 public function test(){10 11 return '测试';12 13 }14 15 16 17 }18 19.. 阅读全文
posted @ 2013-12-20 14:07 Otgs 阅读(218) 评论(0) 推荐(0)
摘要:工厂类是指包含一个专门用来创建其他对象的方法的类,工厂类在多态性编程实践中是至关重要的,它允许动态的替换类,修改配置,通常会使应用程序更加灵活,熟练掌握工厂模式高级PHP开发人员是很重要的。 工厂模式通常用来返回符合类似接口的不同的类,工厂的一种常见用法就是创建多态的提供者,从而允许我们基于应用程序逻辑或者配置设置来决定应实例化哪一个类,例如,可以使用这样的提供者来扩展一个类,而不需要重构应用程序的其他部分,从而使用新的扩展后的名称 。 通常,工厂模式有一个关键的构造,根据一般原则命名为Factory的静态方法,然而这只是一种原则,工厂方法可以任意命名,这个静态还可以接受任意数据的参数,必须返 阅读全文
posted @ 2013-12-20 13:55 Otgs 阅读(459) 评论(0) 推荐(0)
摘要:最近学习Jquery Ajax部分,通过简单例子,比较了下post,get方法的不同HTML部分 1 2 3 jQuery Ajax 实例演示 4 5 6 66 67 68 69 输入姓名: 70 输入年龄: 71 输入性别: 72 输入工作: 73 74 提交 75 POST提交 76 GET提交 77 78 View Code PHP部分 1 encode($phparr); 15 } 16 } 17 ?> 阅读全文
posted @ 2013-12-15 11:05 Otgs 阅读(444) 评论(0) 推荐(0)
摘要:$pattern_img='@(^(http://)?)*([a-zA-Z0-9_\.\/\-]+)(\.jpg|gif|bmp|png)$@i';$shequs=array();while(count($shequs)$value){ $shequ_imgs=$value[8]; preg_match_all('@((http://)?)*([a-zA-Z0-9_\.\/\-]+)\.(jpg|gif|bmp|png)@i', $shequ_imgs, $imgs); if($imgs[4][0]=="gif" || $imgs[4][0] 阅读全文
posted @ 2013-12-14 11:28 Otgs 阅读(264) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-10-28 16:55 Otgs 阅读(268) 评论(0) 推荐(0)
摘要:ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去 $interval=60*30;// 每隔半小时运行 do{ //这里是你要执行的代码 添加备份php或者还原的php的脚本, sleep($interval);// 等待5分钟 }while(true); 一、备份数据库并下载到本地【db_backup.php】 Php代码 ".$tmpFile); $file=fopen($tmpFile,"r");//打开文件 echo 阅读全文
posted @ 2013-10-28 16:39 Otgs 阅读(580) 评论(0) 推荐(0)
摘要:PHP的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, php只能被用户触发, 被调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理那么, 如果需要用PHP定时执行某些任务的话, 可以有以下俩个方法:Linux下crontab, windows下计划任务找个被频繁调用的网页, 里面加上一个检测代码set_time_limit(0);ignore_user_abort(true);死循环第一个方法是最常见的, 如果php服务器上没有权限去crontab, 也可以找一个自己的机器定期crontab去请求服务器第二种方法, 阅读全文
posted @ 2013-10-28 16:38 Otgs 阅读(522) 评论(0) 推荐(0)