php
水郭
梦想的力量,你我同行!
展开
-
PHP_APP(通信)接口—能做的那些事
APP接口能做哪些事呢:1、获取数据从数据库或文件或缓存中获取数据,然后通过接口数据返回给客户端;2、提交数据通过接口提交数据给服务器,然后服务器入库处理,或者其他处理;类似与web开发中的表单提交;原创 2015-08-11 16:44:26 · 610 阅读 · 0 评论 -
php页面静态化—buffer
buffer 其实就是缓冲区,一个内存地址空间,主要用于存储数据区域;我们拿操作系统的buffer来举一个例子:当我们新建了一个文件,然后在文件中输入一些数据,然后点击保存的时候,我们看到的是这些数据全部保存到了新建文件对应的磁盘中,但是这些数据不是直接就保存到磁盘中的,而是经过了buffer这个中间过程。当我们点击保存的时候,这些数据首先保存在了buffer中,当buffer被这原创 2015-06-28 13:49:46 · 375 阅读 · 0 评论 -
php跨平台—绝对路径(获取绝对路径、定义常量、使用常量引入文件示例)
一般为了使我们所开发的php程序能够跨平台或者在所有文件中都可以引入初始化文件(初始化文件中可能会引入某些公共的文件),那么我们在程序中使用的路径就必须为绝对路径。php获取绝对路径、定义常量、使用常量引入文件示例需要以下内容:1. __FILE____FILE__ :被称为PHP魔术常量 ,返回当前执行PHP脚本的完整路径和文件名,包含一个绝对路径原创 2015-06-07 17:08:30 · 5711 阅读 · 0 评论 -
php页面静态化—优化页面响应时间
如:动态页面静态化、优化数据库、使用负载均衡、使用缓存等。如果页面中的一些内容不经常改动(几个小时、几天或更久不做改动),这个时候将动态页面静态化是非常有效的加速方法;比如:新闻发布系统、文章发布系统等;动态页面静态化的好处:1、减少服务器脚本的计算时间;2、降低服务器的响应时间,减少服务器的压力;比如当我们去执行一个php文件时,一般要经过“语法分析”、“编译”、“运行”原创 2015-06-28 00:40:24 · 1033 阅读 · 0 评论 -
php页面静态化—静态化详细介绍
php静态包括:一、纯静态纯静态是指使用php生成纯html文件,然后前端访问这个html文件的过程;如果细分纯静态,那么可以分为“局部纯静态”、“全部纯静态”;“全部纯静态”指完全静态的html文件;“局部纯静态”即局部动态化,指静态的文件中部分内容为动态内容(通过ajax来实现局部动态);二、伪静态;伪静态是指将动态页面的url地址转换成类似于静态页面的url地址的原创 2015-06-28 01:07:21 · 556 阅读 · 0 评论 -
php正则表达式—仿smarty
/**类名为Smarty是自定义的模板引擎通过该类对象加载模板文件并解析,将解析后的结果输出 */class Smarty {public $template_dir = 'templates'; //定义模板文件存放的目录 public $compile_dir = 'templates_c'; //定义通过模板引擎组合后文件存放目录publi原创 2015-06-27 00:39:23 · 567 阅读 · 0 评论 -
php正则表达式—修正模式
“修正模式”是给正则表达式的匹配过程指定一种匹配模式,类似于手机的模式(家庭模式、会议模式等): 包含以下这些: “贪婪匹配”—— 指的是当匹配结果出现歧义(出现多种结果)的时候,它会选择结果最长的那个结果; “懒惰匹配(U)”—— 指的是当匹配结果出现歧义(出现多种结果)的时候,它会选择结果最短的那个结果; “i”—— 忽略正则表达式中英文字母的大小写; “x”—— 忽略正则表达式中的空原创 2015-06-10 17:52:58 · 516 阅读 · 0 评论 -
php页面静态化—动态页面和静态页面
动态页面:页面中的数据需要从文件或数据库动态获取的页面;比如请求一个php文件所生成的页面;当请求一个php文件时,php文件会经过3个执行阶段,语法分析、编译、运行。所以说这类型的页面也属于动态页面;静态文件:纯html文件所生成的页面;当请求一个html文件时,html文件不会经过语法分析、编译,它会直接运行。所以说这类型的页面属于静态页面;从上面的描述可以原创 2015-06-27 22:53:09 · 1141 阅读 · 0 评论 -
php面向对象(OOP)—接口(interface)
PHP与大多数面向对象编程语言一样,不支持多重继承。也就是说每个类只能继承一个父类。为了解决这个问题,PHP引入了接口,接口的思想是指定了一个实现了该接口的类必须实现的一系列方法。接口是一种特殊的抽象类,抽象类又是一种特殊的类,所以接口也是一种特殊的类,为 什么说接口是一种特殊的抽象类呢?如果一个抽象类里面的所有的方法都是抽象方法,那么我们就换一种声明方法使用“接口”;也就是说接口里面所有的方法必原创 2015-06-05 14:51:27 · 1405 阅读 · 0 评论 -
php面向对象(OOP)—__toString()和__clone()
我们前面说过在类里面声明“__”开始的方法名的方法(PHP给我们提供的),都是在某一时刻不同情况下自动调用执行的方 法,“__toString()”方法也是一样自动被调用的,是在直接输出对象引用时自动调用的, 前面我们讲过对象引用是一个指针,比如 说:“$p=new Person()“中,$p就是一个引用,我们不能使用echo 直接输出$p,这样会输 出“Catchable fatal err原创 2015-06-04 20:14:05 · 389 阅读 · 0 评论 -
php面向对象(OOP)—spl_autoload_register()注册自定义的自动加载函数
spl_autoload_register(PHP 5 >= 5.1.2)spl_autoload_register — 注册__autoload()函数说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中。如果该栈中的函数尚未激活,则激原创 2015-06-05 16:24:36 · 1520 阅读 · 0 评论 -
php函数—preg_quote()转义正则表达式字符
(PHP 4, PHP 5)preg_quote — 转义正则表达式字符string preg_quote ( string $str [, string $delimiter = NULL ] )preg_quote()需要参数 str 并向其中 每个正则表达式语法中的字符前增加一个反斜线。 这通常用于你有一些运行时字符串 需要作为正则表达式进行匹配的原创 2015-06-06 11:07:40 · 732 阅读 · 0 评论 -
php面向对象(OOP)—__autoload()函数
很多开发者写面向对象的应用程序时,对每个类的定义建立一个 PHP 源文件。一个很大的烦恼是不得不在每个脚本(每个类一个文件)开头写一个长长的包含文件的列表。在软件开发的系统中,不可能把所有的类都写在一个PHP文件中,当在一个PHP文件中需要调用另一个文件中声明的类时,就需要通过include把 这个文件引入。不过有的时候,在文件众多的项目中,要一一将所需类的文件都include进来,是一个原创 2015-06-05 15:52:37 · 415 阅读 · 0 评论 -
php模版引擎(smarty3)—优化(定界符,避免和其他语言的冲突)
在smarty3的模版变量中,如{$var},默认{$val}的两边是不能出现空格的,即{ $val }。如果出现空格会报错,但在smarty2中则允许出现空格。这样就很容易跟页面嵌入的其他的语言发生冲突,如页面中的:body{margin:0;padidng:0;}p{ color:#000; font-size:14px; }input{width:200p原创 2015-06-07 18:30:05 · 1517 阅读 · 0 评论 -
php模版引擎(smarty3)—优化(选择注释)
在smarty3中模版的注释有两种:第一种是:如果你的smarty3定界符是{},则可以使用{*被注释的内容*}来注释;第二种是:一般的html的注释,即;虽然说这两种方法都可以达到注释的目的,但是他们是有很大区别的:首页smarty3是一种编译型的模版引擎,如果使用smarty3的{*被注释的内容*}这种注释,则在编译并输出到页面后,{*被注释的内容*}是不被输出的,原创 2015-06-07 18:19:00 · 476 阅读 · 0 评论 -
php正则表达式—对于文字匹配的建议
由于不同种类的语言的文字的编码可能不同。如英文字符有ascII编码,中文汉字有unicode 、utf8、utf16等编码一样。 我们在写代码的时候也会讲究使用某种编码,所以如果我们在写正则表达式的时候直接写入汉字,就有可能由于编码问题而产生某些未知的错误; 所以,为了避免错误,笔者建议,但凡是涉及到文字的匹配的时候,建议将文字先转换成unicode编码之后再写到正则表达式中,这样就可以避免一些原创 2015-06-08 01:34:40 · 453 阅读 · 0 评论 -
PHP_APP(通信)接口—接口三要素
APP接口实现的三要素:1、接口地址;如http://www.server.com/data.php2、接口文件:data.php3、接口数据;原创 2015-08-11 15:34:05 · 2476 阅读 · 0 评论 -
PHP_APP(通信)接口—封装通信接口的方法
通信数据的标准格式:code状态码(200,400等);message提示信息(登录失败,数据返回成功等);data返回数据;1、json 方式封装通信接口方法:json_encode($value);注:该函数只能接受utf-8编码的数据;如果传递其他格式的数据该函数会返回null;<?php class Response原创 2015-08-11 18:17:24 · 781 阅读 · 0 评论 -
php面向对象(OOP)—类自动载入的思想历程
在最开始时,当我们使用一个或多个类时,一般都要使用require或include函数将类引入,然后才能使用;但是当一个项目中有非常多的类时,那当我们都使用这些类时就必须在一个文件中将这些类全部引入,这样一方面比较累赘,效率上不高。另一方面,当我们删除其中的某些类后,就要去删除对应的require或include语句,容易出错;为了避免上面的情况,所以我们又使用了php的魔法函数__原创 2015-07-10 11:42:57 · 1225 阅读 · 0 评论 -
php函数—截断函数mb_substr()详细介绍
在php中mb_substr()函数是用来截中文与英文的函数,可以方便快速的解决截取指定字符长度的问题,下面我来给大家介绍介绍。 提示:mb_substr在于php中是默认不被支持的我们需要在在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到;extension=php_mbstring.dll把前面的;号去掉才可以使用mb_substr函数哦。转载 2015-07-02 01:27:14 · 1997 阅读 · 0 评论 -
php函数—addslashes和mysql_real_escape_string
本文介绍的是用 mysql_real_escape_string对用户提交数据进行整理处理和通过addslashes以及mysql_escape_string这3个类似的功能函数的区别。经过转义的数据可以直接插入到数据库中。很好的说明了addslashes和mysql_real_escape_string的区别,虽然国内很多PHP coder仍在依靠addslashes防止SQL注入(包括转载 2015-07-02 01:32:57 · 989 阅读 · 0 评论 -
php函数—get_magic_quotes_gpc()与addslashes()
magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误 在magic_quotes_gpc=On的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线()与 NUL(NULL 字符)等字符都会被转载 2015-06-30 22:15:56 · 6609 阅读 · 0 评论 -
php函数— strip_tags() 函数
定义和用法strip_tags() 函数剥去 HTML、XML 以及 PHP 的标签。语法strip_tags(string,allow)参数描述string必需。规定要检查的字符串。allow可选。规定允许的标签。这些标签不会被删除。提示和注释注释:该函数始终会剥离 HTM转载 2015-07-02 01:28:35 · 513 阅读 · 0 评论 -
php正则表达式—实战
'.+' —— 表示匹配非空;'\d+\.\d{2}' —— 表示匹配结尾是两位小数的浮点数;'1(3|4|5|7|8)\d{9}' —— 表示匹配中国大陆的手机号码;'^\w+(\.\w+)*@\w+(\.\w+)+$' —— 表示匹配一个email地址;'^(https?://)?(\w+\.)+[a-zA-Z]+$' —— 表示匹配一个url地址,如:http://www.b原创 2015-06-10 18:04:19 · 362 阅读 · 0 评论 -
php正则表达式—基本语法
正则表达式的语法要点有: 界定符 ( 表示正则表达式开始和结束的位置,如/[0-9]/或#[0-9]#或{[0-9]}中的’/’、’#’、’{}’,但是由于’{}’即是正则表达式的界定符 也是正则表达式的运算符,所以不建议使用’{}’作为正则表达式的界定符,以免发生歧义。 不同的语言由于编译器或者解释器的不同,所以界定符可能会有所不同。 ) 原子 (原创 2015-06-10 01:01:01 · 364 阅读 · 0 评论 -
php页面静态化—触发系统生成纯静态化页面的三种方式
触发系统生成纯静态化页面的三种方式:一、页面添加缓存时间;二、手动触发方式;三、crontab定时扫描程序;原创 2015-06-29 00:04:35 · 1930 阅读 · 0 评论 -
php页面静态化—局部页面静态化原理
局部页面静态化就是指在纯html静态化文件中有部分的数据是动态获取的;它所用的技术就是ajax技术;它的原理就是在生成纯静态html文件的模版文件中,使用ajax技术来动态的获取并更新需要动态的部分;这样,在生成的纯静态的html文件中就包括了动态数据的部分,而这个文件就是局部静态化的html文件;原创 2015-06-30 14:56:30 · 921 阅读 · 0 评论 -
php页面静态化—实现页面纯静态化的原理
php实现页面纯静态化的最终目的就是生成纯html文件,而这个纯html文件就存放在服务器的磁盘当中;php实现页面纯静态化需要的东西:1、文件写入函数file_put_contents()、或者fopen()、fwrite()、fclose()等函数;2、缓冲区(缓存)操作函数ob函数(ob_start()、ob_get_contents()、ob_clear()、ob_ge原创 2015-06-28 18:51:45 · 5506 阅读 · 0 评论 -
php面向对象(OOP)—序列化(串行化)与反序列化之serialize(),unserialize,__sleep(),__wakeup()
有时候需要把一个对象在网络上传输,为了方便传输,可以把整个对象转化为二进制串,等到达另一端时,再还原为原来的对象,这个过程称之为串行化(也叫序列化), 就像我们现在想把一辆汽车通过轮船运到美国去,因为汽车的体积比较大,我们可以把汽车拆开成小的部件,然后我们把这些部件通过轮般运到美国去,到了美国再把这些部件组装回汽车。有两种情况我们必须把对象串行化,第一种情况就是把一个对象在网络中传输的时候原创 2015-06-05 15:26:21 · 1036 阅读 · 0 评论 -
php面向对象(OOP)—多态
多态是除封装和继承之外的另一个面象对象的三大特性之一,我个人看来PHP中虽然可以实现多态,但和c++还有Java这些面向对象的语言相比,多 态性并不是那么突出,因为PHP本身就是一种弱类型的语言,不存在父类对象转化为子类对象或者是子类对象转化为父类对象的问题,所以多态的应用并不是那么的明显;所谓多态性是指一段程序能够处理多种类型对象的能力,比如说在公司上班,每个月财务发放工资,同一个发工资的方法,原创 2015-06-05 15:00:39 · 5720 阅读 · 0 评论 -
php面向对象(OOP)—抽象方法和抽象类
在OOP语言中,一个类可以有一个或多个子类,而每个类都有至少一个公有方法做为外部代码访问其的接口。而抽象方法就是为了方便继承而引入的,我们先来看一下抽象类和抽象方法的定义再说明它的用途。什么是抽象方法?我们在类里面定义的没有方法体的方法就是抽象方法,所谓的没有方法体指的是,在方法声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时还要加一个关键字原创 2015-06-05 14:46:57 · 514 阅读 · 0 评论 -
php面向对象(OOP)—方法重写(override)
因为PHP是弱类型的语言, 所以在方法的参数中本身就可以接收不同类型的数据,又因为PHP的方法可以接收不定个数的参数,所以通过传递不同个数的参数调用不相同方法名的不同方法也是不成立的,所以php是不能重载的。虽然说在PHP里面不能定义同名的方法, 但是在父子关系的两个类中,我们可以在子类中定义和父类同名的方法,这样就把父类中继承过来的方法覆盖掉了(重写父类方法)。class P原创 2015-06-03 17:17:51 · 6201 阅读 · 0 评论 -
php面向对象(OOP)—__set(),__get(),__isset(),__unset()
一般来说,总是把类的属性定义为private,这更符合现实的逻辑。但是, 对属性的读取和赋值操作是非常频繁的,因此在PHP5中,预定义了两个函数”__get()”和”__set()”来获取和赋值其属性,以及检查属性的”__isset()”和删除属性的方法”__unset()”。__get()方法:这个方法用来获取私有成员属性值的,有一个参数, 参数传入你要获取的成员属性的名称,返回获取原创 2015-06-03 16:36:21 · 398 阅读 · 0 评论 -
php异常处理—设置顶层异常处理器
set_exception_handler() 函数可设置处理所有未捕获异常的用户定义函数。<?phpfunction myException($exception){echo "Exception: " , $exception->getMessage();}set_exception_handler('myException');throw new Exception('U原创 2015-06-02 13:19:24 · 878 阅读 · 0 评论 -
php模版引擎(smarty3)—display()渲染文本字符串
$smarty=$this->smarty;$smarty->assign('foo','value');$template_string = 'display {$foo} here';// 第一种方式// compiles for later reuse$smarty->display('string:'.$template_string); // 第二种方式// compiles every time$smarty->display('eval:'.$template_string原创 2015-06-05 17:29:07 · 1121 阅读 · 1 评论 -
php异常处理—重新抛出异常
有时,当异常被抛出时,您也许希望以不同于标准的方式对它进行处理。可以在一个 "catch" 代码块中再次抛出异常。脚本应该对用户隐藏系统错误。对程序员来说,系统错误也许很重要,但是用户对它们并不感兴趣。为了让用户更容易使用,您可以再次抛出带有对用户比较友好的消息的异常:<?phpclass customException extends Exception { public fu原创 2015-06-02 13:16:24 · 2701 阅读 · 0 评论 -
php异常处理—多个异常
可以为一段脚本使用多个异常,来检测多种情况。可以使用多个 if..else 代码块,或一个 switch 代码块,或者嵌套多个异常。这些异常能够使用不同的 exception 类,并返回不同的错误消息:<?phpclass customException extends Exception{public function errorMessage(){//error mess原创 2015-06-02 13:08:42 · 1738 阅读 · 0 评论 -
php异常处理—创建自定义的异常处理器
创建一个自定义的 Exception 类创建自定义的异常处理程序非常简单。我们简单地创建了一个专门的类,当 PHP 中发生异常时,可调用其函数。该类必须是 exception 类的一个扩展。这个自定义的 exception 类继承了 PHP 的 exception 类的所有属性,您可向其添加自定义的函数。我们开始创建 exception 类:<?phpclass cu原创 2015-06-02 12:20:59 · 1018 阅读 · 0 评论 -
php异常处理—异常的基本用法
从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被执行。既然抛出异常会中断程序执行,那么为什么还需要使用异常处理?异常抛出被用于在遇到未知错误,或者不符合预先设定的条件时,通知客户程序,以便进行其他相关处理,不至于使程序直接报错中断。当代码中使用了try catch的时候,抛出的异常会原创 2015-06-02 11:54:01 · 441 阅读 · 0 评论 -
php正则表达式—工具类的开发
class regexTool{private $validate = array('require' => '/.+/','email' => '/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/','url' => '/^((http|https|ftp):\/\/)?(原创 2015-06-20 11:23:28 · 497 阅读 · 0 评论