php-应用和概念总结

来源:互联网 发布:数据库应用sql 编辑:程序博客网 时间:2024/05/22 02:47

1 PHP 异常处理 Exception 类

http://www.eb163.com/club/thread-3550-1-1.html

 

2 静态变量的实例,另一种用法就是用在php的地方上面

function TdBackColor() {
static $ColorStr;
if ($ColorStr=="808080") {
$ColorStr="c0c0c0";
} else {
$ColorStr="808080";
}
return($ColorStr);
}
echo "<table border=1>n";
for ($i=0; $i<10; $i++) {
$ColorStr=TdBackColor();
echo "<tr><td bgcolor=".$ColorStr.">这是第".$i."行</td></tr>n";
}
echo "</table>";

 

3 分布式

 

在分布式计算机操作系统支持下,互连的计算机可以互相协调工作,共同完成一项任务。

也可以这么解释:
一种计算机硬件的配置方式和相应的功能配置方式。它是一种多处理器的计算机系统,各处理器通过互连网络构成统一的系统。系统采用分布式计算结构,即把原来系统内中央处理器处理的任务分散给相应的处理器,实现不同功能的各个处理器相互协调,共享系统的外设与软件。这样就加快了系统的处理速度,简化了主机的逻辑结构

 

分布式系统的类型,大致可以归为三类:

1、分布式数据,但只有一个总? 据库,没有局部数据库。

2、分层式处理,每一层都有自己的数据库。

3、充分分散的分布式网络,没有中央控制部分,各节点之间的联接方式又可以有多种,如松散的联接,紧密的联接,动态的联接,广播通知式联接等。

 

4 php中实现多线程

http://www.abc188.com/info/html/wangluobiancheng/Phpbiancheng/20080224/22576.html

 

5 学习一种新的编程语言需要做的15个练习

http://blog.csdn.net/jaogun/archive/2009/01/19/3837731.aspx

 

6 单例模式在数据库连接的中的应用的讨论涉及到连接池等概念

http://topic.csdn.net/t/20040113/11/2659331.html

数据库链接

http://www.mb5u.com/biancheng/php/php_23641.html

http://zh-tw.how-to.mobi/index.php?id=53353

 

7 mvc架构机制详解

http://www.itwis.com/html/php/phpskill/20090921/6341.html

 

8 unset

unset(变量名) 只能释放局部变量,而对全局变量是无效的,可以使用unset($GLOABALS['变量名'])的形式来释放

 

9 内存溢出

当程序运行的时候..定义了的储存变量就会被内存分配空间..空间大小由编写者定义的时候规定的...但..程序运行了..却需要的空间比定义的大..这样就溢出了.

一个比较简单的判断内存泄漏的方法,看一下你的程序所占用的private bytes是多少,如果一直增加,也就说明有内存泄漏。

解决方法

http://blog.zol.com.cn/781/article_780182.html

 

10 回调函数

1、回调函数就是自己定义并被系统调用 的函数,比如ob_start('callback'),flex系统,多使用在异步调用中,还有一个比喻是:你饿了,想吃饭,就一会去问妈一声"开饭没有啊?"这就正常函数调用.但是今天妈包饺子,花的时间比较长,你跑啊跑啊,就烦了.于是你跟妈说,我先出去玩会,开饭的时候打我手机.等过了一阵,妈给你打电话说"开饭啦, 快回来吃饭吧!"其中,你告诉妈打手机找你,就是个你把回调函数句柄保存到妈的动作.妈打电话叫你,就是个回调过程.

2、回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口

3、软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础,因此,下面我们着重讨论回调机制在不同软件架构中的实现。


回调函数举例 - william_djj@126 - 我的博客

 

参考http://hi.baidu.com/wwang634/blog/item/30fc5bfb90e24d2b4e4aea62.html

 

4、 实例 PDO中规定在每一个fetch模式下,经过处理后的结果中使用一个回调函数。在PDO获取记录的方法中可以使用回调函数对记录进行处理,下面是一个简单的例子:

 

11 ActiveX组件实际上是指一些可执行的代码或一个程序,比如一个.EXE、.DLL或.OCX文件,通过ActiveX技术,程序员就能够将这些可复用的软件组装到应用程序或者服务程序中去,嵌入到网页中,随网页传送到客户的浏览器上,并在客户端执行。通过编程,ActiveX控件可以与Web浏览器交互或与客户交互。

 

12 反射

1、http://www.westphp.com/bbs/archiver/tid-1134.html

 

2、反射机制实现动态代理的代码

http://www.phpchina.com/html/51/n-33751.html

http://www.phpchina.com/?action-viewnews-itemid-33751

3、php 反射类简介

http://hi.baidu.com/yiqing95/blog/item/1c268c585f9a0ad39d82046d.html

4、功能强大的php反射API

http://hi.baidu.com/l4yn3/blog/item/9ee5b5fb25d3ea9e58ee9067.html

13 xml

1、DOM 的丰富性与 SimpleXML 的简单性

要处理XML 文件,有两种传统的处理思路: SAX DOM SAX 基于事件触发机制,对 XML 文件进行一次扫描,完成要进行的处理; DOM 则将整个 XML 文件构造为一棵 DOM 树,通过对 DOM 树的遍历完成处理。这两种方法各有优缺点, SAX的处理思路相对抽象, DOM 的处理过程相对烦琐,都不很适合新手的入门

PHP5推出了一套新的 XML 处理函数,即 SimpleXML 。名如其实, SimpleXML 本身小巧精干,只提供了少量的几个方法函数,但用它处理起XML 文件功能却非常强大,操作也非常的简单

使用SimpleXML处理xml文件
http://home.phpchina.com/space.php?uid=133029&do=blog&id=182653

http://www.ibm.com/developerworks/cn/xml/x-xmlphp1.html

 

php中DOMDocument简单用法(XML创建、添加、删除、修改)

http://hi.baidu.com/gao8613_cang/blog/item/2d1866ecf5929e4779f05587.html

 

2、注意输出的是SimpleXMLElement对象,而不是字符串,要想得到字符串则需要使用(string)转换

3、查看手册中的函数参考部分的XML操作,里面有很多的内容

4、xPath的用法

     在php中运用xPath查询

     http://edu.admin5.com/article/20070913/091342N12007.shtml

     用 XPath 在 PHP Web 站点中显示 Google Calendar 事件

     http://www.ibm.com/developerworks/cn/opensource/os-php-xpath/、

5、网页版手册,里面的实例是比较多的

http://www.php.net/manual/en/simplexmlelement.addchild.php

 

14 the reinvigorated programmer 主要是讲不要把时间过多的放在摆能库上

http://reprog.wordpress.com/2010/03/03/whatever-happened-to-programming/

 

15 stack trace 堆栈跟踪 可以查看代码的执行过程,堆栈是两种数据结构

程序“调用堆栈”是当前函数之前的所有已调用函数的列表(包括当前函数)。每个函数及其变量都被分配了一个“帧”,最近调用的函数在 0 号帧中(“底部”帧)。

也就是将调用堆栈之前执行的操作,以堆栈的方式存放,并返回输出,参见手册errorException

 

16手册predefined interfaces

通过Traversable接口,PHP原生态支持迭代器模式,这个接口由Iterator和IteratorAggregate做了扩展,这两个子接口不仅是定义了一套标准的方法,每个Traversable对象都可以原封不动地传递给foreach(),foreach是迭代器的主要客户端,Iterator实现是真正的迭代器,而IteratorAggregate是有其它职责的Traversable对象,它通过 getIterator()方法返回一个Iterator。迭代器是比对象集更好的抽象

http://developer.51cto.com/art/201004/197287_1.htm

http://www.jiania.com/blog/2008/01/22/php%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3-spl%E7%AF%87-traversable%E6%8E%A5%E5%8F%A3/

 

迭代器:它允许包含迭代器是这样一种方法集合或数组的类的使用者使用foreach,in(C# 参考) 循环访问该集合或数组。迭代器就好像是一种类似线性链的一种数据结构,用于快速查找数据

实例:http://home.phpchina.com/space.php?uid=13595&do=blog&id=37503

http://www.ej38.com/askshow/php-187641.html

IteratorAggregate是对Iterator的扩展,组织数据,然后执行Iterator,实例参见手册

 

17 stream wrapper

不过在 file_get_contents 的手册页里没说怎么取得响应头。实际上,php 文件函数能访问 http 都是用的 stream wrapper 的东西,把不同形式的流包装成文件。在用 file_get_contents 访问 http 时,stream wrapper 会把响应头放到当前作用域下的 $http_response_header 数组变量里

http://blog.csdn.net/phphot/archive/2009/07/06/4324268.aspx

 

18 AOP编程方式,将零散的逻辑或变换附着在主逻辑上,是一种扩展,比如单词或阅读项目中的激励机制就是使用aop的编程方式

http://www.cnblogs.com/zhugenqiang/archive/2008/07/27/1252761.html

 

19 进程和线程的概念,属于操作系统书籍范畴,简单的说,进程就是word程序,线程就是多个打开的word文档

http://blog.chinaunix.net/u/8793/showart_211318.html

进程管理知识库,很好可以查到系统的进程:http://www.acfile.com/index.html

英特尔 多线程的概念,包含进程,很好

http://software.intel.com/zh-cn/blogs/2011/12/02/400009295/?cid=sw:prccsdn2087

 

20 所谓系统调用就是内核提供的、功能十分强大的一些列函数,系统调用是用户程序和内核交互的借口。内核:操作系统的核心,其它所有组件都依赖于它,内核管理诸如低层硬件及资源共享之类的认为,包括内存分配,输入/输出,安全性和用户访问

参见windows 用户简明 Linux词汇表  http://hi.baidu.com/yyww0602/blog/item/fcf98401ba1836d3267fb51a.html

 

21 在CGI模式下,如果客户机请求一个php文件,Web服务器就调用php.exe去解释这个文件,然后再把解释的结果以网页的形式返回给客户机;
而在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。
所以从某种角度上来说,以apache模块方式安装的 PHP4有着比CGI模式更好的安全性以及更好的执行效率和速度。

 

22 META标签是HTML语言HEAD区的一个辅助性标签,它位于HTML文档头部的<HEAD>标记和<TITLE>标记之间,它提供用户不可见的信息。meta标签通常用来为搜索引擎robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以根据你定义的时间间隔刷新自己,以及设置RASC内容等级,等等。

Meta标签详解   http://www.cnblogs.com/esshs/articles/157588.html

 

23 迭代和递归的区别

http://dev.yesky.com/171/3064671.shtml  http://blog.csdn.net/liuzongshun/archive/2009/05/22/4209420.aspx

 

24 系统函数库接口,实际上就是API,里面的函数服务于应用程序, API这个多作业系统除了协调应用程式的执行、分配内存、管理系统资源…之外,她同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备…等目的。比如send函数就系统函数,不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。

 

25 内核态和用户态:内核态就是拥有资源多的状态,或者说访问资源多的状态,我们也称之为特权态。相对来说,用户态就是非特权态,在此种状态下访问的资源将受到限制。如果一个程序运行在特权态,则该程序就可以访问计算机的任何资源,即它的资源访问权限不受限制。如果一个程序运行在用户态,则其资源需求将受到各种限制。

http://book.51cto.com/art/201001/177431.htm

 

26 缓冲区:就是将数据从源复制/移动到目的地所用的中间内存区,其实是个很模糊地概念。高速的数据交换暂存区域,说法不一样,但是道理一样,用象形来说,就像是物流,其实就是一个暂时的仓库。很简单,当你的内存不够用时,硬盘上的一块区域就接内存的数据来存放!

 

27 http认证:如果网站内有些网页只希望提供给管理员,那么便需设置一个密码认证功能。

php内使用http认证  http://www.piscdong.com/entry.php/99/PHP_HTTP_authentication/

 

28 &引用的使用:传递对象和赋值的时候要使用 & 符号这样可以保证每次引用的是同一个对象。

http://tech.e800.com.cn/articles/2009/914/1252898331234_1.html

 

29 函数式编程

什么是函数式编程 http://lxhzju.blog.163.com/blog/static/4500820084893936220/    zao博客

 

30 缓存:CPU先到缓存中读取数据,存在则返回,不存在则到内存中读取,然后将数据放进缓存,并返回给cpu,优点:如果数据存在缓存中,则可直接读取。缺点:如果数据不再缓存中,则从内存中读取,这样数据在读取过程中增加了从缓存中查找这一步,速度下降了。解决方法:在缓存中数据要按一定的算法来实现这样才能保证缓存中的数据是被访问频繁的。CPU的核心性能的提升体现在二级缓存中,所以二级缓存的容量是重点。算法:为了保证CPU访问时有较高的命中率,缓存中的内容按照最近最少使用算法。

http://baike.baidu.com/view/907.htm

 

31 APC 是指操作码缓存,由于 PHP 是以解释的方式执行的,所以 PHP 代码每次执行时都会被解析和转换成操作码(opcode)。操作码缓存能消除这项重复的工作,使 PHP 应用程序运行得更快。当页面过多或Php代码过多时使用,解决此种问题的方案还有 XCache

apc的实例php大文件带进度上传的方法,

使用apc结合制作 http://www.xueit.com/html/2009-09/22_4567_00.html

php APC的安装与高级使用  http://soft6.com/html/tech/17/175957.shtml

 

APC安装 

1、http://www.6curl.com/php5-apc/

2、如果安装出现错误,就是--with-php-config=/usr/bin/php-config路径没有设置对

     http://blog.lixiphp.com/linux-php-apc-install-configuration/ 

     另外就是一定要将这篇文章的最后写入才可以正确的使用apc,运行时配置参考手册介绍

 

3、包含window下的安装方法

--prefix是表示安装的路径

4、安装成功后,有一个在安装路径下有一个apc.php,复制到可以访问到的路径下,这个文件记录了apc的一些信息

 

32 栈回溯:是一种算法 http://wenda.tianya.cn/wenda/thread?tid=651c6871f8f5a555

 

33 交互式shell和非交互式shell 交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell 与用户进行交 互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非 交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

 

34 字節碼 通常指的是已經經過編譯 ,但與特定機器碼 無關,需要直譯器 轉譯后才能成為機器碼 的中間代碼。字節碼通常不像源碼 一樣可以讓人閱讀,而是編碼 后的數值常量、引用、指令等構成的序列。字節碼主要為了實現特定軟件運行和軟件環境、硬件環境無關。字節碼的實現方式是通過編譯器 和虛擬機器 。編譯器將源碼編譯成字節碼,特定平臺上的虛擬機器將字節碼轉譯為可以直接執行的指令。字節碼的典型應用為Java 語言。

 

35 在计算机中,数据只用0和1还种表现形式,(这里只表示一个数据点,不是数字),一个0或者1占一个“位”,而系统中规定8个位为一个字节,用来表示常用的256个字母、符号、控制标记,其中用一个位来进行数据校验,其他七个位用来记录数据。按计算机中的规定,一个英文的字符占用一个字节,(如,."':;avcAVC都占用一个字节),而一个汉字以及汉字的标点符号、字符都占用两个字节,(如,。“”:;AVCavc他们就得占用两个字节)。另外,他们是没有办法比较的,只能讲一个字符占用一个字节,N个字符占用N个字节。K是千 M是兆 G是吉咖 T是太拉 8bit(位)=1Byte(字节) 1024Byte(字节)=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB

 

36 通用资源标志符Uniform Resource Identifier ,简称URI )是互联网 的一个协议要素,可以通过它来定位任何远程或本地的可用资源(这些资源通常包括HTML文档 、图像 、视频片段 、程序 等)。

 

37 socket编程要解决的问题是,http协议只能是从client端向server端发送请求,而不能做到server端向client端发送请求,这样用户的事实交互体验就很差了,如果要实现交互的机制,就要使用轮询的方式不断的向服务器端发送询问,服务器的承载量就会不断的增加,所以可以使用socket的编程方式来解决这种问题。http是一种无状态的链接,多人玩的21点的发牌动作就要使用这样的方式

 

38 代理服务器 http://www.chinaitpower.com/A200508/2005-08-02/183123.html

 

39 APD  APD 是 Advanced PHP Debugger,即高级 PHP 调试器。是用来给 PHP 代码提供规划与纠错的能力,以及提供了显示整个堆栈追踪的能力。APD 支持交互式纠错,但默认是将数据写入跟踪文件。它还提供了基于事件的日志,   因此不同级别的信息         (包括函数调用,  参数传递,计时等)可以对个别的脚本打开或关闭。

http://hi.baidu.com/wangxinhui419/blog/item/c868652c6133ffe18b1399d1.html

 

40 asset() 可以代替echo 调试unit函数 有例子 http://tech.ddvip.com/2007-05/118042319926072.html 太简单用处不大

 

41 两者的区别  magic_quotes_gpc 处理的是post /get/ie 传递过来的内容【相反的函数是:stripslashes(); 把 '/' 干掉】

magic_quotes_rumtime 处理的是数据库 或文件中的内容

 

42 什么是 inode http://linux-vbird.bluedata.org/linux_base/0220filemanager.htm

 

43 xdebug,php代码调试器

1、安装  http://xdebug.org/docs/install

2、http://xdebug.org/download.php 通过phpinfo将整个页面内容复制粘贴进去就可以了

3、php调试工具Xdebug安装配置教程   http://www.leapsoul.cn/?p=935

4、不要再php.ini中加入extension="xdebug.so"

5、开启函数跟踪模式http://book.chinaunix.net/showart.php?id=7201

6、xdebug还可以集成到eclipse

7、debug的输出文件的地址目录要设置成777

8、profile性能跟踪:php xdebug使用  http://tech.ddvip.com/2008-11/122624488490643.html

9、kacachegrind安装   http://blog.fj18.com/post/183.html  如何使用 ?????  sudo apt-get install kcachegrind

10、kacachegrind 官方网站 http://kcachegrind.sourceforge.net/html/Home.html

 

44 zned

1、理解zend框架  http://www.gzweix.com/article/sort0247/sort0379/sort0396/info-171064.html

 

45 .htaccess

1、heaccess是什么 http://www.111cn.net/phper/31/75446372874c15ff7a185f8e9599acbb.htm

 

46 socket and Php

http://www.livingelsewhere.net/2009/11/30/socket-and-php/

47 会话

会话就是一个连接从开始创建到结束的过程

A session is a specific connection of a user to an Oracle instance through a user
process. For example, when a user starts SQL*Plus, the user must provide a valid user
name and password, and then a session is established for that user. A session lasts
from the time the user connects until the time the user disconnects or exits the
database application.

原创粉丝点击