简介和安装配置AlternativePHPCache(APC)是一个开放自由的PHPopcode缓存。它的目标是提供一个自由、开放,和健全的框架用于缓存和优化PHP的中间代码。该扩展的各个版本安装包都在此处: http://pecl.php.net/package/apc.该PECL 扩展的 DLL 当前不可用。注意: 在Windows上,APC需要一个临时目录,并且Web服务器对这个目录可写,APC会检测TMP,TEMP,USERPROFILE这些Windows的环境变量,如果这些都没有,会检查系统...
继续阅读 >
分类目录归档:全部列表
2014
11-07
11-07
PHP扩展之错误处理和日志记录
简介PHP提供了错误处理和日志记录的功能.这些函数允许你定义自己的错误处理规则,以及修改错误记录的方式.这样,你就可以根据自己的需要,来更改和加强错误输出信息以满足实际需要.通过日志记录功能,你可以将信息直接发送到其他日志服务器,或者发送到指定的电子邮箱(或者通过邮件网关发送),或者发送到操作系统日志等,从而可以有选择的记录和监视你的应用程序和网站的最重要的部分。错误报告功能允许你自定义错误反馈的...
继续阅读 >
2014
11-07
11-07
PHP扩展之输出缓冲控制
简介当PHP脚本有输出时,输出控制函数可以用这些来控制输出。这在多种不同情况中非常有用,尤其是用来在脚本开始输出数据后,发送http头信息到浏览器。输出控制函数不影响由 header() 或 setcookie()发送的文件头信息,仅影响像 echo这样的函数和PHP代码块间的数据。注意:由于早先的版本的缺陷,当从PHP4.1.x(4.2.x,4.3.x)升级时,必须保证php.ini中的implicit_flush 是 OFF,否则任何用...
继续阅读 >
2014
11-07
11-07
PHP扩展之选项和配置信息
这些函数允许你获得许多关于PHP本身的参数,例如:运行时的配置,被加载的扩展,版本等。你也将找到设置你的运行中的PHP的选项的函数。可能最好用的PHP-函数 phpinfo() 可以在这里找到。选项和信息函数:assert_options —设置/获取断言的各种标志assert —检查一个断言是否为FALSEcli_get_process_title —返回当前的进程标题cli_set_process_title —设置进程标题dl —运行时载入一个PHP扩展extension...
继续阅读 >
2014
11-07
11-07
PHP扩展之基于命令行的扩展Readline
简介readline扩展函数实现了访问GNUReadline库的接口.这些函数提供了可编辑的命令行.一个例子是在Bash中允许你使用箭头按键来插入字符或者翻看历史命令.因为这个库的交互特性,这个功能在你写的Web程序中没多大用处,但是当你写的脚本被用在命令行中时非常有用.安装配置如果要使用readline函数,你必须安装libreadline,你也能使用非GPL的libedit库来替代readline库。要使用这些函数,你必须在编译PHP...
继续阅读 >
2014
11-07
11-07
PHP扩展之压缩与归档扩展1——Bzip2
bzip2函数用于透明地读写bzip2(.bz2)压缩文件。本模块使用了JulianSeward的 » bzip2 库中的函数。本模块需要bzip2/libbzip2版本>=1.0.x。PHP的 Bzip2 支持默认未打开。编译PHP时需要 --with-bz2[=DIR] 配置选项来激活bzip2支持。下面的范例打开一个临时文件并写入了一个测试字符串,然后输出该文件里的内容:Example#1bzip2小例子<?php$filename="/tmp/testfile.bz2";$str="Thisis...
继续阅读 >
2014
11-07
11-07
PHP扩展之压缩与归档扩展2——Phar
Phar归档的概念来自Java™技术的JAR归档,它允许使用单个文件打包应用程序,这个文件中包含运行应用程序所需的所有东西。该文件不同于单个可执行文件,后者通常由编程语言生成,比如C,因为该文件实际上是一个归档文件而非编译过的应用程序。因此JAR文件实际上包含组成应用程序的文件,但是考虑到安全性,不对这些文件进行仔细区分。Phar扩展正是基于类似的理念,但是在设计时主要针对PHP的Web环境。同样,与JAR归...
继续阅读 >
2014
11-07
11-07
PHP扩展之压缩与归档扩展3——Zip
此扩展可以让你透明地读写ZIP压缩文档以及它们里面的文件。在PHP5.2以后,为了使用这些函数,必须在编译PHP时用 --enable-zip 配置选项来提供zip支持。Example#1创建一个Zip归档<?php$zip=newZipArchive();$filename="./test112.zip";if($zip->open($filename,ZIPARCHIVE::CREATE)!==TRUE){exit("cannotopen<$filename>\n");}$zip->addFromString("testfilephp.txt".time()...
继续阅读 >
2014
11-07
11-07
PHP扩展之压缩与归档扩展4——Zlib
大多数文件系统函数使用gzip来压缩文件,本模块可以帮助透明读取gzip压缩文件。在PHP中Zlib支持默认并没有开启。需要安装配置PHP的时候使用 --with-zlib[=DIR]。下面这个例子开启了一个临时文件来写入测试字符串,然后两次打印文件内容。Example#1简单的Zlib示例<?php$filename=tempnam('/tmp','zlibtest').'.gz';echo"<html>\n<head></head>\n<body>\n<pre>\n";$s="Onlyatest,test,test,test,...
继续阅读 >
2014
11-07
11-07
PHP数据库抽象层之PDO(一)——简介和安装配置
简介PHP数据对象 (PDO)扩展为PHP访问数据库定义了一个轻量级的一致接口。实现PDO接口的每个数据库驱动可以公开具体数据库的特性作为标准扩展功能。注意利用PDO扩展自身并不能实现任何数据库功能;必须使用一个 具体数据库的PDO驱动 来访问数据库服务。PDO提供了一个 数据访问 抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据。PDO 不提供 数据库 抽象层;它不会重写SQ...
继续阅读 >
2014
11-07
11-07
PHP数据库抽象层之PDO(二)——连接与连接管理
连接是通过创建PDO基类的实例而建立的。不管使用哪种驱动程序,都是用PDO类名。构造函数接收用于指定数据库源(所谓的DSN)以及可能还包括用户名和密码(如果有的话)的参数。Example#1连接到MySQL<?php$dbh=newPDO('mysql:host=localhost;dbname=test',$user,$pass);?>如果有任何连接错误,将抛出一个 PDOException 异常对象。如果想处理错误状态,可以捕获异常,或者选择留给通过 set_exception_handler(...
继续阅读 >
2014
11-07
11-07
PHP数据库抽象层之PDO(三)——事务与自动提交
现在通过PDO连接上了,在开始进行查询前,必须先理解PDO是如何管理事务的。事务支持四大特性(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)以及持久性(Durability)。通俗地讲,在一个事务中执行的任何操作,即使是分阶段执行的,也能保证安全地应用于数据库,并在提交时不会受到来自其他连接的干扰。事务操作也可以根据请求自动撤销(假设还没有提交),这使得在脚本中处理错误更加容易。事务...
继续阅读 >
2014
11-07
11-07
PHP数据库抽象层之PDO(四)——预处理语句与存储过程
很多更成熟的数据库都支持预处理语句的概念。什么是预处理语句?可以把它看作是想要运行的SQL的一种编译过的模板,它可以使用变量参数进行定制。预处理语句可以带来两大好处:查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次。当查询准备好后,数据库将分析、编译和优化执行该查询的计划。对于复杂的查询,此过程要花费较长的时间,如果需要以不同参数多次重复相同的查询,那么该过程将大大降低应用程序的速...
继续阅读 >
2014
11-07
11-07
PHP数据库抽象层之PDO(五)——错误与错误处理
PDO提供了三种不同的错误处理模式,以满足不同风格的应用开发:PDO::ERRMODE_SILENT此为默认模式。PDO将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象。如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 PDOStatement::errorCode() 或 PDOStatement::errorInfo() 方法。如果错误是由于调用数据库对象而产生的,那么可以在数据库对象上调用上述两个方...
继续阅读 >
2014
11-07
11-07
PHP数据库抽象层之PDO(六)——大对象(LOBs)
应用程序在某一时刻,可能需要在数据库中存储“大”数据。“大”通常意味着“大约4kb或以上”,尽管某些数据库在数据达到“大”之前可以轻松地处理多达32kb的数据。大对象本质上可能是文本或二进制。在PDOStatement::bindParam() 或 PDOStatement::bindColumn()调用中使用 PDO::PARAM_LOB 类型码可以让PDO使用大数据类型。PDO::PARAM_LOB 告诉PDO作为流来映射数据,以便能使用 PHPStreamsAPI 来操作。Example#1...
继续阅读 >
2014
11-07
11-07
PHP数据库抽象层之PDO(七)——相关类和方法
PDO类代表PHP和数据库服务之间的一个连接PDO::beginTransaction —启动一个事务PDO::commit —提交一个事务PDO::__construct —创建一个表示数据库连接的PDO实例PDO::errorCode —获取跟数据库句柄上一次操作相关的SQLSTATEPDO::errorInfo —FetchextendederrorinformationassociatedwiththelastoperationonthedatabasehandlePDO::exec —执行一条SQL语句,并返回受影响的行数PDO::get...
继续阅读 >
2014
11-07
11-07
PHP数据库扩展之原生MySQL API
在写新的代码时,不推荐使用本扩展。您应该使用 mysqli 或者 PDO_MySQL 扩展代替。安装编译时,只要使用 --with-mysql[=DIR] 配置选项即可,其中可选的 [DIR] 指向MySQL的安装目录。虽然本MySQL扩展库兼容MySQL4.1.0及其以后版本,但是它不支持这些版本提供的额外功能。要使用这些功能,请使用 MySQLi 扩展库。如果要同时安装mysql扩展库和mysqli扩展库,必须使用同一个客户端库以避免任何冲突。范例这...
继续阅读 >
2014
11-07
11-07
PHP数据库扩展之MySQL增强版扩展MySQLi
mysqli扩展允许我们访问MySQL4.1及以上版本提供的功能。 mysqli扩展和持久化连接mysqli扩展的持久化连接在PHP5.3中被引入。支持已经存在于PDOMYSQL和ext/mysql中。持久化连接背后的思想是客户端进程和数据库之间的连接可以通过一个客户端进程来保持重用,而不是多次的创建和销毁。这降低了每次需要创建一个新连接的开销,未使用的连接被缓存起来并且准备随时被重用。不像mysql扩展,mysqli没有提供一个特殊的方法用于打开...
继续阅读 >
2014
11-07
11-07
PHP扩展之日期和时间相关函数大全
checkdate —验证一个格里高里日期date_add —别名DateTime::adddate_create_from_format —别名DateTime::createFromFormatdate_create_immutable_from_format —别名DateTimeImmutable::createFromFormatdate_create_immutable —别名DateTimeImmutable::__constructdate_create —别名DateTime::__constructdate_date_set —别名DateTime::setDatedate_default_timezone_get —取得一个脚本中所...
继续阅读 >
2014
11-07
11-07
PHP扩展之文件系统相关函数
Directory函数chdir —改变目录chroot —改变根目录closedir —关闭目录句柄dir —ReturnaninstanceoftheDirectoryclassgetcwd —取得当前工作目录opendir —打开目录句柄readdir —从目录句柄中读取条目rewinddir —倒回目录句柄scandir —列出指定路径中的文件和目录FileSystem函数basename —返回路径中的文件名部分chgrp —改变文件所属的组chmod —改变文件模式chown —改...
继续阅读 >
2014
11-07
11-07
PHP扩展之字符编码相关函数1——iconv
此模块包含了iconv字符集转换功能的接口。使用此模块,你可以将一个本地字符集表达的字符串转换成另一种字符集,比如可以是Unicode字符集。支持的字符集基于你系统上iconv的实现。注意,在某些系统上iconv函数可能无法以你预期的那样工作。在这种情况下,安装 libiconv 库将会是个不错的主意。它最终将会产生更一致的结果。自 PHP 5.0.0起,配备了这个具有多种实用功能的扩展,来帮助您编写多语言脚本。默认已...
继续阅读 >
2014
11-07
11-07
PHP扩展之字符串编码相关函数2——多字节字符串
简介虽然许多语言每个必要字符都能一对一映射到8比特(bit)的值,但也有好几种语言需要非常多的字符来书面通讯,以至于它们的编码范围不能仅仅包含在一个字节里(一个字节Byte由8比特bit构成。每一比特仅能包含两种不同的值:1或0。所以,一字节仅能够表示256种不同的值,即2的八次方)。开发多字节字符编码方案是为了在基于字节的常规编码系统中表达超过256个字符。在你操作(trim、split、splice等等)多...
继续阅读 >
2014
11-07
11-07
PHP扩展之图像处理1——GD库使用及相关函数
范例Example#1使用PHP创建PNG格式图片<?phpheader("Content-type: image/png");$string = $_GET['text'];$im = imagecreatefrompng("images/button1.png");$orange = imagecolorallocate($im, 220, 210, 60);$px = (imagesx($im) - 7.5 * strlen($string)) / 2;imagestring($im, 3, $px, 9, $string, $o...
继续阅读 >
2014
11-07
11-07
PHP扩展之图像处理2——Gmagick库使用示例及相关类和函数
使用示例<?php//初始化一个新的Gmagick对象$image = new Gmagick('example.jpg');//通过加载的图片生成缩略图(保持纵横比). $image->thumbnailImage(100, 0);//创建图片的边框, 然后模拟图像使其看上去像一幅油画$image->borderImage("yellow", 8, 8)->oilPaintImage(0.3);//将当前图片写入到一个文件$image->write('example_thumbnail.jpg');?>相关和类函数1.Gmagick类Gmagick::addimage —添加一张新的图片到G...
继续阅读 >