12 2013 档案
摘要:替换使用 | 字符来允许在两个或多个替换选项之间进行选择。例如,可以扩展章节标题正则表达式,以返回比章标题范围更广的匹配项。但是,这并不象您可能认为的那样简单。替换匹配 | 字符任一侧最大的表达式。示例您可能认为,下面的表达式匹配出现在行首和行尾、后面跟一个或两个数字的 Chapter 或 Section:/^Chapter|Section [1-9][0-9]{0,1}$/很遗憾,上面的正则表达式要么匹配行首的单词 Chapter,要么匹配行尾的单词 Section 及跟在其后的任何数字。如果输入字符串是 Chapter 22,那么上面的表达式只匹配单词 Chapter。如果输入字符串是 S
阅读全文
摘要:定位点工作方式定位点提供该能力。定位点使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。下表包含正则表达式定位点以及它们的含义的列表:字符说明^匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与 \n 或 \r 之后的位置匹配。$匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与 \n 或 \r 之前的位置匹配。\b匹配一个字边界,即字与空格间的位置。\B非字边界匹配。不能将限定符与定位点一起使用。由于在紧靠换行
阅读全文
摘要:正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。运算符下表从最高到最低说明了各种正则表达式运算符的优先级顺序:运算符说明\转义符(), (?:), (?=), []括号和中括号*, +, ?, {n}, {n,}, {n,m}限定符^, $, \任何元字符、任何字符定位点和序列|替换字符具有高于替换运算符的优先级,使得“m|food”匹配“m”或“food”。若要匹配“mood”或“food”,请使用括号创建子表达式,从而产生“(m|f)ood”。
阅读全文
摘要:正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”)。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式示例表达式匹配/^\s*$/匹配空行。/\d{2}-\d{5}/验证由两位数字、一个连字符再加 5 位数字组成的 ID 号。/]*)?>[\s\S]*/匹配 HTML 标记。下表包含了元字符的完整列表以及它们在正则表达式上下文中的行为:字符说明\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(”。^匹配输入字符串开始的位置。如果设置了 Re
阅读全文
摘要:自主实现Session功能的类,基于文件方式存储Session数据,测试基本通过,还比较好玩,实际应用没有意义,只不过是学习Session是如何实现的。一般基于文件存储Session数据效率不是很高,毕竟跟磁盘IO是有关系的,如 果需要多台服务器共享数据,可以考虑使用NFS来存储数据,如果需要比较快的速度,可以考虑使用共享内存(shm)来保存数据,直接把Session数据 存储路径指定为/dev/shm,这样磁盘IO会提高不少,不过shm空间比较小,一般Linux下是60多M,所以不可能保存太多数据。//=======================================// 程序:
阅读全文
摘要:自主实现Session功能的类,基于文件方式存储Session数据,测试基本通过,还比较好玩,实际应用没有意义,只不过是学习Session是如何实现的。使用基于文件的Session存取瓶颈可能都是在磁盘IO操作上,所以对付小数据 量的Session没有问题,但是如果碰到大数据量的Sesstion,那么可能无法胜任,现在利用Memcache来保存Session数据,直接通过 内存的方式,效率自然能够提高不少,并且如果结合PHP的Memcache扩展,能够支持分布式的Memcache服务器,那么这个性能就能够提到更高, 负载更多更复杂的应用。说明:以下代码基于Memcache来保存Session数
阅读全文
摘要:PHP实现多web服务器共享SESSION数据(session数据写入mysql数据库) 一、问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即 一套用户名、密码在整个网站的各个模块中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统 一接口对用户数据进行访问即可。但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块时,仍然需要重新登录,这就是一次登录,全 部通行的问题,映射到技术上,其实就是各个服务器之间如何实现共享 ..
阅读全文
摘要:在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...
阅读全文
摘要:1. MySQL 获得当前时间戳函数:current_timestamp, current_timestamp()mysql> select current_timestamp,current_timestamp();+---------------------+---------------------+| current_timestamp | current_timestamp() |+---------------------+---------------------+| 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |+---------
阅读全文
摘要:今天编写数据库备份类时,在运行的过程中,出现了内存不足的问题,提示: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文
阅读全文
摘要:项目需求访问网站页面时,有的页面需要授权才能访问,这时候就会要求用户登录,跳转到登录页面login.php,怎么实现登录后返回到刚才访问的页面。解决思路1:在跳转到登录页面之前要将当前访问页面的url保存到cookie里面,登录验证授权通过后,从cookie中取出这个url值,跳转到该url指定的页面。具体实现我现在的程序是基于ThinkPHP框架的,我们会有一个父类控制器,下面我就把这个设置cookie的代码加到这个BaseAction里面的_initialize()函数中,这样程序就大大简化工作量了。$refer = 'http://' . $_SERVER ['H
阅读全文
摘要: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.
阅读全文
摘要:(2)在Core.php和Notify.php文件中添加了去掉TP的URL中的'_URL_'参数的函数。这个是必须的,否则会导致验证失败问题。具体改变为:function paraFilter改为function paraFilter($para) {$para_filter = array();while (list ($key, $val) = each ($para)) {if($key == "sign" || $key == "sign_type" || $key == '_URL_' || $val == &q
阅读全文
摘要:最近做系统,需要实现在线支付功能,毫不犹豫,选择的是支付宝的接口支付功能。这里我用的是即时到帐的接口,具体实现的步骤如下:一、下载支付宝接口包下载地址:https://b.alipay.com/order/productDetail.htm?productId=2012111200373124&tabId=4#ps-tabinfo-hash具体如何下载,我就不在罗嗦了~~二、重新整理接口包文件,这一步应该算是比较关键的(个人认为)下载下来的接口包文件有很多语言的源码,我们选择 create_direct_pay_by_user-PHP-UTF-8 这个名称的接口文件。里面包括如下文件:
阅读全文
摘要:PHPMailer是一个用于发送电子邮件的PHP函数包。 第一,需要下载PHPMailer文件包phpmailer. http://phpmailer.sourceforge.net/ 第二,确认你的服务器系统已经支持socket ,通过phpinfo();查看是否支持sockets(socket 是属于PHP扩展部分),如果显现为 “enabled”,那就是支持了。 第三,把文件解压到你的web服务器目录下,调用类就可以了. 首先包含class.phpmailer.php,然后创建对象,设置参数,调用成员函数。具体请见下面的示例代码: require("phpmailer/clas
阅读全文
摘要:首先到数据库取数据,放到一个数组,然后把数据转化为一个树型状的数组,最后把这个树型状的数组转为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
阅读全文
摘要:外观模式:外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用;外观模式又称为门面模式,它是一种对象结构型模式。模式结构:外观模式就是让client客户端以一种简单的方式来调用比较复杂的系统来完成一件事情;目的:1、为一个复杂子系统提供简单的接口2、减少客户端和子系统的耦合代码实现:示例1: 1 /** 2 3 * 外观模式 4 5 * 通过在必须的逻辑和方法的集合前创建简单的外观接口,外观设计模式隐藏了来自调用对象的复杂性 6 7 */ 8 9 ...
阅读全文
摘要:当一个网站发展为知名网站的时候(如新浪,腾讯,网易,雅虎),网站的访问量通常都会非常大,如果使用虚拟主机的话,网站就会因为访问量过大而引起 服务器性能问题,这是很多人的烦恼,有人使用取消RSS等错误的方法来解决问题,显然是下错药,那么对于大流量的网站,需要采用什么样的方法来解决访问量 问题? 解决方法参考如下:首先,确认服务器硬件是否足够支持当前的流量。普通的P4服务器一般最多能支持每天10万独立IP,如果访问量比这个还要大,那么必须首先配置一台更高性能的专用服务器才能解决问题,否则怎么优化都不可能彻底解决性能问题。其次,优化数据库访问。服务器的负载过大,一个重要的原因是CPU负荷过大,降低服
阅读全文
摘要:单一入口概述单一入口的应用程序就是说用一个文件处理所有的HTTP请求,例如不管是列表页还是文章页,都是从浏览器访问index.php文件,这个文件就是这个应用程序的单一入口。打个比方,大家都要上WC,都是男生进一个门,女生进一个门,这两个门就是WC的两个入口。而现在去一个公园里面的WC,外面还有一个门,不管男女都从最外面的门进入,交了钱以后才进入里面的男厕所门或女厕所门,而这个最外面的门就是这个WC的单一入口。实现方式很简单,可以在访问index.php时限上一个特定的参数。例如index.php?action=list就是访问列表页,而index.php?action=single则访问文章
阅读全文
摘要:前 些日子开始着真正的去了解下设计模式,开始么,简单地从单例模式开始,当然网上看了一些资料,单例模式比较好理解,看看介绍,然后看看代码基本也就能够理 解了,设计模式这些的花点心思基本的是能够理解的,当然要想很好的运用到项目上也是需要一定的实践,不能只是知道了解,或者说的是很厉害很懂的,一到要实 际操作就不行了,废话就不多说了,PHP战线上的同志们都加油吧;单例模式(职责模式):简单的说,一个对象(在学习设计模式之前,需要比较了解面向对象思想)只负责一个特定的任务;单例类:1、构造函数需要标记为private(访问控制:防止外部代码使用new操作符创建对象),单例类不能在其他类中实例化,只能被其
阅读全文
摘要:php设计模式-策略模式1.概念:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。2.组成部分:a.抽象策略角色:策略类,通常由一个接口或者抽象类实现 b.具体策略角色:包装了相关的算法和行为。c.环境角色:持有一个策略类的引用,最终给客户端调用。3.解决的问题:a.电商中运费的处理 网站邀请注册 等处理4.结构图 1 class Activity { 2 private $strategy; //用于保存策略实例 3 public $strategyName = 'DEFAULTAc...
阅读全文
摘要:/\*\* *3.1php设计模式-观测者模式 *3.1.1概念:其实观察者模式这是一种较为容易去理解的一种模式吧,它是一种事件系统,意味着 * 这一模式允许某个类观察另一个类的状态,当被观察的类状态发生改变的时候,观察类 * 可以收到通知并且做出相应的动作;观察者模式为您提供了避免组件之间紧密耦合的另一种方法 *3.1.2关键点: * 1.被观察者->追加观察者;->一处观察者;->满足条件时通知观察者;->观察条件 * 2.观察者 ->接受观察方法 *3.1.3缺点: *3.1.4观察者模式在P...
阅读全文
摘要:建造者模式:将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示的设计模式;目的:消除其他对象复杂的创建过程结构图:优点:建造者模式可以很好的将一个对象的实现与相关的“业务”逻辑分离开来,从而可以在不改变事件逻辑的前提下,使增加(或改变)实现变得非常容易。缺点:建造者接口的修改会导致所有执行类的修改。以下情况应当使用建造者模式: 1、需要生成的产品对象有复杂的内部结构。 2、需要生成的产品对象的属性相互依赖,建造者模式可以强迫生成顺序。 3、在对象创建过程中会使用到系统中的一些其它对象,这些对象在产品对象的创建过程中不易得到。使用建造者模式主要有以下效果: 1、建造者模式的使
阅读全文
摘要:工厂模式:由工厂类根据参数来决定创建出哪一种产品类的实例;工厂类是指包含了一个专门用来创建其他对象的方法的类。所谓按需分配,传入参数进行选择,返回具体的类。工厂模式的最主要作用就是对象创建的封装、简化创建对象操作。简单的说,就是调用工厂类的一个方法(传入参数)来得到需要的类;代码实现:示例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..
阅读全文
摘要:工厂类是指包含一个专门用来创建其他对象的方法的类,工厂类在多态性编程实践中是至关重要的,它允许动态的替换类,修改配置,通常会使应用程序更加灵活,熟练掌握工厂模式高级PHP开发人员是很重要的。 工厂模式通常用来返回符合类似接口的不同的类,工厂的一种常见用法就是创建多态的提供者,从而允许我们基于应用程序逻辑或者配置设置来决定应实例化哪一个类,例如,可以使用这样的提供者来扩展一个类,而不需要重构应用程序的其他部分,从而使用新的扩展后的名称 。 通常,工厂模式有一个关键的构造,根据一般原则命名为Factory的静态方法,然而这只是一种原则,工厂方法可以任意命名,这个静态还可以接受任意数据的参数,必须返
阅读全文
摘要:■ 框架概念 :所谓框架便是网页画面分成几个框窗,同时取得多个 URL。只 要 即可,而所有框架标记 要放在一个总起的 html 档,这个档案只记录了该框架 如何划分,不会显示任何资料,所以不必放入 标记,浏览这框架必须读取这档 案而不是其它框窗的档案。 是用以划分框窗,每一框窗由一个 标 记所标示,必须在 范围中使用。如下例: 此例中 把画面分成左右两相等部分,左便是显示 up2u.html,右边则会显示 me2.html 这档案, 标记所标示的框窗永远是按由上而下、由左至右的次序。 本节与 Composer 教室的【运用框架】大部分相同,只是本节增加了内容及较为...
阅读全文
摘要:文件目录处理函数包80%以上的函数的功能的灵活运用。日期时间函数中的80%以上的函数的功能的灵活运用数学函数库中的100%的内容。网络库中的60%以上的内容,对各个函数的功能比较熟悉。字符串处理函数下的60%以上的内容,特别是各种处理函数。正则表达式函数下的90%以上的内容,特别是各种正则处理一些安全库下的40%以上的内容,如果对于安全没有接触的话根本就不可能掌握PHPXML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。图形图像函数库下的80%以上的内容,特别是一些图像生成和处理MySQL 数据库函数下的90%以上的内容,特别是处理各种数据的函数
阅读全文
摘要:最近学习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 ?>
阅读全文
摘要:$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]
阅读全文
摘要:最近看了些网上的各类导航网站源码,自己学习制作了一个仿苏宁易购的导航栏jQuery部分代码 1 $(function(){ 2 $(".CategoryTree>ul>li").hover(function(index){ 3 var obj=$(this).offset(); 4 var xobj=obj.left+240+"px"; 5 var yobj=$(this).index()*(-$(this).height()-1)+"px"; 6 $(this).addClass("selected"
阅读全文
摘要:jQuery给web开发带来了极大的方便,网站顶部自动伸缩影藏广告是很多网站经常使用的技巧,主要利用jQuery的动画知识,使用了slideUP和slideDown两个函数。jQuery部分的代码:HTML部分的代码
阅读全文
摘要:最近由于需要大概研究了一下MYSQL的随机抽取实现方法。举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT * FROM tablename ORDER BY RAND() LIMIT 1。但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL 3.23版本中,仍然可以通过ORDER BY RAND()来实现随机。但是真正测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放
阅读全文
摘要:1.找到 admin下面 includes\lib_template.php 找到$page_libs = array( 这里…. 给您需要的页面加上 你自己的 boke365.lbi2.找到 languages 下面的 zh_cn\admin\template.php添加$_LANG['template_libs']['seoyy'] = ‘我的seoyy’;3. 在 themes\模板文件夹下面的 libs.xml 修改, 加上 /labrary/boke365.lbi4. 在 labrary 加上 boke365.lbi
阅读全文

浙公网安备 33010602011771号