<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>嘎嘎磨房 &#187; PHP</title>
	<atom:link href="http://www.5ga.cn/blog/archives/category/computer_technology/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.5ga.cn/blog</link>
	<description>嘎嘎的博客</description>
	<lastBuildDate>Wed, 18 Jan 2012 05:35:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Zend AMF Server 的使用笔记</title>
		<link>http://www.5ga.cn/blog/archives/2010/09/2052/</link>
		<comments>http://www.5ga.cn/blog/archives/2010/09/2052/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 10:15:47 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=2052</guid>
		<description><![CDATA[Zend_Amf是Zend Framework 1.7+的一部分。它提供了一种PHP头端对FlashPlayer和AIR的通信支持。Zend_Amf_Server采用的是AMF3格式。Adobe已经确定Zend_AMF为其官方合作伙伴，支持性应该可以得到一定的保证。 具体请参见：http://framework.zend.com/manual/en/zend.amf.html 下载请到：http://framework.zend.com/download/latest 当我们下载完毕后，取出压缩包中的”library”文件夹，将其放到web目录下。这时，需要将这个目录配置到PHP的”include_path”路径下，有两种方式：一种是直接修改”php.ini”的”include_path”，将library的绝对路径添加到上面；另一种是在php脚本中，使用ini_set()方法将其包含进去。第一种方法比较简便，但是如果没有环境配置权限的话，恐难执行，比如虚拟主机的用户，这时就可以采取第二种方式了。 先给出大家一个最简单实例文件:server.php 123456ini_set&#40;&#34;include_path&#34;,ini_get&#40;&#34;include_path&#34;&#41; . &#34;;library&#34;&#41;; require_once &#34;Zend/Amf/Server.php&#34;; require_once &#34;CustomClass.php&#34;; $server=new Zend_Amf_Server&#40;&#41;; $server-&#62;setClass&#40;&#34;CustomClass&#34;&#41;; echo&#40;$server-&#62;handle&#40;&#41;&#41;; 环境ok以后，我们首先需要包含进连接所必须的server文件”Zend/Amf/Server.php”。然后添加入我们自己所编写的类，例如CustomClass。再来new 一个 Zend_Amf_Server对象，setClass到CustomClass，最后echo($server->handle())。很多地方，包括官方文档，最后的时候直接用的是$server->handle()，但是我在使用的过程中发现这样是不行的，需要echo出来才行。 一个简单的发送和接收string类，可以这样： 12345class CustomClass&#123; &#160; &#160; public function customFunction &#40;$msg&#41;&#123; &#160; &#160; &#160; &#160; return &#34;here returns &#34;. &#160;$msg; &#160; &#160; &#125; &#125;]]></description>
			<content:encoded><![CDATA[<p><strong>Zend_Amf是Zend Framework 1.7+的一部分。它提供了一种PHP头端对FlashPlayer和AIR的通信支持。Zend_Amf_Server采用的是AMF3格式。Adobe已经确定Zend_AMF为其官方合作伙伴，支持性应该可以得到一定的保证。</strong><span id="more-2052"></span></p>
<p>具体请参见：http://framework.zend.com/manual/en/zend.amf.html<br />
下载请到：http://framework.zend.com/download/latest</p>
<p>当我们下载完毕后，取出压缩包中的”library”文件夹，将其放到web目录下。这时，需要将这个目录配置到PHP的”include_path”路径下，有两种方式：一种是直接修改”php.ini”的”include_path”，将library的绝对路径添加到上面；另一种是在php脚本中，使用ini_set()方法将其包含进去。第一种方法比较简便，但是如果没有环境配置权限的话，恐难执行，比如虚拟主机的用户，这时就可以采取第二种方式了。</p>
<p>先给出大家一个最简单实例文件:server.php</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;include_path&quot;</span><span style="color: #339933;">,</span><span style="color: #990000;">ini_get</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;include_path&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;;library&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">&quot;Zend/Amf/Server.php&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">require_once</span> <span style="color: #0000ff;">&quot;CustomClass.php&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$server</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">new</span> Zend_Amf_Server<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$server</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setClass</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;CustomClass&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$server</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">handle</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>环境ok以后，我们首先需要包含进连接所必须的server文件”Zend/Amf/Server.php”。然后添加入我们自己所编写的类，例如CustomClass。再来new 一个 Zend_Amf_Server对象，setClass到CustomClass，最后echo($server->handle())。很多地方，包括官方文档，最后的时候直接用的是$server->handle()，但是我在使用的过程中发现这样是不行的，需要echo出来才行。</p>
<p>一个简单的发送和接收string类，可以这样：</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">class</span> CustomClass<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> customFunction <span style="color: #009900;">&#40;</span><span style="color: #000088;">$msg</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #0000ff;">&quot;here returns &quot;</span><span style="color: #339933;">.</span> &nbsp;<span style="color: #000088;">$msg</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2010/09/2052/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP中的PDO函数库(PDO Functions)</title>
		<link>http://www.5ga.cn/blog/archives/2010/08/2034/</link>
		<comments>http://www.5ga.cn/blog/archives/2010/08/2034/#comments</comments>
		<pubDate>Sun, 29 Aug 2010 20:07:52 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[PDO]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=2034</guid>
		<description><![CDATA[PDO是一个“数据库访问抽象层”，作用是统一各种数据库的访问接口，与mysql和mysqli的函数库相比，PDO让跨数据库的使用更具有亲和力；与ADODB和MDB2相比，PDO更高效。目前而言，实现“数据库抽象层”任重而道远，使用PDO这样的“数据库访问抽象层”是一个不错的选择。 1234567891011121314PDO-&#62;beginTransaction&#40;&#41; — 标明回滚起始点 PDO-&#62;commit&#40;&#41; — 标明回滚结束点，并执行SQL PDO-&#62;__construct&#40;&#41; — 建立一个PDO链接数据库的实例 PDO-&#62;errorCode&#40;&#41; — 获取错误码 PDO-&#62;errorInfo&#40;&#41; — 获取错误的信息 PDO-&#62;exec&#40;&#41; — 处理一条SQL语句，并返回所影响的条目数 PDO-&#62;getAttribute&#40;&#41; — 获取一个“数据库连接对象”的属性 PDO-&#62;getAvailableDrivers&#40;&#41; — 获取有效的PDO驱动器名称 PDO-&#62;lastInsertId&#40;&#41; — 获取写入的最后一条数据的主键值 PDO-&#62;prepare&#40;&#41; — 生成一个“查询对象” PDO-&#62;query&#40;&#41; — 处理一条SQL语句，并返回一个“PDOStatement” PDO-&#62;quote&#40;&#41; — 为某个SQL中的字符串添加引号 PDO-&#62;rollBack&#40;&#41; — 执行回滚 PDO-&#62;setAttribute&#40;&#41; — 为一个“数据库连接对象”设定属性 123456789101112131415161718PDOStatement-&#62;bindColumn&#40;&#41; — Bind a column to a PHP variable PDOStatement-&#62;bindParam&#40;&#41; — Binds [...]]]></description>
			<content:encoded><![CDATA[<p>PDO是一个“数据库访问抽象层”，作用是统一各种数据库的访问接口，与mysql和mysqli的函数库相比，PDO让跨数据库的使用更具有亲和力；与ADODB和MDB2相比，PDO更高效。目前而言，实现“数据库抽象层”任重而道远，使用PDO这样的“数据库访问抽象层”是一个不错的选择。</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">beginTransaction</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 标明回滚起始点<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">commit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 标明回滚结束点，并执行SQL<br />
PDO<span style="color: #339933;">-&gt;</span>__construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 建立一个PDO链接数据库的实例<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">errorCode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 获取错误码<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">errorInfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 获取错误的信息<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 处理一条SQL语句，并返回所影响的条目数<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 获取一个“数据库连接对象”的属性<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">getAvailableDrivers</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 获取有效的PDO驱动器名称<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">lastInsertId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 获取写入的最后一条数据的主键值<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 生成一个“查询对象”<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 处理一条SQL语句，并返回一个“PDOStatement”<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">quote</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 为某个SQL中的字符串添加引号<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">rollBack</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 执行回滚<br />
PDO<span style="color: #339933;">-&gt;</span><span style="color: #004000;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — 为一个“数据库连接对象”设定属性</div></td></tr></tbody></table></div>
<p><span id="more-2034"></span></p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">bindColumn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Bind a column to a PHP variable<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">bindParam</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Binds a parameter to the specified variable name<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">bindValue</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Binds a value to a parameter<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">closeCursor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Closes the cursor<span style="color: #339933;">,</span> enabling the statement to be executed again<span style="color: #339933;">.</span><br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">columnCount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Returns the number of columns in the result set<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">errorCode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Fetch the SQLSTATE associated with the last operation on the statement handle<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">errorInfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Fetch extended error information associated with the last operation on the statement handle<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">execute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Executes a prepared statement<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetch</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Fetches the <span style="color: #990000;">next</span> row from a result set<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetchAll</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Returns an <span style="color: #990000;">array</span> containing all of the result set rows<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetchColumn</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Returns a single column from the <span style="color: #990000;">next</span> row of a result set<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">fetchObject</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Fetches the <span style="color: #990000;">next</span> row and returns it <span style="color: #b1b100;">as</span> an object<span style="color: #339933;">.</span><br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">getAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Retrieve a statement attribute<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">getColumnMeta</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Returns metadata <span style="color: #b1b100;">for</span> a column in a result set<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">nextRowset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Advances to the <span style="color: #990000;">next</span> rowset in a multi<span style="color: #339933;">-</span>rowset statement handle<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">rowCount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Returns the number of rows affected by the last SQL statement<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Set a statement attribute<br />
PDOStatement<span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFetchMode</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> — Set the <span style="color: #b1b100;">default</span> fetch mode <span style="color: #b1b100;">for</span> this statement</div></td></tr></tbody></table></div>
<p>从函数列表可以看出，操作基于不同的对象，“PDO”表示的是一个数据库连接对象（new PDO产生），“PDOStatement”表示的是一个查询对象（PDO->query()产生）或者是一个结果集对象（PDO->prepare()产生）。<br />
一个“数据库连接对象”的例子，返回“PDO”：</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$dbh</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PDO<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mysql:host=localhost;dbname=test'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'root'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>一个“查询对象”的例子，返回“PDOStatement”：</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;INSERT INTO `test`.`table` (`name` ,`age`)VALUES (?, ?);&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$stmt</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dbh</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prepare</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>一个“结果集对象”的例子，返回“PDOStatement”：</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$sql</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;SELECT * FROM `table` WHERE `name` = 'samon'&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$stmt</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$dbh</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sql</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2010/08/2034/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flash使用AMF与PHP通信</title>
		<link>http://www.5ga.cn/blog/archives/2010/08/2027/</link>
		<comments>http://www.5ga.cn/blog/archives/2010/08/2027/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 06:25:51 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[FLASH]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[AMF]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=2027</guid>
		<description><![CDATA[1, 下载 amfphp 及其示例代码 : http://www.amfphp.org/ 2, amf核心放web目录,示例代码中的 services 放核心对应目录下 3, 修改 Main.as 的 gateway:String = “http://127.0.0.1/amfphp/gateway.php” 指向 web 目录 4, 修正: 核心中默认打开了session,不要就删掉session_start() 如果数据库是UTF-8编码,gateway.php中的编码设定: $gateway->setCharsetHandler(“none”, “ISO-8859-1&#8243;, “ISO-8859-1&#8243;); 作为加速,可加载AMFEXT扩展,使服务器支持AMF格式的编/解码: http://www.teslacore.it/wiki/index.php?title=AMFEXT Linux下的安装: sh# tar -zxvf amfext*.tgz sh# cd amfext* sh# phpize sh# ./configure sh# make sh# make install 将提示在相应目录下生成了: amf.so 文件 拷贝至扩展目录,并在php.ini文件下加入: extension=amf.so 重启apache gateway.php设置: $gateway->setCharsetHandler(“none”, “ISO-8859-1&#8243;, [...]]]></description>
			<content:encoded><![CDATA[<p>1, 下载 amfphp 及其示例代码 : http://www.amfphp.org/<br />
2, amf核心放web目录,示例代码中的 services 放核心对应目录下<br />
3, 修改 Main.as 的 gateway:String = “http://127.0.0.1/amfphp/gateway.php” 指向 web 目录<br />
4, 修正: 核心中默认打开了session,不要就删掉session_start()<br />
   如果数据库是UTF-8编码,gateway.php中的编码设定: $gateway->setCharsetHandler(“none”, “ISO-8859-1&#8243;, “ISO-8859-1&#8243;);<br />
   作为加速,可加载AMFEXT扩展,使服务器支持AMF格式的编/解码:</p>
<p>http://www.teslacore.it/wiki/index.php?title=AMFEXT</p>
<p><span id="more-2027"></span><br />
<strong>Linux下的安装:</strong><br />
sh# tar -zxvf amfext*.tgz<br />
sh# cd amfext*<br />
sh# phpize<br />
sh# ./configure<br />
sh# make<br />
sh# make install<br />
将提示在相应目录下生成了: amf.so 文件<br />
拷贝至扩展目录,并在php.ini文件下加入:<br />
extension=amf.so<br />
重启apache</p>
<p><strong>gateway.php设置:</strong><br />
$gateway->setCharsetHandler(“none”, “ISO-8859-1&#8243;, “ISO-8859-1&#8243;); //数据库UTF-8编码时调这个,注释后好像就OK了<br />
$gateway->logIncomingMessages(&#8216;./in/&#8217;); //调试用.flash传递过来的参数都会保存到此目录下,通过$HTTP_RAW_POST_DATA或php://input获取<br />
$gateway->logOutgoingMessages(&#8216;./out/&#8217;); //调试用.返回给flash的数据都会保存到此目录下<br />
$gateway->disableNativeExtension(); //禁用服务器amf扩展,如果加载了amfext扩展,由于此扩展有缺陷,就应该调用这个(如数字数组下标必须从0开始,否则出错)<br />
$gateway->enableGzipCompression(25*1024); //如果设置,则如果数据量大于此数将采取zlib压缩,需要zlib支持</p>
<p>flash传给php的参数没有经过任何处理,注意要 addslashes(),intval()等处理</p>
<p>amf3比amf0更高效,如果是flash9及以上的版本,可以用amf3:<br />
as3中:</p>
<div class="codecolorer-container actionscript3 mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.net</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">ObjectEncoding</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #000066; font-weight: bold;">...</span><br />
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>objConnect = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">NetConnection</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #0033ff; font-weight: bold;">this</span><span style="color: #000066; font-weight: bold;">.</span>objConnect<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">objectEncoding</span> = <span style="color: #004993;">ObjectEncoding</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">AMF3</span><span style="color: #000066; font-weight: bold;">;</span><br />
<span style="color: #009900; font-style: italic;">//调用写好的程序都要通过gateway.php去调用</span></div></td></tr></tbody></table></div>
<p>php中:<br />
修改 shared/app/Globals.php 中的 $amfphp['encoding'] = “amf0&#8243;; 为 $amfphp['encoding'] = “amf3&#8243;;</p>
<p><strong>AMF协议通讯抓包工具:</strong><br />
关键字: amf sniffer capture<br />
charlesproxy http://www.xk72.com/charles/ //试用30天,经测试可以看到AMF数据<br />
ieinspector http://www.ieinspector.com/index.html //可以看到AMF数据<br />
WebScarab http://www.owasp.org/index.php/Main_Page<br />
serviceCapture http://www.kevinlangdon.com/serviceCapture/ //14天试用<br />
httpdebugger http://www.httpdebugger.com/</p>
<p><strong>Flash播放器Debugger版:</strong></p>
<p>http://www.adobe.com/support/flashplayer/downloads.html</p>
<p><strong>AmfPHP的Bug:</strong><br />
1,flash端传负数,会得一个4亿多的值,http://www.visible-form.com/blog/sending-negative-integers-through-amfphp/解决:<br />
amfphp/amf/io/AMFDeserializer.php 文件中的readAmf3Int函数替换成:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">function</span> readAmf3Int<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$int</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">readByte</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$int</span> <span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$int</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$int</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$int</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0x7f</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$tmp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">readByte</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmp</span> <span style="color: #339933;">&lt;</span><span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$int</span> <span style="color: #339933;">|=</span> <span style="color: #000088;">$tmp</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$int</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$int</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmp</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0x7f</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$tmp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">readByte</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmp</span> <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">128</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$int</span> <span style="color: #339933;">|=</span> <span style="color: #000088;">$tmp</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$int</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$int</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$tmp</span> <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0x7f</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;&lt;</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$tmp</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">readByte</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$int</span> <span style="color: #339933;">|=</span> <span style="color: #000088;">$tmp</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$mask</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">&lt;&lt;</span><span style="color: #cc66cc;">28</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$res</span> <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$int</span> <span style="color: #339933;">&amp;</span> <span style="color: #000088;">$mask</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #000088;">$int</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$res</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>2,amfphp/shared/adapters/zendrowsetAdapter.php 最后两行有语法错误</p>
<p>刚安装好后的错误,处理方法:<br />
Error #2044: 未处理的 NetStatusEvent:。 level=error, code=NetConnection.Call.BadVersion。<br />
打开amf/gateway.php，找到代码：</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>PRODUCTION_SERVER<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//Disable profiling, remote tracing, and service browser</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//$gateway-&gt;disableDebug();//注释</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Keep the Flash/Flex IDE player from connecting to the gateway. Used for security to stop remote connections. </span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">//$gateway-&gt;disableStandalonePlayer();//注释</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2010/08/2027/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP递归网上邻居的共享文件夹</title>
		<link>http://www.5ga.cn/blog/archives/2010/05/1999/</link>
		<comments>http://www.5ga.cn/blog/archives/2010/05/1999/#comments</comments>
		<pubDate>Tue, 04 May 2010 08:42:10 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=1999</guid>
		<description><![CDATA[PHP遍历本地服务器上的文件夹都没什么问题,但是遍历网上邻居的文件夹就需要些技巧了,下面是我测试通过的遍历方法,主要使用CMD命令的 “net use” 映射了网上邻居的文件夹,这样就可以像遍历本地文件那样操作了,遍历文件夹使用了递归函数,可以一次到低.不过比较大的磁盘要小心了,会用很长的时间的! :) 123456789101112131415161718192021222324252627282930$location = '\\192.168.0.1\HughOther'; $letter = 't:'; $user = ''; $pass = ''; $linkStr = 'net use '.$letter.' '.$location; //最终命令为 //system('net use t: \\192.168.0.1\HughOther /user:admin pass /persistent:no'); if&#40;$user != ''&#41; &#123; &#160; &#160; $linkStr .= ' /user:'.$user; &#125; if&#40;$pass != ''&#41; &#123; &#160; &#160; $linkStr .= ' '.$pass; &#125; $linkStr .= [...]]]></description>
			<content:encoded><![CDATA[<p>PHP遍历本地服务器上的文件夹都没什么问题,但是遍历网上邻居的文件夹就需要些技巧了,下面是我测试通过的遍历方法,主要使用CMD命令的 <strong>“net use”</strong> 映射了网上邻居的文件夹,这样就可以像遍历本地文件那样操作了,遍历文件夹使用了递归函数,可以一次到低.不过比较大的磁盘要小心了,会用很长的时间的! :)</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$location</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'\\192.168.0.1\HughOther'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$letter</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'t:'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$user</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$pass</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$linkStr</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'net use '</span><span style="color: #339933;">.</span><span style="color: #000088;">$letter</span><span style="color: #339933;">.</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">.</span><span style="color: #000088;">$location</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//最终命令为</span><br />
<span style="color: #666666; font-style: italic;">//system('net use t: \\192.168.0.1\HughOther /user:admin pass /persistent:no');</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$linkStr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' /user:'</span><span style="color: #339933;">.</span><span style="color: #000088;">$user</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$pass</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$linkStr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' '</span><span style="color: #339933;">.</span><span style="color: #000088;">$pass</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #000088;">$linkStr</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' /persistent:no'</span><span style="color: #339933;">;</span><br />
<span style="color: #990000;">system</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$linkStr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
file_list<span style="color: #009900;">&#40;</span><span style="color: #000088;">$letter</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">function</span> file_list<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span> <span style="color: #339933;">=</span> <span style="color: #990000;">opendir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">false</span> <span style="color: #339933;">!==</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">readdir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$handle</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;.&quot;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$file</span> <span style="color: #339933;">!=</span> <span style="color: #0000ff;">&quot;..&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">is_dir</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br&gt;&quot;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//去掉此行显示的是所有的非目录文件</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; file_list<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$path</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;: &quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$file</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;&lt;br&gt;&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2010/05/1999/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP和系统COM端口通信</title>
		<link>http://www.5ga.cn/blog/archives/2010/03/1986/</link>
		<comments>http://www.5ga.cn/blog/archives/2010/03/1986/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 06:45:26 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=1986</guid>
		<description><![CDATA[刚在看Flash和COM端口通讯的时候,随便先把五年前写的PHP和COM口打印机通信的程序贴出来!这个是小型打印机的协议. 1234567891011121314151617181920$print=&#34;　　　【Aone自助式数字商店】\n　 请将『产品编号』报于电话接线员\n………………………………………………\n&#34;; $print.=&#34;产品编号:&#34;.$row_info&#91;'id_number'&#93;.$pc.&#34;\n&#34;; $print.=&#34;名　　称：&#34;.$row_info&#91;'caption'&#93;.&#34;\n&#34;; $print.=&#34;售　　价：&#34;.$row_info&#91;'price'&#93;.&#34;\n&#34;; $print.=&#34;数　　量：&#34;; if&#40;!isset&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;&#41; &#124;&#124; $_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;1&#34;&#41;&#123;$print.=&#34;一本\n&#34;; &#125;else if&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;2&#34;&#41;&#123;$print.=&#34;二本\n&#34;; &#125;else if&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;3&#34;&#41;&#123;$print.=&#34;三本\n&#34;; &#125;else if&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;4&#34;&#41;&#123;$print.=&#34;四本\n&#34;; &#125;else if&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;5&#34;&#41;&#123;$print.=&#34;五本\n&#34;; &#125;else if&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;6&#34;&#41;&#123;$print.=&#34;六本\n&#34;; &#125;else if&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;7&#34;&#41;&#123;$print.=&#34;七本\n&#34;; &#125;else if&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;8&#34;&#41;&#123;$print.=&#34;八本\n&#34;; &#125;else if&#40;$_SESSION&#91;&#34;book_unmber&#34;&#93;==&#34;9&#34;&#41;&#123;$print.=&#34;九本\n&#34;;&#125; $print.=&#34;总　　价:&#34;.$row_info&#91;'price'&#93;*$_SESSION&#91;&#34;book_unmber&#34;&#93;.&#34;元\n&#34;; $print.=&#34;出货时间:&#34;.$row_info&#91;'shipment_time'&#93;.&#34;\n&#34;; $print.=&#34;………………………………………………\n〈商品订购单〉 &#160; 订购热线：8888888\n&#34;; $print.=&#34;\x0a\x0a\x0a\x0a\x1B\x40\x1B\x69&#34;;//加入全切\x1B\x40\x1B\x69 $print_to=fopen&#40;&#34;COM1&#34;,'a'&#41;; $goto_print=fwrite&#40;$print_to,$print&#41;; BS-300K常见命令集 1、换行 LPRINT CHR$（10） 2.换页 LPRINT CHR$（12） 3、PK模式驱动钱箱指令 ESC &#124; r F9 M n1 n2 M =0 代表一个钱箱 n代表脉冲宽度 n1 =40&#8211;50 [...]]]></description>
			<content:encoded><![CDATA[<p>刚在看Flash和COM端口通讯的时候,随便先把五年前写的PHP和COM口打印机通信的程序贴出来!这个是小型打印机的协议.<br />
<span id="more-1986"></span></p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$print</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;　　　【Aone自助式数字商店】<span style="color: #000099; font-weight: bold;">\n</span>　 请将『产品编号』报于电话接线员<span style="color: #000099; font-weight: bold;">\n</span>………………………………………………<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;产品编号:&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$row_info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id_number'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #000088;">$pc</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;名　　称：&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$row_info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'caption'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;售　　价：&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$row_info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'price'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;数　　量：&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;一本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;二本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;三本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;4&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;四本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;5&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;五本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;6&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;六本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;7&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;七本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;八本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;9&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;九本<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><span style="color: #009900;">&#125;</span><br />
<span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;总　　价:&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$row_info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'price'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">*</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;book_unmber&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;元<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;出货时间:&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$row_info</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'shipment_time'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;………………………………………………<span style="color: #000099; font-weight: bold;">\n</span>〈商品订购单〉 &nbsp; 订购热线：8888888<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$print</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">&quot;<span style="color: #660099; font-weight: bold;">\x0a</span><span style="color: #660099; font-weight: bold;">\x0a</span><span style="color: #660099; font-weight: bold;">\x0a</span><span style="color: #660099; font-weight: bold;">\x0a</span><span style="color: #660099; font-weight: bold;">\x1B</span><span style="color: #660099; font-weight: bold;">\x40</span><span style="color: #660099; font-weight: bold;">\x1B</span><span style="color: #660099; font-weight: bold;">\x69</span>&quot;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//加入全切\x1B\x40\x1B\x69</span><br />
<span style="color: #000088;">$print_to</span><span style="color: #339933;">=</span><span style="color: #990000;">fopen</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;COM1&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'a'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$goto_print</span><span style="color: #339933;">=</span><span style="color: #990000;">fwrite</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$print_to</span><span style="color: #339933;">,</span><span style="color: #000088;">$print</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>BS-300K常见命令集</p>
<p>1、换行        LPRINT    CHR$（10）</p>
<p>2.换页         LPRINT    CHR$（12）</p>
<p>3、PK模式驱动钱箱指令<br />
ESC   |   r   F9   M   n1   n2<br />
          M =0 代表一个钱箱       n代表脉冲宽度    n1 =40&#8211;50  之间<br />
          M =1 代表两个钱箱                        n2 =120&#8211;150之间<br />
QBASIC下编程<br />
          LPRINT    CHR$（27）；“｜”；“r”；ＣHR$(249)；CHR$(0)； CH$(50)；CH$(150)<br />
3、POS模式驱动钱箱指令<br />
           LPRINT    CHR$(27)；CHR$(112)；CHR(0)；CHR(50)；CHR$(200)</p>
<p>4、 BS300K可同时打开两个钱箱    能接     2、4<br />
                                      4、5钱箱就能打开<br />
5、条码打印指令                                                      6 5 4 3 2 1<br />
   LPRINT   CHR$(28)；CHR$(80)；CHR$(1)；CHR$(2)；CHR$(2)；CHR$(3)；CHR$(12)；“012345678901”<br />
   LPRINT   CHR$(28)；CHR$(80)；CHR$(2)；CHR$(2)；CHR$(2)；CHR$(3)；CHR$(7)；“ 4718290”<br />
   LPRINT   CHR$(28)；CHR$(80)；CHR$(3)；CHR$(2)；CHR$(2)；CHR$(3)；CHR$(11)；“012345678900”<br />
   LPRINT   CHR$(28)；CHR$(80)；CHR$(4)；CHR$(2)；CHR$(2)；CHR$(3)；CHR$(7)；“0143121”<br />
   LPRINT   CHR$(28)；CHR$(80)；CHR$(5)；CHR$(2)；CHR$(2)；CHR$(3)；CHR$(8)；“*C0DE39*”<br />
   LPRINT   CHR$(28)；CHR$(80)；CHR$(6)；CHR$(2)；CHR$(3)；CHR$(3)；CHR$(4)；“3214”<br />
   LPRINT   CHR$(28)；CHR$(80)；CHR$(7)；CHR$(2)；CHR$(2)；CHR$(3)；CHR$(5)；“D123D”<br />
   LPRINT   CHR$(28)；CHR$(80)；CHR$(8)；CHR$(2)；CHR$(2)；CHR$(3)；CHR$(5)；CHR$(137);“C128”</p>
<p>6、换页功能指令<br />
   LPRINT   CHR$(27)；“|”；“w”； CHR$(36)；CHR$(1)；<br />
                                                            1为屏蔽换页<br />
                                                            0为起换页功能<br />
7.切纸刀在PK模式下切纸<br />
  10  FOR  i=1  TO  10<br />
  20  FOR  j=1  TO  10<br />
  30  LPRINT  “0123456789&#8243;<br />
  35  NEX  J<br />
  40  LPRINT<br />
  41  LPRINT<br />
  42  LPRINT<br />
  43  LPRINT<br />
  44  LPRINT<br />
  45  LPRINT<br />
  46  LPRINT<br />
  47  LPRINT<br />
  50  LPRINT  CHR$(27);  “|”  “r”; CHR$(&#038;HFA)<br />
  60  NEXT<br />
  70  END</p>
<p>8.切纸刀在POS模式下切纸<br />
  10  FOR  i=1  TO  10<br />
  20  FOR  j=1  TO  10<br />
  30  LPRINT  “0123456789&#8243;<br />
  35  NEX  J<br />
  40  LPRINT<br />
  41  LPRINT<br />
  42  LPRINT<br />
  43  LPRINT<br />
  44  LPRINT<br />
  45  LPRINT<br />
  46  LPRINT<br />
  47  LPRINT<br />
  50  LPRINT  CHR$(27);  “i”;  CHR$(0)<br />
  60  NEXT                                  0全切<br />
  70  END                                   1半切    </p>
<p>9  黑标检测功能<br />
   10  LPRINT    CHR$（27）；“C”；CHR$(60)；<br />
                                                       找黑标打印范围<br />
   20  LPRINT    CHR$（27）；“｜r”；ＣHR$(&#038;HF5)；<br />
                                                       找到黑标打印<br />
   30  LPRINT    “123456&#8243;<br />
   40  LPRINT    “abcdef”<br />
   50  LPRINT    “efghj”</p>
<p>10  设定单向或双向打印<br />
      LPRINT    CHR$（27）；CHR$（85）； CHR$(1)；<br />
                                                           “1”为单向打印<br />
                                                           “0”双向打印</p>
<p>11   在windows开钱箱<br />
 LPRINT CHR$（27）；“｜w”；CHR$（45）；CHR$(2)；<br />
                                                     “0&#8243;  FF走纸命令时钱箱无効<br />
                                                     “1&#8243;钱箱1打开<br />
                                                     “2&#8243;钱箱2打开    </p>
<p>  12、通力克公司入纸、换页、定页长<br />
      10 LPRINT    CHR$（27）；“｜w”；ＣHR$(1)；CHR$(0)；<br />
      20 LPRINT    CHR$（27）；“｜w”；ＣHR$(2)；CHR$(0)；<br />
      60 LPRINT    CHR$（27）；“｜w”；ＣHR$(36)；CHR$(0)；<br />
      70 LPRINT    CHR$（27）；“｜w”；ＣHR$(40)；CHR$(0)；<br />
      80 LPRINT    CHR$（27）；“｜w”；ＣHR$(38)；CHR$(0)；<br />
      90 LPRINT    CHR$（27）；“｜w”；ＣHR$(39)；CHR$(0)；<br />
     110 LPRINT    CHR$（27）；“｜w”；ＣHR$(41)；CHR$(0)；<br />
     120 LPRINT    CHR$（27）；“｜w”；ＣHR$(42)；CHR$(0)；<br />
     130 END</p>
<p>13、BS300K中可通过接口对以下各单元进行设置，格式如下：（以QBASIC为例）<br />
     10  LPRINT  CHR$(27);”|W”;CHR$(n1);CHR$(n2)<br />
     20  END<br />
                                     N1表示单元位置，N2表示对单元写入值<br />
15、切纸刀切纸生效指令<br />
   LPRINT   CHR$(27)；“|”；“w”； CHR$(47)；CHR$(1)；</p>
<p>14  N1单元位置<br />
     1   开机初始入纸的位置，高8位，出厂值=02H<br />
     2   开机初始入纸的位置，低8位，出厂值=5CH，即从检测纸传感器位置走纸025CH/432  英 寸。<br />
     32  =AAH则允许条码打印，=0则不打（出厂=0）。<br />
     36	=1，换页（FF）命令无效，=0有效（=0）。<br />
     38  页长调整，低8位。<br />
     39  页长调整，高8位 ，若该单元bit7=1,则为负调整；bit7=0,为正向调整，值为（39）（38） AND 7FFFH。<br />
     40  换页时的切纸功能，=0，无效；=1，有效（=0）。<br />
     41  切纸时往上走纸距离的高8位，（=01H）。<br />
     42  切纸时往上走纸距离的低8位，（=0DCH），单位=1/432英寸。<br />
     43  切纸时往下退纸距离的高8位，（=01H）。<br />
     44  切纸时往下退纸距离的高8位，（=0DCH），单位=1/432英寸。<br />
如要使用切纸功能，需要先使（36）=0，（40）=1，然后对（41），（42），（43），（44）的值做相应调整。</p>
<p>15注意事项:<br />
   当打印机检测到错误时，会用面板的LED来提示错误类型：<br />
   1  ONLINE灯闪，打印头电机部分出错。<br />
   2  READY灯闪，EEPROM读/写出错。<br />
   3  PAPER灯闪，RAM出错 。<br />
   4  ONLINE+READY灯闪，打印头温度过高，或热敏电阻出错。<br />
   5  ONLINE+PAPER灯闪，切纸刀不能复位。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2010/03/1986/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AMFphp 的简介</title>
		<link>http://www.5ga.cn/blog/archives/2009/11/1832/</link>
		<comments>http://www.5ga.cn/blog/archives/2009/11/1832/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 05:48:36 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[FLASH]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[AMFPHP]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=1832</guid>
		<description><![CDATA[　　AMFPHP实际上是一个提供了FLEX等类型的客户端和PHP服务器端程序的一个开源的，免费通讯机制，它可以使得FLEX等客户端和服务器的PHP程序之间基于数据结果的交换。flash里自己有个二进制的数据传输协议Amf， 幸好php里有个amfphp,那就很方便了， 协议会自动转换php和flash的数据类型，本来都是动态语言，啥都好办。 　　那为什么需要AMFPHP呢？ 　　事实上FLEX本身就提供和和服务器端交互的各种手段，比如HTTPSERVICE组件本来就可以轻易调用基于 PHP或者其他语言的服务器端程序来获得结果，但是很显然它是基于HTTP的文本协议，对于大量数据的交换显然不是非常高效，所以AMFPHP在设计的时候就考虑到这个问题，它通过使用二进制协议来提高通讯的效率，从而提高了在传输大量数据的时候的效率。 　　还有一个优点就是，AMFPHP会自动处理PHP端的数据类型到FLEX客户端的数据类型的匹配，从而降低了FLEX使用PHP服务端程序的成本。 　　那么，一般如何使用AMFPHP呢？ 　　最普通的用法是一般把AMFPHP部署在服务器端，它可以去数据库里去取得各种数据，然后返回给FLEX的DataGrid组件来展示，而对于FLEX客户端，在正确配置后只需要像调用FLEX本地方法一样来取得PHP服务器端程序返回的数据！ AMFPHP的官网：http://www.amfphp.org/ 另外要安装个可以提升性能的东东：http://www.teslacore.it/wiki/index.php?title=AMFEXT 将amfphp放到php项目目录下就可以使用了。 注意将Remote Service php 放到 amfphp\services 目录里面就可以使用了，很简单。 贴个session的例子： flash端： 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758// Wade Arnold: 1/6/2008 // Example is designed to show how to use PHP sessions. package &#123; &#160; &#160; // required for flash file and output display &#160; &#160; import flash.display.MovieClip; &#160; &#160; import fl.events.*; [...]]]></description>
			<content:encoded><![CDATA[<p>　　AMFPHP实际上是一个提供了FLEX等类型的客户端和PHP服务器端程序的一个开源的，免费通讯机制，它可以使得FLEX等客户端和服务器的PHP程序之间基于数据结果的交换。flash里自己有个二进制的数据传输协议Amf， 幸好php里有个amfphp,那就很方便了， 协议会自动转换php和flash的数据类型，本来都是动态语言，啥都好办。<span id="more-1832"></span></p>
<p>　　那为什么需要AMFPHP呢？</p>
<p>　　事实上FLEX本身就提供和和服务器端交互的各种手段，比如HTTPSERVICE组件本来就可以轻易调用基于 PHP或者其他语言的服务器端程序来获得结果，但是很显然它是基于HTTP的文本协议，对于大量数据的交换显然不是非常高效，所以AMFPHP在设计的时候就考虑到这个问题，它通过使用二进制协议来提高通讯的效率，从而提高了在传输大量数据的时候的效率。</p>
<p>　　还有一个优点就是，AMFPHP会自动处理PHP端的数据类型到FLEX客户端的数据类型的匹配，从而降低了FLEX使用PHP服务端程序的成本。</p>
<p>　　那么，一般如何使用AMFPHP呢？</p>
<p>　　最普通的用法是一般把AMFPHP部署在服务器端，它可以去数据库里去取得各种数据，然后返回给FLEX的DataGrid组件来展示，而对于FLEX客户端，在正确配置后只需要像调用FLEX本地方法一样来取得PHP服务器端程序返回的数据！</p>
<p>AMFPHP的官网：<a href="http://www.amfphp.org/" target="_blank"><strong>http://www.amfphp.org/</strong></a></p>
<p>另外要安装个可以提升性能的东东：<a href="http://www.teslacore.it/wiki/index.php?title=AMFEXT" target="_blank">http://www.teslacore.it/wiki/index.php?title=AMFEXT</a><br />
将amfphp放到php项目目录下就可以使用了。<br />
注意将Remote Service php 放到 amfphp\services 目录里面就可以使用了，很简单。</p>
<p>贴个session的例子：<br />
flash端：</p>
<div class="codecolorer-container actionscript3 mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br /></div></td><td><div class="actionscript3 codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900; font-style: italic;">// Wade Arnold: 1/6/2008</span><br />
<span style="color: #009900; font-style: italic;">// Example is designed to show how to use PHP sessions.</span><br />
<span style="color: #9900cc; font-weight: bold;">package</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// required for flash file and output display</span><br />
&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.display</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">MovieClip</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">import</span> fl<span style="color: #000066; font-weight: bold;">.</span>events<span style="color: #000066; font-weight: bold;">.*;</span><br />
&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.events</span><span style="color: #000066; font-weight: bold;">.*;</span><br />
&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// required to send/recieve data over AMF</span><br />
&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.net</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">NetConnection</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">import</span> <span style="color: #004993;">flash.net</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">Responder</span><span style="color: #000066; font-weight: bold;">;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Flash CS3 Document Class.</span><br />
&nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #9900cc; font-weight: bold;">class</span> Counter <span style="color: #0033ff; font-weight: bold;">extends</span> <span style="color: #004993;">MovieClip</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> gateway<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">String</span> = <span style="color: #990000;">&quot;http://localhost/server/amfphp/gateway.php&quot;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> connection<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">NetConnection</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #6699cc; font-weight: bold;">var</span> responder<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Responder</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> Counter<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;AMFPHP Session Counter Example&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Event listner for buttons</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; increment_btn<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">CLICK</span><span style="color: #000066; font-weight: bold;">,</span> incrementCounter<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; reset_btn<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">CLICK</span><span style="color: #000066; font-weight: bold;">,</span> resetCounter<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; destroy_btn<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">addEventListener</span><span style="color: #000000;">&#40;</span><span style="color: #004993;">MouseEvent</span><span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">CLICK</span><span style="color: #000066; font-weight: bold;">,</span> destroySession<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Responder to handle data returned from AMFPHP.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; responder = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Responder</span><span style="color: #000000;">&#40;</span>onResult<span style="color: #000066; font-weight: bold;">,</span> onFault<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; connection = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">NetConnection</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Gateway.php url for NetConnection</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; connection<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">connect</span><span style="color: #000000;">&#40;</span>gateway<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Method run when the &quot;Increment Counter&quot; button is clicked.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> incrementCounter<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Send the data to the remote server.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; connection<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">call</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Counter.increment&quot;</span><span style="color: #000066; font-weight: bold;">,</span> responder<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Method run when the &quot;Rest Counter&quot; button is clicked.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> resetCounter<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Send the data to the remote server.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; connection<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">call</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Counter.unregister&quot;</span><span style="color: #000066; font-weight: bold;">,</span> responder<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Method run when the &quot;Destroy Session&quot; button is clicked.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">public</span> <span style="color: #339966; font-weight: bold;">function</span> destroySession<span style="color: #000000;">&#40;</span>e<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">MouseEvent</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Send the data to the remote server.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; connection<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">call</span><span style="color: #000000;">&#40;</span><span style="color: #990000;">&quot;Counter.destroy&quot;</span><span style="color: #000066; font-weight: bold;">,</span> responder<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Handle a successful AMF call. This method is defined by the responder.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> onResult<span style="color: #000000;">&#40;</span>result<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Object</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response_txt<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #004993;">String</span><span style="color: #000000;">&#40;</span>result<span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900; font-style: italic;">// Handle an unsuccessfull AMF call. This is method is dedined by the responder.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0033ff; font-weight: bold;">private</span> <span style="color: #339966; font-weight: bold;">function</span> onFault<span style="color: #000000;">&#40;</span>fault<span style="color: #000066; font-weight: bold;">:</span><span style="color: #004993;">Object</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">:</span><span style="color: #0033ff; font-weight: bold;">void</span> <span style="color: #000000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; response_txt<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">text</span> = <span style="color: #004993;">String</span><span style="color: #000000;">&#40;</span>fault<span style="color: #000066; font-weight: bold;">.</span><span style="color: #004993;">description</span><span style="color: #000000;">&#41;</span><span style="color: #000066; font-weight: bold;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #000000;">&#125;</span><br />
<span style="color: #000000;">&#125;</span></div></td></tr></tbody></table></div>
<p>php端：</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">// Wade Arnold: 1/6/2008</span><br />
<span style="color: #666666; font-style: italic;">// Example is designed to show how to use PHP sessions.</span><br />
<span style="color: #000000; font-weight: bold;">class</span> Counter <span style="color: #009900;">&#123;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> __construct<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Check if the session is available or create it.</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'count'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'count'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// Used to increment the session variable count.</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> increment<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'count'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">++;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'count'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// used to destroy the session variable and start over.</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> unregister<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">unset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SESSION</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'count'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// remove the entire session from the server.</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> destroy<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #990000;">session_destroy</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>　　YY两句，看到热血三国的通讯方式竟然是amfphp的RPC通讯方式的， 这样的话编程模型跟普通的web项目开发就一模一样了， 现在只是说使用了Flash界面而已，开发难度大幅度降低。<br />
　　想想也是， 策略类的游戏，没必要使用客户端游戏的那种socket编程模型，开发起来复杂多了。可能游戏玩法不一样引起的。如果是有实时战斗的玩法，那必须得socket编程了吧。 </p>
<p>1. 英文相关文章</p>
<ul>
<li><span><a href="http://www.flash-db.com/" target="_blank">flash-db.com tutorials and forum on AMFPHP</a></span></li>
<li><span><a href="http://www.sephiroth.it/" target="_blank">sephiroth.it tutorials and blog on AMFPHP</a></span></li>
<li><span><a href="http://www.macromedia.com/devnet/mx/flashremoting/" target="_blank">Macromedia Remoting Developer Center</a></span></li>
<li><span><a href="http://chattyfig.figleaf.com/" target="_blank">flashcoders mailing list</a></span></li>
<li><span><a href="http://sourceforge.net/mail/?group_id=72483" target="_blank">amfphp mailing list</a></span></li>
<li><span><a href="http://www.5etdemi.com/blog" target="_blank">AMFPHP development blog</a></span></li>
<li><span><a href="http://www.flash-remoting.com/" target="_blank">Flash Remoting book companion site</a></span></li>
<li><span><a href="http://www.herrodius.com/blog/?p=23" target="_blank">Setting up PHP on your webserver</a></span></li>
<li><a href="http://soenkerohde.com/tutorials/amfphp">Sönke Rohde &#8211; tutorial</a></li>
<li><a href="http://www.jessewarden.com/archives/2005/06/flash_flex_amfp.html">Jesse Warden &#8211; Flash, Flex and AMFPHP</a></li>
<li><a href="http://www.swapdepths.nl/category/amfphp">SwapDepths tutorials</a></li>
</ul>
<p>2. 中文相关文章</p>
<ul>
<li><span><a href="http://ria.richtechmedia.com/index.php?cat=25" target="_blank">AMFPHP v1.0 MS2 tutorials</a></span></li>
<li><span><a href="http://ria.richtechmedia.com/?p=203" target="_blank">download, install, hello world</a></span></li>
<li><span><a href="http://ria.richtechmedia.com/?p=202" target="_blank">pageable recordset working examples</a></span></li>
<li><span><a href="http://ria.richtechmedia.com/?p=204" target="_blank">using web service with amfphp</a></span></li>
<li><span><a href="http://ria.richtechmedia.com/?p=205" target="_blank">authenticate with setCredential()</a></span></li>
<li><a href="http://blog.xuite.net/jameschih/java/5312447">Another hello world tutorial </a></li>
<li>luar的教学：<a href="http://www.luar.com.hk/flashbook/archives/000168.php">http://www.luar.com.hk/flashbook/archives/000168.php</a></li>
<li>淡湮mmug网聚教学：<a href="http://breezecentral.zerone.com.tw/p66309923/">http://breezecentral.zerone.com.tw/p66309923/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2009/11/1832/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>让WordPress在不同浏览器下选择不同CSS</title>
		<link>http://www.5ga.cn/blog/archives/2009/04/1442/</link>
		<comments>http://www.5ga.cn/blog/archives/2009/04/1442/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 06:04:45 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=1442</guid>
		<description><![CDATA[以前一直用”微软雅黑”做为博客的默认字体,后来发现使用”微软雅黑”在Window下的其他浏览器字体显示带很多锯齿,反而浏览不方便,下面我教大家实现不同浏览器到CSS选择. 打开FTP,把网页现在用的模板下的CSS复制一份,并从命名上传到FTP. 一般是在http://你的网址/blog/wp-content/themes/你选择的模板/下 我的是style.css,复制重命名一个style_other.css(作为除IE外地浏览器使用) 进入Wordpress博客后台,来到外观-&#62;编辑. 打开”头部 (header.php)” 找到下面这段: 1&#60;link rel=&#34;stylesheet&#34; href=&#34;&#60;?php bloginfo&#40;'stylesheet_url'&#41;; ?&#62;&#34; type=&#34;text/css&#34; media=&#34;screen&#34; /&#62; 修改为 12345678&#60;?php //判断浏览器类型,选择合适的CSS if&#40;ereg&#40;'Mozilla',$_SERVER&#91;&#34;HTTP_USER_AGENT&#34;&#93;&#41; &#38;&#38; ereg&#40;'MSIE',$_SERVER&#91;&#34;HTTP_USER_AGENT&#34;&#93;&#41;&#41;&#123; ?&#62; &#60;link rel=&#34;stylesheet&#34; href=&#34;&#60;?php bloginfo&#40;'stylesheet_url'&#41;; ?&#62;&#34; type=&#34;text/css&#34; media=&#34;screen&#34; /&#62; &#60;?php &#125; else &#123;?&#62; &#60;link rel=&#34;stylesheet&#34; href=&#34;http://你的网址/blog/wp-content/themes/你选择的模板/style_other.css&#34; type=&#34;text/css&#34; media=&#34;screen&#34; /&#62; &#60;?php &#125;?&#62; 浏览测试下吧! ^-^]]></description>
			<content:encoded><![CDATA[<p>以前一直用”微软雅黑”做为博客的默认字体,后来发现使用”微软雅黑”在Window下的其他浏览器字体显示带很多锯齿,反而浏览不方便,下面我教大家实现不同浏览器到CSS选择.<span id="more-1442"></span></p>
<ol>
<li>打开FTP,把网页现在用的模板下的CSS复制一份,并从命名上传到FTP.<br />
一般是在http://你的网址/blog/wp-content/themes/你选择的模板/下<br />
我的是style.css,复制重命名一个style_other.css(作为除IE外地浏览器使用)</li>
<li>进入Wordpress博客后台,来到外观-&gt;编辑.</li>
<li>打开”头部 (header.php)”</li>
</ol>
<p>找到下面这段:</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;link rel=&quot;stylesheet&quot; href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'stylesheet_url'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;</div></td></tr></tbody></table></div>
<p>修改为</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #666666; font-style: italic;">//判断浏览器类型,选择合适的CSS</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">ereg</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Mozilla'</span><span style="color: #339933;">,</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_USER_AGENT&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">ereg</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'MSIE'</span><span style="color: #339933;">,</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">&quot;HTTP_USER_AGENT&quot;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;link rel=&quot;stylesheet&quot; href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> bloginfo<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'stylesheet_url'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span><span style="color: #000000; font-weight: bold;">?&gt;</span><br />
&lt;link rel=&quot;stylesheet&quot; href=&quot;http://你的网址/blog/wp-content/themes/你选择的模板/style_other.css&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;<br />
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #009900;">&#125;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
<p>浏览测试下吧! ^-^</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2009/04/1442/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP的PDO模块应用</title>
		<link>http://www.5ga.cn/blog/archives/2008/12/1064/</link>
		<comments>http://www.5ga.cn/blog/archives/2008/12/1064/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 15:09:10 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=1064</guid>
		<description><![CDATA[最近对我的PHP后台框架进行些升级维护,决定引入JQuery,和PHP的一个数据库模块PDO,以前用的是自己写的类,作为方便以后使用其他数据库备用,由于现在的PDO中文帮助还是比较少,所以做一个笔记. 各各扩展所对应的数据库是： Driver name Supported databases PDO_DBLIB FreeTDS / Microsoft SQL Server / Sybase PDO_FIREBIRD Firebird/Interbase 6 PDO_INFORMIX IBM Informix Dynamic Server PDO_MYSQL MySQL 3.x/4.x PDO_OCI Oracle Call Interface PDO_ODBC ODBC v3 (IBM DB2, unixODBC and win32 ODBC) PDO_PGSQL PostgreSQL PDO_SQLITE SQLite 3 and SQLite 2 123456789101112131415161718$user='root';//数据库连接用户名 $pass='';//对应的密码 try&#123; $db = new PDO&#40;'mysql:host=localhost;dbname=test', $user, $pass,array&#40;PDO::ATTR_PERSISTENT [...]]]></description>
			<content:encoded><![CDATA[<p>最近对我的PHP后台框架进行些升级维护,决定引入JQuery,和PHP的一个数据库模块PDO,以前用的是自己写的类,作为方便以后使用其他数据库备用,由于现在的PDO中文帮助还是比较少,所以做一个笔记.<span id="more-1064"></span></p>
<p>各各扩展所对应的数据库是：</p>
<p>Driver name Supported databases<br />
<strong>PDO_DBLIB</strong> FreeTDS / Microsoft SQL Server / Sybase<br />
<strong>PDO_FIREBIRD</strong> Firebird/Interbase 6<br />
<strong>PDO_INFORMIX</strong> IBM Informix Dynamic Server<br />
<strong>PDO_MYSQL</strong> MySQL 3.x/4.x<br />
<strong>PDO_OCI</strong> Oracle Call Interface<br />
<strong>PDO_ODBC</strong> ODBC v3 (IBM DB2, unixODBC and win32 ODBC)<br />
<strong>PDO_PGSQL</strong> PostgreSQL<br />
<strong>PDO_SQLITE</strong> SQLite 3 and SQLite 2</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$user</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'root'</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//数据库连接用户名</span><br />
<span style="color: #000088;">$pass</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//对应的密码</span><br />
try<span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PDO<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'mysql:host=localhost;dbname=test'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$user</span><span style="color: #339933;">,</span> <span style="color: #000088;">$pass</span><span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>PDO<span style="color: #339933;">::</span><span style="color: #004000;">ATTR_PERSISTENT</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//初始化PDO对象</span><br />
<span style="color: #666666; font-style: italic;">//默认这个不是长连接，如果需要数据库长连接，需要最后加一个参数：array(PDO::ATTR_PERSISTENT =&amp;gt; true)</span><br />
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PDO<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'数据库类型:host=主机地址;dbname=数据库名'</span><span style="color: #339933;">,</span>用户名<span style="color: #339933;">,</span>密码<span style="color: #339933;">,</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>PDO<span style="color: #339933;">::</span><span style="color: #004000;">ATTR_PERSISTENT</span> <span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'SET NAMES \'utf8\''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//设置连接数据库的语言环境</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;连接成功&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">/*你还可以进行一次搜索操作<br />
foreach($dbh-&gt;query('SELECT * from gaga')as $row){<br />
print_r($row);//你可以用 echo($GLOBAL); 来看到这些值<br />
}<br />
*/</span><br />
<span style="color: #666666; font-style: italic;">//$db = null;</span><br />
<span style="color: #009900;">&#125;</span>catch<span style="color: #009900;">&#40;</span>PDOException<span style="color: #000088;">$e</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
<span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'数据库连接错误: '</span><span style="color: #339933;">.</span><span style="color: #000088;">$e</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'<br />
'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>$db-&gt;setAttribute(PDO::ATTR_CASE,PDO::CASE_UPPER); //设置属性</p>
<p>下面列出多有PDO::setAttribute()的参数：</p>
<p>PDO::ATTR_CASE: 强制列名变成一种格式，详细如下(第二个参数)：</p>
<ul>
<li>PDO::CASE_LOWER: 强制列名是小写.</li>
<li>PDO::CASE_NATURAL: 列名按照原始的方式</li>
<li>PDO::CASE_UPPER: 强制列名为大写.</li>
</ul>
<p>PDO::ATTR_ERRMODE: 错误提示.</p>
<ul>
<li>PDO::ERRMODE_SILENT: 不显示错误信息，只显示错误码.</li>
<li>PDO::ERRMODE_WARNING: 显示警告错误.</li>
<li>PDO::ERRMODE_EXCEPTION: 抛出异常.</li>
</ul>
<p>PDO::ATTR_ORACLE_NULLS(不仅仅是ORACLE有效，别的数据库也有效): ）指定数据库返回的NULL值在php中对应的数值。</p>
<ul>
<li>PDO::NULL_NATURAL: 不变.</li>
<li>PDO::NULL_EMPTY_STRING: Empty string is converted toNULL.</li>
<li>PDO::NULL_TO_STRING: NULL is converted to an empty string.</li>
</ul>
<p>PDO::ATTR_STRINGIFY_FETCHES: Convert numeric values to strings when fetching. Requiresbool.</p>
<p>PDO::ATTR_STATEMENT_CLASS: Set user-supplied statement class derived from PDOStatement. Cannot be used with persistent PDO instances. Requiresarray(string classname, array(mixed constructor_args)).</p>
<p>PDO::ATTR_AUTOCOMMIT(available in OCI, Firebird and MySQL): Whether to autocommit every single statement.</p>
<p>PDO::MYSQL_ATTR_USE_BUFFERED_QUERY(available in MySQL): Use buffered queries.</p>
<p>查询操作主要是<span style="color: #ff0000;"><strong>PDO::query()、PDO::exec()、PDO::prepare()</strong></span>。</p>
<p><strong><span style="color: #ff0000;">PDO::query()</span></strong>主要是用于有记录结果返回的操作，特别是SELECT操作，<br />
<span style="color: #ff0000;"><strong>PDO::exec()</strong></span>主要是针对没有结果集合返回的操作，比如INSERT、UPDATE、DELETE等操作，它返回的结果是当前操作影响的列数。<br />
<span style="color: #ff0000;"><strong>PDO::prepare()</strong></span>主要是预处理操作，需要通过$rs-&gt;execute()来执行预处理里面的SQL语句，这个方法可以绑定参数，功能比较强大，不是本文能够简单说明白的，大家可以参考手册和其他文档。</p>
<p>获取结果集操作主要是：<strong><span style="color: #ff0000;">PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()</span></strong>。<br />
<span style="color: #ff0000;"><strong>PDOStatement::fetchColumn()</strong></span>是获取结果指定第一条记录的某个字段，缺省是第一个字段。<br />
<span style="color: #ff0000;"><strong>PDOStatement::fetch()</strong></span>是用来获取一条记录，<br />
<span style="color: #ff0000;"><strong>PDOStatement::fetchAll()</strong></span>是获取所有记录集到一个中，获取结果可以通过<strong><span style="color: #ff0000;">PDOStatement::setFetchMode</span></strong>来设置需要结果集合的类型。</p>
<p>另外有两个周边的操作，一个是<strong><span style="color: #ff0000;">PDO::lastInsertId()</span></strong>和<span style="color: #ff0000;"><strong>PDOStatement::rowCount()</strong></span>。<br />
<span style="color: #ff0000;"><strong>PDO::lastInsertId()</strong></span>是返回上次插入操作，主键列类型是自增的最后的自增ID。<br />
<span style="color: #ff0000;"><strong>PDOStatement::rowCount()</strong></span>主要是用于<span style="color: #ff0000;"><strong>PDO::query()</strong></span>和<span style="color: #ff0000;"><strong>PDO::prepare()</strong></span>进行<strong><span style="color: #ff0000;">DELETE、INSERT、UPDATE</span></strong>操作影响的结果集，对<span style="color: #ff0000;"><strong>PDO::exec()</strong></span>方法和<strong><span style="color: #ff0000;">SELECT</span></strong>操作无效。</p>
<p>事务中，可以使用 PDO::commit() 或 PDO::rollBack() 来结束该事务，这取决于事务中运行的代码是否成功。</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">try<span style="color: #009900;">&#123;</span><br />
<span style="color: #000088;">$db</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> PDO<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'odbc:SAMPLE'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'db2inst1'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'ibmdb2'</span><span style="color: #339933;">,</span><br />
<span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>PDO_ATTR_PERSISTENT<span style="color: #339933;">=&gt;</span><span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Connected<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setAttribute</span><span style="color: #009900;">&#40;</span>PDO_ATTR_ERRMODE<span style="color: #339933;">,</span>PDO_ERRMODE_EXCEPTION<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">beginTransaction</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;insert into staff (id, first, last) values (23, 'Joe', 'Bloggs')&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #990000;">exec</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;insert into salarychange (id, amount, changedate)<br />
values (23, 50000, NOW())&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">commit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>PDO-&gt;beginTransaction() — 标明回滚起始点<br />
PDO-&gt;commit() — 标明回滚结束点，并执行SQL<br />
PDO-&gt;__construct() — 建立一个PDO链接数据库的实例<br />
PDO-&gt;errorCode() — 获取错误码<br />
PDO-&gt;errorInfo() — 获取错误的信息<br />
PDO-&gt;exec() — 处理一条SQL语句，并返回所影响的条目数<br />
PDO-&gt;getAttribute() — 获取一个“数据库连接对象”的属性<br />
PDO-&gt;getAvailableDrivers() — 获取有效的PDO驱动器名称<br />
PDO-&gt;lastInsertId() — 获取写入的最后一条数据的主键值<br />
PDO-&gt;prepare() — 生成一个“查询对象”<br />
PDO-&gt;query() — 处理一条SQL语句，并返回一个“PDOStatement”<br />
PDO-&gt;quote() — 为某个SQL中的字符串添加引号<br />
PDO-&gt;rollBack() — 执行回滚<br />
PDO-&gt;setAttribute() — 为一个“数据库连接对象”设定属性<br />
PDOStatement-&gt;bindColumn() — Bind a column to a PHP variable<br />
PDOStatement-&gt;bindParam() — Binds a parameter to the specified variable name<br />
PDOStatement-&gt;bindValue() — Binds a value to a parameter<br />
PDOStatement-&gt;closeCursor() — Closes the cursor, enabling the statement to be executed again.<br />
PDOStatement-&gt;columnCount() — 返回数据集列的数量对应:num_fields<br />
PDOStatement-&gt;errorCode() — Fetch the SQLSTATE associated with the last operation on the statement handle<br />
PDOStatement-&gt;errorInfo() — Fetch extended error information associated with the last operation on the statement handle<br />
PDOStatement-&gt;execute() — Executes a prepared statement<br />
PDOStatement-&gt;fetch() — 返回结果集的下一条.<br />
PDOStatement-&gt;fetchAll() — 返回一个数组包含着全部的值<br />
PDOStatement-&gt;fetchColumn() — Returns a single column from the next row of a result set<br />
PDOStatement-&gt;fetchObject() — Fetches the next row and returns it as an object.<br />
PDOStatement-&gt;getAttribute() — Retrieve a statement attribute<br />
PDOStatement-&gt;getColumnMeta() — Returns metadata for a column in a result set<br />
PDOStatement-&gt;nextRowset() — Advances to the next rowset in a multi-rowset statement handle<br />
PDOStatement-&gt;rowCount() — 返回一个数字显示在执行SQL操作后受影响的行数<br />
PDOStatement-&gt;setAttribute() — Set a statement attribute<br />
PDOStatement-&gt;setFetchMode() — 返回数据库表属性Set the default fetch mode for this statement</p>
<p>}catch(Exception $e){<br />
$db-&gt;rollBack();<br />
echo”Failed: “.$e-&gt;getMessage();<br />
}</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2008/12/1064/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php5.0.x配置文件php.ini中文说明</title>
		<link>http://www.5ga.cn/blog/archives/2008/11/948/</link>
		<comments>http://www.5ga.cn/blog/archives/2008/11/948/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 07:44:48 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[网站]]></category>
		<category><![CDATA[WWW服务器]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=948</guid>
		<description><![CDATA[是不是天天看E文版本的php.ini配置文件非常烦恼,用这个吧,哈哈哈!参考! ;[php 5.0.4 php.ini-recommended] ;;;;;;;;;;;;;;;;; ;;关于这个文件 ;; ;;;;;;;;;;;;;;;;; ; 这个版本是推荐使用的、PHP5风格的php.ini版本。 ; 这个版本使用了一些非标准设置，目的是使PHP更加高效、安全，鼓励更加整洁的代码 ; 代价是可能与某些程序不兼容，并给开发带来难度。我们鼓励在正式发布网站时使用这个配置。 ; 所有与默认不同的设置都有明显的注明，你可以决定是否使用与默认不同的设置。 ; 有关php.ini的普通说明请参考php安装文件夹下的php.ini-dist文件。 ; 这个文件和php.ini-dist不同，有些参数的设置改变了，这样做是为了提高性能和保障安全。 ; 请确认你阅读了不同之处，并且修改过你的脚本，再采用这个版本的配置文件。 ;—————————————————————– ;-&#62; register_globals = Off [安全，性能] ; 不再为输入数据注册全局变量(POST, GET, cookies, 环境变量, 服务器变量) ; 不要使用$foo，而要使用$_REQUEST["foo"](包含任何通过请求传送的数据，即：POST, GET, cookies, 环境变量, 服务器变量), ; 或使用指定的$_GET["foo"], $_POST["foo"], $_COOKIE["foo"], $_FILES["foo"](不包含在$_REQUEST数组中), 这取决于请求来自何处。 ; 同时，你可以查看import_request_variables()函数（将 GET／POST／Cookie 变量导入到全局作用域中）。 ; 注意，register_globals将在下一个版本中被废除(默认关闭)，因为它总是带来太多的安全问题。 ; 请参考http://php.net/manual/en/security.registerglobals.php 以获得更多信息。 [...]]]></description>
			<content:encoded><![CDATA[<p><strong><span style="color: #0000ff;">是不是天天看E文版本的php.ini配置文件非常烦恼,用这个吧,哈哈哈!参考!</span></strong></p>
<p>;[php 5.0.4 php.ini-recommended]<br />
;;;;;;;;;;;;;;;;;<br />
;;关于这个文件 ;;<br />
;;;;;;;;;;;;;;;;;<br />
; 这个版本是推荐使用的、PHP5风格的php.ini版本。<br />
; 这个版本使用了一些非标准设置，目的是使PHP更加高效、安全，鼓励更加整洁的代码<br />
; 代价是可能与某些程序不兼容，并给开发带来难度。我们鼓励在正式发布网站时使用这个配置。<br />
; 所有与默认不同的设置都有明显的注明，你可以决定是否使用与默认不同的设置。<br />
; 有关php.ini的普通说明请参考php安装文件夹下的php.ini-dist文件。<br />
; 这个文件和php.ini-dist不同，有些参数的设置改变了，这样做是为了提高性能和保障安全。<br />
; 请确认你阅读了不同之处，并且修改过你的脚本，再采用这个版本的配置文件。</p>
<p><span id="more-948"></span></p>
<p>;—————————————————————–<br />
;-&gt; register_globals = Off [安全，性能]<br />
; 不再为输入数据注册全局变量(POST, GET, cookies, 环境变量, 服务器变量)<br />
; 不要使用$foo，而要使用$_REQUEST["foo"](包含任何通过请求传送的数据，即：POST, GET, cookies, 环境变量, 服务器变量),<br />
; 或使用指定的$_GET["foo"], $_POST["foo"], $_COOKIE["foo"], $_FILES["foo"](不包含在$_REQUEST数组中), 这取决于请求来自何处。<br />
; 同时，你可以查看import_request_variables()函数（将 GET／POST／Cookie 变量导入到全局作用域中）。<br />
; 注意，register_globals将在下一个版本中被废除(默认关闭)，因为它总是带来太多的安全问题。<br />
; 请参考http://php.net/manual/en/security.registerglobals.php 以获得更多信息。<br />
;<br />
;-&gt; register_long_arrays = Off [性能]<br />
; 禁用旧式的长式预定义数组($HTTP_*_VARS)，取而代之以短式预定义超全局数组。<br />
;<br />
;-&gt; display_errors = Off [安全]<br />
; 关闭这个特性，脚本执行期间的错误/警告将不会显示输出，这样就不会将敏感信息暴露给远端用户。<br />
; 一些错误/警告信息会暴露可能被攻击者利用的脚本信息、服务器信息、数据库信息。<br />
; 正式发布网站时应当关闭这个特性。<br />
;<br />
;-&gt; log_errors = On [安全]<br />
; 这个指令是上一个指令的补充。<br />
; 脚本执行期间的错误将被记录到日志文件中(比如系统日志)，可以有几种不同的配置方法。<br />
; 配合将”display_errors”关闭，这个设置可以让你明白那里出了问题，而不会暴露任何敏感信息给远端用户。<br />
;<br />
;-&gt; output_buffering = 4096 [性能]<br />
; 设置一个4K的输出缓冲。请用输出缓存可以减少写入动作，有时还能减少传输数据包的大小，这些都有助于提高性能。<br />
; 这个参数的实际收益取很大程度上取决于你使用的是什么Web服务器，使用的是什么样的脚本。<br />
;<br />
;-&gt; register_argc_argv = Off [性能]<br />
; 禁止注册有些多余的$argv和$argc全局变量<br />
;<br />
;-&gt; magic_quotes_gpc = Off [性能]<br />
; 不将输入的数据用反斜杠进行转义，以便发送给数据库时不需要更多的处理。<br />
; 事实上，你应该对每一个发送到数据库的输入数据使用addslashes()函数。<br />
;<br />
;-&gt; variables_order = “GPCS” [性能]<br />
; 使得$_ENV数组中的环境变量不再杂乱无章。<br />
; 你应当使用getenv()函数存取环境变量。<br />
;<br />
;-&gt; error_reporting = E_ALL [代码清洁，安全]<br />
; 默认情况下，PHP错误报告等级是E_NOTICE<br />
; E_ALL表示报告所有非致命错误，因为这些错误可能会导致大问题(比如使用了未定义的变量)。<br />
;<br />
;-&gt; allow_call_time_pass_reference = Off [代码清洁]<br />
; 禁止默认将函数的参数按引用传递。<br />
; PHP4/5风格的处理办法是在函数声明时指定按引用传递。<br />
;*******以下这部分是php.ini-dist的内容，但是包含了与php.ini-recommended的不同之处*******</p>
<p>[PHP 5.0.4 php.ini-dist]</p>
<p>;;;;;;;;;;<br />
;; 警告 ;;<br />
;;;;;;;;;;<br />
; 这是PHP新安装时的默认设置。默认设置适合于开发但是不适合正式应用。<br />
; 出于安全方面考虑，请在发布正式应用程序时使用php.ini-recommended<br />
; 并且参考如下页面http://php.net/manual/en/security.php</p>
<p>;;;;;;;;;;;;;;;;;;;<br />
;; 关于 php.ini ;;<br />
;;;;;;;;;;;;;;;;;;;<br />
; 这个文件控制了PHP许多方面的性能和行为。 为了让PHP正确读取这个文件，<br />
; 它必须被命名为’php.ini’。PHP将按照如下顺序依次查找该文件：<br />
; 1.当前工作目录；2.环境变量PHPRC指明的路径；3.编译时指定的路径。<br />
; 在windows下，编译时的路径是Windows的安装目录（C:\WINDOWS等）。<br />
; 在命令行模式下，php.ini的查找路径可以用 -c 参数指定。<br />
;<br />
; 该文件的语法非常简单。空白字符(” “,”\t”,…)和用分号(”;”)开始的行被简单地忽略。<br />
; 章节标题（例如 : [php]）也被简单地忽略，即使将来它们可能有某种意义。<br />
;<br />
; 设置格式如下：<br />
; directive = value<br />
; 指令标识符(directive) 是大小写敏感的! “foo=bar” 不同于 “FOO = bar”。<br />
; 值(value)可以是：<br />
; 1.一个字符串、2.一个数字、3.一个 PHP常量(如：E_ALL, M_PI)、<br />
; 4.一个INI常量(On, Off, True, False, Yes, No, None)、<br />
; 5.一个表达式(如：E_ALL &amp; ~E_NOTICE)、<br />
; 6.用引号括起来的字符串(”foo”).<br />
;<br />
; INI文件中的表达式仅限于使用位运算符/逻辑非/小括号。<br />
; | 位或<br />
; &amp; 位与<br />
; ~ 位非<br />
; ! 逻辑非<br />
;<br />
; 布尔标志可用 1, On, True, Yes 打开，亦可用 0, Off, False, No 关闭。<br />
;<br />
; 一个空字符串可以用在等号后不写任何东西表示，或者用 none 关键字，举例如下：<br />
; foo = 将foo置为空字符串<br />
; foo = none 将foo置为空字符串<br />
; foo = “none” 将foo置为字符串’none’<br />
;<br />
; 如果你在值设置中使用常量，而这些常量属于动态扩展（PHP扩展或Zend扩展）<br />
; 那么你只能在调入这些动态扩展的行之后使用这些常量。<br />
;<br />
; 所有在 php.ini-dist 文件里设定的值与内建的默认值相同。<br />
; 也就是说，如果 php.ini 不存在，或者你删掉了某些行，默认值与之相同。<br />
;;;;;;;;;;;;;;;<br />
;;; 语言选项 ;;<br />
;;;;;;;;;;;;;;;</p>
<p>engine = On<br />
; 使PHP脚本语言引擎在Apache下有效。</p>
<p>zend.ze1_compatibility_mode = Off<br />
; 允许使用兼容Zend引擎1(PHP 4.x)的模式</p>
<p>short_open_tag = On<br />
; 允许 “” 短标识，否则只有”“和”“才能被识别。<br />
; 注意：除非你的php程序只供自己使用，否则请不要使用短标记。<br />
; 如果要和XML结合使用PHP，你可以选择禁用此选项以方便直接嵌入使用 ，<br />
; 不然你必须用PHP来输出：<br />
; 本指令也会影响到缩写形式</p>
<p>asp_tags = Off<br />
; 是否允许ASP风格的标记”“，这也会影响到缩写形式：</p>
<p>precision = 12<br />
;[recommended]-&gt;precision = 14<br />
; 浮点型数据显示的有效位数</p>
<p>y2k_compliance = On<br />
; 强制打开2000年适应 (可能在非Y2K适应的浏览器中导致问题)</p>
<p>output_buffering = Off<br />
;[recommended]-&gt;output_buffering = 4096<br />
; 输出缓存允许你甚至在输出正文内容之后发送http头（包括cookies）。<br />
; 其代价是输出层减慢一点点速度。<br />
; 你可以在运行期间通过调用输出缓冲函数启用输出缓存。<br />
; 你还可以通过设置”output_buffering=On”来为所有文件启用输出缓存(默认4096)。<br />
; 如果你想指定缓冲区的最大字节数，你可以直接将”On”替换成数字，<br />
; 比如：”output_buffering=4096″指定了缓存上限为4096字节。</p>
<p>;output_handler =<br />
; 你可以将所有脚本输出重定向到一个输出处理函数。<br />
; 比如，重定向到”mb_output_handler”函数时，字符编码将被透明地转换为指定的编码。<br />
; 一旦你在这里指定了输出处理程序，”output_buffering”将被自动打开。<br />
; 注意1: 在编写可移植脚本的时候不能依赖这个指令，而应明确的调用ob_start()函数打开输出缓存。<br />
; 使用这个指令可能会导致某些你不熟悉的脚本出错。<br />
; 注意2: 你不能同时使用”mb_output_handler”和”ob_iconv_handler”<br />
; 你也不能同时使用”ob_gzhandler”和”zlib.output_compression”<br />
; 注意3: 如果启用了zlib输出压缩，”output_handler”必须为空，取而代之，必须启用”zlib.output_handler”。</p>
<p>zlib.output_compression = Off<br />
; 使用zlib库透明地压缩脚本输出结果。<br />
; 该指令的值可以设置为：Off/On/字节数（用来作为压缩缓冲区大小，默认为4KB）<br />
; 如果在php.ini或者apache配置中打开这个功能，当浏览器发送”Accept-Encoding: gzip(deflate)”头时，<br />
; “Content-Encoding: gzip(deflate)”和”Vary: Accept-Encoding”头将加入到应答头当中。<br />
; 你可以在答头输出之前用ini_set()函数在脚本中禁止这个特性，<br />
; 如果你输出一个”Content-Type: image/”这样的应答头，压缩将不会启用(为了防止Netscape的bug)。<br />
; 你可以在输出”Content-Type: image/”之后使用”ini_set(’zlib.output_compression’, ‘On’)”重新打开这个特性。<br />
; 注意1: 压缩率会受压缩缓冲区大小的影响，如果你想得到更好的压缩质量，请指定一个较大的压缩缓冲区。<br />
; 注意2: 如果启用了zlib输出压缩，”output_handler”必须为空，取而代之，必须启用”zlib.output_handler”。</p>
<p>;zlib.output_handler =<br />
; 在打开”zlib.output_compression”指令的情况下，除这里以外，你不能另外指定输出处理程序。<br />
; 这个指令和”output_handler”起相同的作用，但是顺序不同。</p>
<p>implicit_flush = Off<br />
; 这个指令告诉PHP输出层在每个输出块之后自动刷新自身数据。默认为 FALSE<br />
; 这等效于在每个print()、echo()、HTML块之后自动调用flush()函数。<br />
; 打开这个选项对程序执行的性能有严重的影响，通常只推荐在调试时使用。<br />
; 在CLI SAPI的执行模式下，该标记默认为 TRUE 。</p>
<p>unserialize_callback_func=<br />
; 如果解序列化程序需要实例化一个未定义类，该这里指定的回调函数将以该未定义类的名字作为参数被调用，<br />
; 以免得到不完整的”__PHP_Incomplete_Class”对象。<br />
; 如果这里没有指定函数，或者指定的函数不包含(或实现)那个未定义的类，将会显示一条警告信息。<br />
; 只有在你真想执行这样一个回调函数的情况下，才需要指定该参数的值。<br />
; 可以通过 php.ini、ini_set() 或 .htaccess 定义”unserialize_callback_func”。<br />
; 若要禁止这个特性，只需置空此设定。</p>
<p>serialize_precision = 100<br />
; 将浮点型和双精度型数据序列化存储时，序列化精度指明了有效位数。<br />
; 默认值能够确保浮点型数据被解序列化程序解码时不会有数据丢失。</p>
<p>allow_call_time_pass_reference = On<br />
;[recommended]-&gt;allow_call_time_pass_reference = Off<br />
; 强迫函数调用时按引用传递参数。<br />
; php反对使用这一方法，并可能在将来版本的PHP/Zend里不再支持。<br />
; 鼓励的方法是在函数声明里指定哪些参数按引用传递。<br />
; 我们鼓励你尝试关闭这一选项并确认你的脚本仍能正常工作，以保证你的脚本在将来版本的语言里仍能正常工作。<br />
; （每次使用此特性都会收到一条警告：参数会被按值传递而不是按照引用传递）</p>
<p>;;;;;;;;;;;;;<br />
; 安全模式</p>
<p>safe_mode = Off<br />
; 安全模式</p>
<p>safe_mode_gid = Off<br />
; 安全模式默认情况下在打开文件时会做UID比较检查。<br />
; 如果你想将其放宽到GID比较，可以打开这个参数。</p>
<p>safe_mode_include_dir =<br />
; 在安全模式下，该文件夹和其子文件夹下的文件被包含时，将跳过UID/GID检查。<br />
; （文件夹必须必须在”include_path”中或者用完整路径来包含）<br />
; 从PHP4.2 开始，本指令可以接受和”include_path”指令类似的风格用分号隔开的路径，而不只是一个目录。<br />
; 指定的限制实际上是一个前缀，而非一个目录名，也就是说”/dir/incl”将允许访问”/dir/include”和”/dir/incls”<br />
; 如果您希望将访问控制在一个指定的目录，那么请在结尾加上一个斜线，例如：”/dir/incl/”</p>
<p>safe_mode_exec_dir =<br />
; 在安全模式下，只有该文件夹下的可执行程序才能被允许通过system()和其它执行系统程序的函数执行。<br />
; 这些函数是：escapeshellarg, escapeshellcmd, exec, passthru, proc_close, proc_get_status,<br />
; proc_nice, proc_open, proc_terminate, shell_exec, system ….</p>
<p>safe_mode_allowed_env_vars = PHP_<br />
; 该指令包含用逗号分隔的前缀列表，表示用户在安全模式下仅可以更改在此列出的前缀开头的环境变量的值。<br />
; 因为设置某些环境变量，可能会导致潜在的安全漏洞。<br />
; 默认地，用户将仅能设定以PHP_开头的环境变量，（如: PHP_FOO=BAR）。<br />
; 注意: 如果这一参数值为空，PHP将允许用户更改任意环境变量！</p>
<p>safe_mode_protected_env_vars = LD_LIBRARY_PATH<br />
; 这个指令包含一个用逗号分隔的环境变量列表，在安全模式下，列表中的变量是远端用户不能用putenv()更改的。<br />
; 这些变量甚至在”safe_mode_allowed_env_vars”设置为允许的情况下也会得到保护。</p>
<p>;open_basedir =<br />
; 将PHP允许打开的所有文件都限制在此目录下。无论安全模式是否打开，该参数都将起作用。<br />
; 如果web服务器使用了per-directory或虚拟主机，这个参数将非常有意义。<br />
; 当一个脚本试图用例如fopen()或者gzopen()打开一个指定目录树之外的文件时，将遭到拒绝。<br />
; 所有的符号连接都会被解析，所以不可能通过符号连接来避开此限制。<br />
; 特殊值’.&#8217;指定了存放该脚本的目录将被当做基准目录。<br />
; 在Windows中，用分号分隔目录。在任何其它系统中用冒号分隔目录。<br />
; 作为Apache模块时，父目录中的open_basedir路径将自动被继承。<br />
; 用open_basedir指定的限制实际上是前缀，不是目录名。也就是说”/dir/incl”将允许访问”/dir/include”和”/dir/incls”<br />
; 如果您希望将访问控制在一个指定的目录，那么请在结尾加上一个斜线，例如：”/dir/incl/”<br />
; 默认是允许打开所有文件。</p>
<p>disable_functions =<br />
; 这个指令让你可以出于安全原因禁用特定的函数。它接受一个用逗号分隔的函数名列表。<br />
; 无论安全模式是否打开，该参数都将起作用。<br />
; 本指令只能设置在php.ini中。例如你不能将其设置在httpd.conf中</p>
<p>disable_classes =<br />
; 这个指令让你可以出于安全原因禁用特定的类。它接受一个用逗号分隔的类名列表。<br />
; 无论安全模式是否打开，该指令都将起作用。本指令自 PHP 4.3.2 起可用。<br />
; 本指令只能设置在php.ini中。例如你不能将其设置在httpd.conf中</p>
<p>;highlight.string = #DD0000<br />
;highlight.comment = #FF9900<br />
;highlight.keyword = #007700<br />
;highlight.bg = #FFFFFF<br />
;highlight.default = #0000BB<br />
;highlight.html = #000000<br />
; 语法高亮模式的色彩。<br />
; 只要能被接受的东西就能正常工作。</p>
<p>;;;;;;;;;<br />
; 杂项</p>
<p>expose_php = On<br />
; 决定PHP是否暴露它被安装在服务器上的事实(比如出现在http头中)<br />
; 它不会有安全上的威胁, 但它使得检查你的服务器上是否安装了PHP成为了可能。<br />
;;;;;;;;;;;;;;<br />
;; 资源限制 ;;<br />
;;;;;;;;;;;;;;</p>
<p>max_execution_time = 30<br />
; 每个脚本最大允许执行时间, 按秒计。默认为30秒。<br />
; 这个参数有助于阻止劣质脚本无休止的占用服务器资源。<br />
; 注: “max_execution_time”仅影响脚本本身的运行时间。<br />
; 任何其它花费在脚本运行之外的时间，如用system()/sleep()函数的使用、数据库查询、文件上传等，都不包括在内。<br />
; 在安全模式下，你不能用ini_set()在运行时改变这个设置。</p>
<p>max_input_time = 60<br />
; 每个脚本接收输入数据的最大允许时间(POST, GET, upload), 按秒计</p>
<p>memory_limit = 8M<br />
; 设定一个脚本所能够申请到的最大内存字节数。<br />
; 这有助于防止劣质脚本消耗完服务器上的所有内存。<br />
; 要使用此指令必须在编译的时候激活。<br />
; 因此 configure 一行中应该包括：–enable-memory-limit<br />
; 如果不需要任何内存上的限制，必须将其设为 -1<br />
; 自php4.3.2 起，当设置了memory_limit后，memory_get_usage()函数将变为可用</p>
<p>;;;;;;;;;;;;;;;;;;;;<br />
;; 出错处理和日志 ;;<br />
;;;;;;;;;;;;;;;;;;;;</p>
<p>error_reporting = E_ALL &amp; ~E_NOTICE &amp; ~E_STRICT<br />
;[recommended]-&gt;error_reporting = E_ALL<br />
; 显示所有的错误，除了提醒和编码标准化警告。<br />
; 错误报告是位字段。可以将数字加起来得到想要的错误报告等级。<br />
; E_ALL &#8211; 所有的错误和警告(不包括 E_STRICT)<br />
; E_ERROR &#8211; 致命性的运行时错误<br />
; E_WARNING &#8211; 运行时警告(非致命性错误)<br />
; E_PARSE &#8211; 编译时解析错误<br />
; E_NOTICE &#8211; 运行时提醒(这些经常是你代码中的bug引起的，也可能是有意的行为造成的。)<br />
; E_STRICT &#8211; 编码标准化警告，允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。<br />
; E_CORE_ERROR &#8211; PHP启动时初始化过程中的致命错误<br />
; E_CORE_WARNING &#8211; PHP启动时初始化过程中的警告(非致命性错)<br />
; E_COMPILE_ERROR &#8211; 编译时致命性错<br />
; E_COMPILE_WARNING &#8211; 编译时警告(非致命性错)<br />
; E_USER_ERROR &#8211; 用户自定义的错误消息<br />
; E_USER_WARNING &#8211; 用户自定义的警告消息<br />
; E_USER_NOTICE &#8211; 用户自定义的提醒消息<br />
; 例子:<br />
;error_reporting = E_ALL &amp; ~E_NOTICE ; 显示所有的错误，除了提醒<br />
;error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR ; 仅显示错误</p>
<p>display_errors = On<br />
;[recommended]-&gt;display_errors = Off<br />
; 作为输出的一部分显示出错误信息<br />
; 在最终发布的web站点上，强烈建议你关掉这个特性，并使用错误日志代替（参看下面）。<br />
; 在最终发布的web站点打开这个特性可能暴露一些安全信息，<br />
; 例如你的web服务上的文件路径、数据库规划或别的信息。</p>
<p>display_startup_errors = Off<br />
; 即使”display_errors”特性被打开，关闭此参数也将不显示PHP启动时的错误。<br />
; 强烈建议你关掉这个特性，除非你必须要用于调试中。</p>
<p>log_errors = Off<br />
;[recommended]-&gt;log_errors = On<br />
; 在日志文件里记录错误（服务器指定的日志，stderr标准错误输出，或error_log(下面的)）<br />
; 正如上面说明的那样，强烈建议你在最终发布的web站点时用日志记录错误而不是直接输出。</p>
<p>log_errors_max_len = 1024<br />
; 设置错误日志文件的最大长度。<br />
; 设为 0 可以允许无限长度。</p>
<p>ignore_repeated_errors = Off<br />
; 忽略重复的错误信息<br />
; 如果关闭这个参数，错误信息必须出现在同一个文件的同一行才被忽略。<br />
; 如果打开这个参数，则没有这个限制。</p>
<p>ignore_repeated_source = Off<br />
; 忽略重复的错误源<br />
; 忽略重复的错误信息时忽略重复的错误源<br />
; 如果打开这个参数，将不会记录不同的出错文件和对应行的错误信息。</p>
<p>report_memleaks = On<br />
; 报告内存泄漏<br />
; 如果关闭该参数，将不记录或者显示内存泄漏<br />
; 这个参数只在调试编译中起作用，并且必须在错误报告中包含 E_WARNING</p>
<p>track_errors = Off<br />
; 保存最近一个错误/警告消息于变量$php_errormsg (boolean)中</p>
<p>;html_errors = Off<br />
; 禁用出错信息中的HTML标记<br />
; 注意: 不要在发布的程序中使用这个特性。</p>
<p>;docref_root = “/phpmanual/”<br />
;docref_ext = .html<br />
; 如果打开了html_errors参数，PHP将会在出错信息上显示超连接，<br />
; 直接链接到一个说明这个错误或者导致这个错误的函数的页面。<br />
; 你可以http://www.php.net/docs.php下载php手册，并设置docref_root参数，将他指向你本地的手册所在目录。<br />
; 你还必须设置”docref_ext”来指定文件的扩展名。<br />
; 注意: 不要在发布的程序中使用这个特性。</p>
<p>;error_prepend_string = “”<br />
; 用于错误信息前输出的字符串</p>
<p>;error_append_string = “”<br />
; 用于错误信息后输出的字符串</p>
<p>;error_log = filename<br />
; 将错误日志记录到哪个文件中。<br />
; 如果设为”syslog”, 错误日志将被记录到系统日志中（NT下的事件日志, Unix下的syslog(3)）</p>
<p>;;;;;;;;;;;;;;<br />
;; 数据处理 ;;<br />
;;;;;;;;;;;;;;</p>
<p>;arg_separator.output = “&amp;”<br />
; PHP所产生的URL中来分隔参数的分隔符。默认值是”&amp;”</p>
<p>;arg_separator.input = “;&amp;”<br />
; PHP解析URL中的变量时使用的分隔符列表，默认值是”&amp;”<br />
; 注意: 字符串中的任何字符都将被看着分割符</p>
<p>variables_order = “EGPCS”<br />
;[recommended]-&gt;variables_order = “GPCS”<br />
; PHP注册 GET, POST, Cookie, Environment, Built-in 变量的顺序。<br />
; （以 G, P, C, E, S 表示，通常以 EGPCS 或 GPC 或 ES 的方式引用）。<br />
; 按从左到右记录，新值覆盖旧值。<br />
; 举例说，将其设为”GP”，会导致 PHP 完全忽略环境变量、cookies 、server，<br />
; 并用 GET 方法的变量覆盖 POST 方法的同名变量</p>
<p>register_globals = Off<br />
; 是否将这些 EGPCS 变量注册为全局变量。自 PHP 4.2.0 开始，本指令默认为 off<br />
; 例如，如果打开这个特性，那么URLhttp://www.example.com/test.php?id=3 将产生 $id<br />
; 或者从 $_SERVER['DOCUMENT_ROOT'] 得到 $DOCUMENT_ROOT 。<br />
; 如果你不想让脚本中的全局变量和用户输入的数据搞混的话，请关闭它。<br />
; 推荐使用PHP的预定义变量来替代，例如超全局变量：$_ENV，$_GET，$_POST，$_COOKIE 和 $_SERVER<br />
; 请注意, register_globals不能在运行时设定（ini_set()），尽管在主机允许时可以用 .htaccess 来设置<br />
; 一个 .htaccess 项目的例子：php_flag register_globals on<br />
; 注: register_globals 受 variables_order 指令的影响。</p>
<p>register_long_arrays = On<br />
;[recommended]-&gt;register_long_arrays = Off<br />
; 是否启用旧式的长式数组(HTTP_*_VARS)，推荐关闭该特性以获得更好的性能。</p>
<p>register_argc_argv = On<br />
;[recommended]-&gt;register_argc_argv = Off<br />
; 是否声明 argv和argc 变量（其中包含用GET方法传来的数据）<br />
; 【argv为变量数组,argc为变量数组中元素个数】<br />
; 若你不想使用这两个变量，应当关掉它以提高性能。</p>
<p>post_max_size = 8M<br />
; PHP接受的POST数据最大长度。此设定也影响到文件上传。<br />
; 要上传大文件，该值必须大于”upload_max_filesize”<br />
; 如果配置脚本中激活了内存限制，”memory_limit”也会影响文件上传。<br />
; 一般说来，”memory_limit”应该比”post_max_size”要大。</p>
<p>;;;;;;;;;;;;;;;;;;;;;;;;;;;<br />
; 魔术引号(自动字符串转义)</p>
<p>magic_quotes_gpc = On<br />
;[recommended]-&gt;magic_quotes_gpc = Off<br />
; 在输入的GET/POST/Cookie数据里使用自动字符串转义【比如，值 (It’s “PHP!”) 会自动转换成 (It\’s \”PHP!\”)】<br />
; 这里的设置自动影响$_GEST，$_POST，$_COOKIE数组的值。如果打开，值 (It’s “PHP!”) 会自动转换成 (It\’s \”PHP!\”)。<br />
; (个人意见:关闭此特性, 因为它在处理双字节汉字的时候可能会破坏某些繁体字和特殊字符)</p>
<p>magic_quotes_runtime = Off<br />
; 对运行时从外部资源产生的数据使用自动字符串转义<br />
; 例如：用SQL查询得到的数据，用exec()函数得到的数据，等等</p>
<p>magic_quotes_sybase = Off<br />
; 采用 Sybase形式的自动字符串转义（ 用 ” 表示 ‘ 而不用 \’ ）</p>
<p>auto_prepend_file =<br />
; 指定在主文件之前自动解析的文件名。<br />
; 该文件就像调用了include()函数一样被包含进来，因此会使用”include_path”</p>
<p>auto_append_file =<br />
; 指定在主文件之后自动解析的文件名。<br />
; 该文件就像调用了include()函数一样被包含进来，因此会使用”include_path”<br />
; 注: 如果脚本通过 exit() 终止，则自动后缀不会发生。</p>
<p>default_mimetype = “text/html”<br />
;default_charset = “iso-8859-1″<br />
; PHP总是默认地在”Content-type:”头中设置输出文档的MIME类型和字符集的编码方式。<br />
; 要让输出字符集失效，只要设置为空或注释掉即可。<br />
; PHP的默认设置会输出”Content-Type: text/html”<br />
; 若去掉”default_charset”前的注释并将其设为”gb2312″，<br />
; 那么将会输出”Content-Type: text/html; charset=gb2312″</p>
<p>;always_populate_raw_post_data = On<br />
; 总是填充$HTTP_RAW_POST_DATA变量，”HTTP_RAW_POST_DATA”意为”HTTP原始POST数据”<br />
;;;;;;;;;;;;;;;;<br />
;; 路径和目录 ;;<br />
;;;;;;;;;;;;;;;;</p>
<p>;include_path = “.;c:\php\includes”<br />
; 指定一组目录用于require()，include()和fopen_with_path()函数来寻找文件。<br />
; 格式和系统的 PATH 环境变量类似：<br />
; 一组目录的列表，在 UNIX 下用冒号分隔，在 Windows 下用分号分隔。<br />
; 在包含路径中使用 ‘.’ 可以允许相对路径，它代表当前目录。<br />
; UNIX: “/path1:/path2″<br />
; Windows: “\path1;\path2″</p>
<p>doc_root =<br />
; PHP页面在服务器上的根目录。仅在非空时有效。<br />
; 如果PHP被配置为安全模式，则此目录之外的文件一概不被解析。<br />
; 如果PHP编译时没有指定FORCE_REDIRECT，并且在非IIS服务器上以CGI方式运行，<br />
; 则必须设置此项。(参见手册中的安全部分)<br />
; 替代方案是使用下面的”cgi.force_redirect”指令。</p>
<p>user_dir =<br />
; 告诉php在使用 /~username 打开脚本时到哪个目录下去找，仅在非空时有效。<br />
; 也就是在用户目录之下使用PHP文件的基本目录名，例如：public_html</p>
<p>extension_dir = “./”<br />
; 存放扩展库（模块）的目录，也就是PHP用来寻找动态连接扩展库的目录</p>
<p>enable_dl = On<br />
; 是否使dl()函数有效。<br />
; dl()函数在除apache以外的多线程的服务器(如：IIS或Zeus)上不能正确地工作，并在其上默认为禁止。</p>
<p>;cgi.force_redirect = 1<br />
; 打开cgi强制重定向为以CGI方式运行的php提供了必要的安全保护，php默认打开了该参数。<br />
; 你若自己关闭了它，请自己负责后果<br />
; 注意：在IIS/OmniHTTPD/Xitami上则必须关闭它！</p>
<p>;cgi.nph = 1<br />
; 如果该参数打开，那么它会强制cgi对每个http请求始终发送状态码: 200</p>
<p>;cgi.redirect_status_env =<br />
; 如果打开了cgi.force_redirect，并且你没有将php运行在Apache或Netscape(iPlanet)服务器上，<br />
; 可能需要设定一个cgi重定向环境变量名，PHP将去寻找它来知道可以继续执行下去。<br />
; 设置这个变量会导致安全漏洞，请务必在设置前搞清楚自己在做什么。</p>
<p>;fastcgi.impersonate = 1<br />
; IIS中的FastCGI支持模仿客户端安全令牌的能力。这使得IIS能够定义运行时所基于的请求的安全上下文。<br />
; Apache中的mod_fastcgi不支持此特性（03/17/2002）<br />
; 如果在IIS中运行则设为1，默认为 0</p>
<p>;cgi.rfc2616_headers = 0<br />
; 指定PHP在发送HTTP响应代码时使用何种报头。<br />
; 如果设定为0，PHP发送一个”Status: “报头，Apache和其它web server都支持。<br />
; 若设为0，则PHP使用Apache支持的头。若设为1，则PHP使用RFC2616标准的头。默认值为0<br />
; 除非你知道自己在做什么，否则保留其值为 0</p>
<p>;;;;;;;;;;;;;;<br />
;; 文件上传 ;;<br />
;;;;;;;;;;;;;;</p>
<p>file_uploads = On<br />
; 是否允许HTTP文件上传。参见upload_max_filesize，upload_tmp_dir，post_max_size</p>
<p>;upload_tmp_dir =<br />
; 文件上传时存放文件的临时目录。必须是PHP进程用户可写的目录。如果未指定则PHP使用系统默认值。</p>
<p>upload_max_filesize = 2M<br />
; 允许上传的文件的最大尺寸。</p>
<p>;;;;;;;;;;;;;;<br />
;; 文件打开 ;;<br />
;;;;;;;;;;;;;;</p>
<p>allow_url_fopen = On<br />
; 是否允许打开远程文件( http:// or ftp://)</p>
<p>;from=”john@doe.com”<br />
; 定义匿名ftp的密码(一个email地址)</p>
<p>;user_agent=”PHP”<br />
; 定义”User-Agent”字符串</p>
<p>default_socket_timeout = 60<br />
; socket超时,单位是秒</p>
<p>;auto_detect_line_endings = Off<br />
; 如果的你脚本必须处理Macintosh文件，或者你运行在Macintosh上，同时又要处理unix或win32文件，<br />
; 设置这个标志可以让PHP自动侦察文件结束符，以便fgets()和file()函数正常工作。<br />
; 默认值是 Off，因为在检测第一行的 EOL 习惯时会有很小的性能损失，<br />
; 而且在 Unix 系统下使用回车符作为项目分隔符的人们会遭遇向下不兼容的行为。</p>
<p>;;;;;;;;;;;;;;<br />
;; 动态扩展 ;;<br />
;;;;;;;;;;;;;;<br />
; 若你希望一个扩展库自动加载，可用下面的语法：<br />
; extension=modulename.extension<br />
; 例如，在windows上：<br />
; extension=msql.dll<br />
; 在UNIX上：<br />
; extension=msql.so<br />
; 注意，这只应当是模块的名字，不需要附带目录信息。<br />
; 上面的extension_dir已经指示了扩展库的位置。</p>
<p>;Windows 扩展<br />
;注意，ODBC是内置支持的，不需要使用扩展。（MySQL没有内置）<br />
;extension=php_bz2.dll<br />
;extension=php_cpdf.dll<br />
;extension=php_curl.dll<br />
;extension=php_dba.dll<br />
;extension=php_dbase.dll<br />
;extension=php_dbx.dll<br />
;extension=php_exif.dll<br />
;extension=php_fdf.dll<br />
;extension=php_filepro.dll<br />
;extension=php_gd2.dll<br />
;extension=php_gettext.dll<br />
;extension=php_ifx.dll<br />
;extension=php_iisfunc.dll<br />
;extension=php_imap.dll<br />
;extension=php_interbase.dll<br />
;extension=php_java.dll<br />
;extension=php_ldap.dll<br />
;extension=php_mbstring.dll<br />
;extension=php_mcrypt.dll<br />
;extension=php_mhash.dll<br />
;extension=php_mime_magic.dll<br />
;extension=php_ming.dll<br />
;extension=php_mssql.dll<br />
;extension=php_msql.dll<br />
;extension=php_mysql.dll<br />
;extension=php_oci8.dll<br />
;extension=php_openssl.dll<br />
;extension=php_oracle.dll<br />
;extension=php_pdf.dll<br />
;extension=php_pgsql.dll<br />
;extension=php_shmop.dll<br />
;extension=php_snmp.dll<br />
;extension=php_sockets.dll<br />
;extension=php_sybase_ct.dll<br />
;extension=php_tidy.dll<br />
;extension=php_w32api.dll<br />
;extension=php_xmlrpc.dll<br />
;extension=php_xsl.dll<br />
;extension=php_yaz.dll<br />
;extension=php_zip.dll<br />
;;;;;;;;;;;;;;<br />
;; 模块设置 ;;<br />
;;;;;;;;;;;;;;</p>
<p>[Syslog]<br />
define_syslog_variables = Off<br />
; 是否定义各种的系统日志变量，如：$LOG_PID, $LOG_CRON 等等。<br />
; 关掉它以提高效率的好主意。<br />
; 你可以在运行时调用函数define_syslog_variables()来定义这些变量</p>
<p>[mail function]<br />
SMTP = localhost ;仅用于win32系统<br />
smtp_port = 25 ;仅用于win32系统<br />
;sendmail_from = me@example.com ;仅用于win32系统<br />
;sendmail_path = ;仅用于unix, 也可支持参数（默认的是’sendmail -t -i’）</p>
<p>;mail.force_extra_parameters =<br />
; Force the addition of the specified parameters to be passed as extra parameters to the sendmail binary.<br />
; These parameters will always replace the value of the 5th parameter to mail(), even in safe mode.</p>
<p>[SQL]<br />
sql.safe_mode = Off</p>
<p>[ODBC]<br />
;odbc.default_db = (暂未实现)<br />
;odbc.default_user = (暂未实现)<br />
;odbc.default_pw = (暂未实现)<br />
odbc.allow_persistent = On ; 是否允许持久连接<br />
odbc.check_persistent = On ; 在重用前检查连接是否还可用<br />
odbc.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制<br />
odbc.max_links = -1 ; 每个进程中允许的最大连接数（持久和非持久）。-1 代表无限制</p>
<p>odbc.defaultlrl = 4096<br />
; 处理LONG类型的字段。返回变量的字节数，0代表通过<br />
; Handling of LONG fields. Returns number of bytes to variables. 0 means passthru.</p>
<p>odbc.defaultbinmode = 1<br />
; 处理二进制数据。0代表通过 1返回原样, 2转换为字符<br />
; 参见odbc_binmode和odbc_longreadlen文档以得到uodbc.defaultlrl和uodbc.defaultbinmode的解释。</p>
<p>[MySQL]<br />
; php内置的MySQL扩展库无法同4.1.0以上版本的MySQL一起工作。你需要使用MySQLi扩展。<br />
; MySQLi扩展模块与recode扩展模块共同使用的时候，可能会造成PHP的崩溃和启动时出现问题。<br />
; 如果您需要除latin(默认)以外其它的字符集，您需要安装有已编译字符集支持的外置libmysql(未集成)</p>
<p>mysql.allow_persistent = On ; 允许或禁止持久连接<br />
mysql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制<br />
mysql.max_links = -1 ; 每个进程中允许的最大连接数（持久和非持久）。-1 代表无限制</p>
<p>mysql.default_socket = ; 用于本地MySql连接的默认的套接字名。为空时使用MYSQL内置的默认值<br />
mysql.default_port =<br />
; mysql_connect()使用的默认TCP端口，如果没有指定默认端口号，<br />
; mysql_connect()将按顺序从：(1)$MYSQL_TCP_PORT环境变量、<br />
; (2)/etc/services文件中的mysql-tcp项(unix)、(3)编译时指定的MYSQL_PORT常量 中获得。<br />
; Win32下，只使用 MYSQL_PORT 常量。</p>
<p>mysql.default_host = ; mysql_connect() 默认使用的主机（安全模式下无效）<br />
mysql.default_user = ; mysql_connect() 默认使用的用户名（安全模式下无效）<br />
mysql.default_password =<br />
; mysql_connect() 默认使用的密码（安全模式下无效）<br />
; 注意，在这个文件下保存密码通常是一个坏主意<br />
; 任何可以使用PHP访问的用户都可以运行’echo cfg_get_var(”mysql.default_password”)’来显示密码!<br />
; 而且当然地，任何有读该文件权力的用户也能看到那个密码。</p>
<p>mysql.connect_timeout = 60<br />
; 连接超时(秒)，-1 代表无限制。<br />
; 在Linux中，这个参数设定了等候来自服务器的响应的时长。</p>
<p>mysql.trace_mode = Off<br />
; 跟踪模式。当打开这个特性后，扫描表或索引时SQL的警告将会被显示。</p>
<p>[MySQLI]</p>
<p>mysqli.max_links = -1 ; 每个进程中允许的最大连接数（持久和非持久）。-1 代表无限制</p>
<p>mysqli.default_socket = ; 用于本机MySql连接的默认的套接字名。为空时使用MYSQL内置的默认值<br />
mysqli.default_port = 3306<br />
; mysqli_connect()使用的默认TCP端口，如果没有指定默认端口号，<br />
; mysqli_connect()将按顺序从：(1)$MYSQL_TCP_PORT环境变量、<br />
; (2)/etc/services文件中的mysql-tcp项(unix)、(3)编译时指定的MYSQL_PORT常量 中获得。<br />
; Win32下，只使用 MYSQL_PORT 常量。</p>
<p>mysqli.default_host = ; mysqli_connect() 默认使用的主机（安全模式下无效）<br />
mysqli.default_user = ; mysqli_connect() 默认使用的用户名（安全模式下无效）<br />
mysqli.default_password =<br />
; mysqli_connect() 默认使用的密码（安全模式下无效）<br />
; 注意，在这个文件下保存密码通常是一个坏主意<br />
; 任何可以使用PHP访问的用户都可以运行’echo cfg_get_var(”mysql.default_password”)’来显示密码!<br />
; 而且当然地，任何有读该文件权力的用户也能看到那个密码。</p>
<p>mysqli.reconnect = Off<br />
; 跟踪模式。当打开这个特性后，扫描表或索引时SQL的警告将会被显示。</p>
<p>[mSQL]<br />
msql.allow_persistent = On ; 允许或禁止持久连接<br />
msql.max_persistent = -1 ; 最大持久连接数。-1 代表无限制<br />
msql.max_links = -1 ; 最大连接数（持久和非持久）。-1 代表无限制</p>
<p>[PostgresSQL]<br />
pgsql.allow_persistent = On ; 允许或禁止持久连接<br />
pgsql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制<br />
pgsql.max_links = -1 ; 每个进程中允许的最大连接数（持久和非持久）。-1 代表无限制</p>
<p>pgsql.auto_reset_persistent = Off<br />
; 检测用在pg_pconnect()上中断了的持久连接，需要一些额外开销。</p>
<p>pgsql.ignore_notice = 0<br />
; 是否忽略PostgreSQL后端的通告消息。记录后端的通告消息需要一些额外开销。</p>
<p>pgsql.log_notice = 0<br />
; 是否在日志中记录PostgreSQL后端的通告消息。除非pgsql.ignore_notice=0，否则无法记录。</p>
<p>[Sybase]<br />
sybase.allow_persistent = On ; 允许或禁止持久连接<br />
sybase.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制<br />
sybase.max_links = -1 ; 每个进程中允许的最大连接数（持久和非持久）。-1 代表无限制<br />
;sybase.interface_file = “/usr/sybase/interfaces”<br />
sybase.min_error_severity = 10 ; 显示错误的最低严重性<br />
sybase.min_message_severity = 10 ; 显示消息的最低重要性</p>
<p>sybase.compatability_mode = Off<br />
; 与PHP3兼容的模式。若打开，这将导致PHP自动根据结果的Sybase类型赋值，而不是把它们全当成字符串。<br />
; 这个兼容模式不会永远保留，将来会被丢弃。</p>
<p>[Sybase-CT]<br />
sybct.allow_persistent = On ; 允许或禁止持久连接<br />
sybct.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制<br />
sybct.max_links = -1 ; 每个进程中允许的最大连接数（持久和非持久）。-1 代表无限制<br />
sybct.min_server_severity = 10 ; 显示服务端错误的最低严重性<br />
sybct.min_client_severity = 10 ; 显示客户端错误的最低严重性</p>
<p>[dbx]<br />
; returned column names can be converted for compatibility reasons<br />
; possible values for dbx.colnames_case are<br />
; “unchanged” (default, if not set)<br />
; “lowercase”<br />
; “uppercase”<br />
; the recommended default is either upper- or lowercase, but<br />
; unchanged is currently set for backwards compatibility<br />
dbx.colnames_case = “unchanged”</p>
<p>[bcmath]<br />
bcmath.scale = 0<br />
; 用于所有bcmath函数的10十进制数数字的个数</p>
<p>[browscap]<br />
;browscap = extra/browscap.ini<br />
;browscap = c:/windows/system32/inetsrv/browscap.ini ;winxp<br />
;browscap = c:/winnt/system32/inetsrv/browscap.ini ;win2000<br />
; 只有PWS和IIS需要这个设置<br />
; 你可以从http://www.garykeith.com/browsers/downloads.asp 得到一个 browscap.ini 文件。</p>
<p>[Informix]<br />
ifx.default_host = ; ifx_connect() 默认使用的主机（安全模式下无效）<br />
ifx.default_user = ; ifx_connect() 默认使用的用户名（安全模式下无效）<br />
ifx.default_password = ; ifx_connect() 默认使用的密码（安全模式下无效）<br />
ifx.allow_persistent = On ; 允许或禁止持久连接<br />
ifx.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制<br />
ifx.max_links = -1 ; 每个进程中允许的最大连接数（持久和非持久）。-1 代表无限制</p>
<p>ifx.textasvarchar = 0<br />
; 若打开，select状态符返回一个”text blob”字段的内容，而不是它的id</p>
<p>ifx.byteasvarchar = 0<br />
; 若打开，select状态符返回一个”byte blob”字段的内容，而不是它的id</p>
<p>ifx.charasvarchar = 0<br />
; 追踪从固定长度的字符列里剥离的空格。可能对 Informix SE 用户有效。</p>
<p>ifx.blobinfile = 0<br />
; 若打开，text和byte blobs的内容被导出到一个文件而不是保存到内存。</p>
<p>ifx.nullformat = 0<br />
; 设为0, NULL被作为空字段返回。设为1, NULL作为字串”NULL”返回。</p>
<p>[Session]<br />
; 注意，除非使用session_register()或$_SESSION注册了一个变量。<br />
; 否则不管是否使用了session_start()，都不会自动添加任何session记录。</p>
<p>session.save_handler = files<br />
; 用于保存/检索数据的处理程序，默认是文件(files)。</p>
<p>;session.save_path = “/tmp”<br />
; 在”session.save_handler=files”的情况下，这个参数指定了会话数据文件的保存路径。<br />
; Windows用户必须修改此参数才能使用会话相关函数。<br />
; 你可以这样定义路径(N是一个整数)：session.save_path = “N;[MODE;]/path”<br />
; N表示可以使用N层深度的子目录，而不是将所有数据文件都保存在一个目录下。<br />
; [MODE;]加了括号表示可选，表示它必须用8进制数来表示，其默认值是600 (等于384)。<br />
; The file storage module creates files using mode 600 by default.<br />
; Note that this does not overwrite the process’s umask.<br />
; 这是一个提高Windows下海量会话性能的好主意。<br />
; 注意0: “N;/path”两边的双引号不能省略。<br />
; 注意1: php不会自动建立这些文件夹结构。你可以使用ext/session目录下的脚本来做这件事情。<br />
; 注意2: 如果你指定的文件夹可以被不安全的用户读取(比如默认的”/tmp”)，那么将会带来安全漏洞。<br />
; 注意3: 参见下面有关垃圾搜集的章节。</p>
<p>session.use_cookies = 1<br />
; 是否使用cookie在客户端保存session id，默认为1(使用)</p>
<p>;session.use_only_cookies = 1<br />
; 只使用Cookie来承载会话，默认为0 (关闭)<br />
; 打开这个选项可以避免用URL传递会话带来的安全问题。但是禁用Cookie的客户端将使session无法工作。</p>
<p>session.name = PHPSESSID<br />
;用在cookie里的会话标识名，只能包含字母和数字。</p>
<p>session.auto_start = 0<br />
; 在客户访问任何页面时自动初始化会话，默认禁止。<br />
; 因为类定义必须在session启动之前被载入，所以若打开这个选项，你就不能在sessions中存放对象。</p>
<p>session.cookie_lifetime = 0<br />
; session_cookie的有效期(秒)，若为0，则仅在浏览器打开期间有效。</p>
<p>session.cookie_path = /<br />
; session_cookie的作用路径</p>
<p>session.cookie_domain =<br />
; session_cookie的作用域，默认为空。</p>
<p>session.serialize_handler = php<br />
; 用来序列化/解序列化数据的处理程序，php是PHP的标准序列化/解序列化处理程序。</p>
<p>session.gc_probability = 1<br />
session.gc_divisor = 100<br />
;[recommended]-&gt;session.gc_divisor = 1000<br />
; 定义在每次初始化会话时，启动垃圾回收程序的概率。<br />
; 这个收集概率计算公式如下：gc_probability/gc_divisor<br />
; 比如：1/100 表示每一个新会话初始化时，有1%的概率会启动垃圾回收程序。</p>
<p>session.gc_maxlifetime = 1440<br />
; 经过此参数所指的秒数后，保存的数据将被视为’垃圾’并由垃圾回收程序清理。<br />
; 判断的标准是文件建立的时间，而不是最后刷新数据的时间。<br />
; 注意: 如果你使用了子目录来存储会话的数据文件(参见：session.save_path)，垃圾回收程序不会自动启动。<br />
; 你必须使用一个你自己编写的shell脚本、克隆目录或者其他办法来执行垃圾搜集。<br />
; 比如，下面的脚本相当于设置了”session.gc_maxlifetime=1440″ (24分钟)：<br />
; cd /path/to/sessions; find -cmin +24 | xargs rm</p>
<p>session.bug_compat_42 = 1<br />
;[recommended]-&gt;session.bug_compat_42 = 0<br />
session.bug_compat_warn = 1<br />
; PHP4.2之前的版本有一个未注明的”特性”(也可看作bug)：<br />
; 即使在”register_globals = Off”的情况下也允许初始化全局session变量，<br />
; 如果你在PHP4.3之后的版本中使用这个特性，会显示一条警告。你可以分别禁用这个特性和警告。<br />
; 若打开bug_compat_42，将只显示警告。</p>
<p>session.referer_check =<br />
; 检查HTTP头中的”Referer”以判断包含于URL中的会话id是否有效<br />
; HTTP_REFERER必须包含这个参数指定的字符串，否则URL中的会话id将被视为无效。<br />
; 默认为空，即不检查。</p>
<p>;session.entropy_length = 16<br />
; 从文件中读取多少字节（entropy：平均信息量）[设定session从高熵值资源读取的位数。]<br />
; 默认为0，表示禁用。<br />
; How many bytes to read from the file. Defaults to 0 (disabled).<br />
; specifies the number of bytes which will be read from the file specified above.</p>
<p>;session.entropy_file = /dev/urandom<br />
; 指定创建会话id的文件夹[使用外部高熵值资源或文件来建立session代码，例如 UNIX 系统上的 /dev/random?或 /dev/urandom]<br />
; Specified here to create the session id.<br />
; gives a path to an external resource (file) which will be used as an additional entropy source<br />
; in the session id creation process.<br />
; Examples are /dev/random or /dev/urandom which are available on many Unix systems.</p>
<p>session.cache_limiter = nocache<br />
; 设为{none/nocache/private/private_no_expire/public}以指定会话页面的缓存控制模式，<br />
; 或者设为空以阻止在http应答头中发送禁用缓存的命令。<br />
; 默认为”nocache”</p>
<p>session.cache_expire = 180<br />
; 指定会话页面在客户端cache中的有效期限(分钟)<br />
; “session.cache_limiter=nocache”时，此设置将失效。</p>
<p>session.use_trans_sid = 0<br />
; 默认是禁止用明码在URL中显示sid(session_id)的，因为它会给你的用户带来安全危险，因为：<br />
; 1- 用户可能将包含有效sid的URL 通过email/irc/QQ/MSN…途径告诉给其他人。<br />
; 2- 包含有效sid的URL可能会被保存在公用电脑上。<br />
; 3- 用户可能保存带有固定不变sid的URL在他们的收藏夹或者浏览历史纪录里面。</p>
<p>session.hash_function = 0<br />
;[recommended]-&gt;session.hash_function = 1<br />
; 生成session_id的hash函数，SHA-1的安全性更高一些<br />
; 0: MD5 (128 bits)<br />
; 1: SHA-1 (160 bits)</p>
<p>session.hash_bits_per_character = 4<br />
;[recommended]-&gt;session.hash_bits_per_character = 5<br />
; 指定在session_id字符串中的每个字符内保存多少位二进制数，<br />
; 这些二进制数是hash函数的运算结果。<br />
; 4 bits: 0-9, a-f<br />
; 5 bits: 0-9, a-v<br />
; 6 bits: 0-9, a-z, A-Z, “-”, “,”</p>
<p>url_rewriter.tags = “a=href,area=href,frame=src,input=src,form=,fieldset=”<br />
;[recommended]-&gt;url_rewriter.tags = “a=href,area=href,frame=src,input=src,form=fakeentry”<br />
; 指定重写哪些HTML标签来包含sid(session_id)（仅在”session.use_trans_sid”打开的情况下有效）<br />
; form和fieldset比较特殊：<br />
; 如果你包含他们，URL重写器将添加一个隐藏的”<br />
“，它包含了本应当额外追加到URL上的信息。<br />
; 如果你想兼容XHTML标准，请使用”fieldset”代替”form”。<br />
; 注意：所有合法的项都需要一个等号——即使后面没有值。</p>
<p>[MSSQL]<br />
mssql.allow_persistent = On ; 允许或禁止持久连接<br />
mssql.max_persistent = -1 ; 每个进程中允许的最大持久连接数。-1 代表无限制<br />
mssql.max_links = -1 ; 每个进程中允许的最大连接数（持久和非持久）。-1 代表无限制<br />
mssql.min_error_severity = 10 ; 显示错误的最低严重性<br />
mssql.min_message_severity = 10 ; 显示消息的最低重要性<br />
mssql.compatability_mode = Off ; 与旧版的PHP3.0兼容的模式。<br />
;mssql.connect_timeout = 5 ; 连接超时(秒)<br />
;mssql.timeout = 60 ; 查询超时(秒)<br />
;mssql.textlimit = 4096 ; 取值范围：0 &#8211; 2147483647<br />
;mssql.textsize = 4096 ; 取值范围：0 &#8211; 2147483647</p>
<p>;mssql.batchsize = 0<br />
; 每批记录最大条数（0 表示所有记录都在一批当中）</p>
<p>;mssql.datetimeconvert = On<br />
; 指定datetime/datetim4字段的返回方式。<br />
; On =&gt; 按照SQL server的设置返回<br />
; Off =&gt; 按照 YYYY-MM-DD hh:mm:ss 格式返回</p>
<p>mssql.secure_connection = Off<br />
; 连接到数据库时使用NT身份认证</p>
<p>;mssql.max_procs = 25<br />
; 指定最大进程数，默认为 25</p>
<p>[Assertion]<br />
;assert.active = On ; 断言(表达式)，默认生效。<br />
;assert.warning = On ; 为每个失败的断言发出警告。<br />
;assert.bail = Off ; 默认不释放。<br />
;assert.callback = 0 ; 如果断言失败，就调用一个用户函数。<br />
;assert.quiet_eval = 0<br />
; Eval the expression with current error_reporting(). Set to true if you want error_reporting(0) around the eval().</p>
<p>[Ingres II]<br />
ingres.allow_persistent = On ; 允许或禁止持久连接<br />
ingres.max_persistent = -1 ; 最大持久连接数。-1 代表无限制<br />
ingres.max_links = -1 ; 最大连接数（持久和非持久）。-1 代表无限制<br />
ingres.default_database = ; 默认 database (format : [node_id::]dbname[/srv_class]<br />
ingres.default_user = ; 默认 user<br />
ingres.default_password = ; 默认 password</p>
<p>[Verisign Payflow Pro]<br />
pfpro.defaulthost = “test-payflow.verisign.com” ; 默认的 Signio 服务器; Default Payflow Pro server.<br />
pfpro.defaultport = 443 ; 连接的默认端口; Default port to connect to.<br />
pfpro.defaulttimeout = 30 ; 按秒计的默认超时时间; Default timeout in seconds.<br />
;pfpro.proxyaddress = ; 默认的代理的 IP 地址（如果需要）; Default proxy IP address (if required).<br />
;pfpro.proxyport = ; 默认的代理的端口; Default proxy port.<br />
;pfpro.proxylogon = ; 默认的代理的登录用户名; Default proxy logon.<br />
;pfpro.proxypassword = ; 默认的代理的密码; Default proxy password.</p>
<p>[com]<br />
;com.typelib_file = ; 包含GUID文件的路径, IID或包含类型库的文件<br />
;com.allow_dcom = true ; 允许分布式COM调用<br />
;com.autoregister_typelib = true ; com_load()函数自动注册类型库组件常数<br />
;com.autoregister_casesensitive = false ; 自动注册类型库组件常数时大小写敏感<br />
;com.autoregister_verbose = true ; 对重复注册的常量显示警告</p>
<p>[mbstring]<br />
;mbstring.language = Japanese<br />
; 用于内部字符表示的语言</p>
<p>;mbstring.internal_encoding = EUC-JP<br />
; internal/script编码。<br />
; 注意：有些编码不能用</p>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2008/11/948/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用simplexml处理atom数据</title>
		<link>http://www.5ga.cn/blog/archives/2008/08/373/</link>
		<comments>http://www.5ga.cn/blog/archives/2008/08/373/#comments</comments>
		<pubDate>Sat, 02 Aug 2008 03:47:00 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=373</guid>
		<description><![CDATA[　　很多博客使用atom来输出数据，但是atom使用了名称空间(namespace)，所以现在请求被命名的元素和本地名称时必须指定名称空间统一资源标识符（URI），还有一点就是simplexml的xpath方法无法直接query这个xml tree。 　　从 PHP 5.1 版开始，SimpleXML 可以直接对带名称空间的文档使用 XPath 查询。和通常一样，XPath 位置路径必须使用名称空间前缀，即使搜索的文档使用默认名称空间也仍然如此。registerXPathNamespace() 函数把前缀和后续查询中使用的名称空间 URL 联系在一起。 下面是使用xpath查询atom文档title元素的例子： 12345$atom = &#160;simplexml_load_file&#40;'http://www.ooso.net/index.php/feed/atom'&#41;; $atom-&#62;registerXPathNamespace&#40;'atom', 'http://www.w3.org/2005/Atom'&#41;; $titles = $atom-&#62;xpath&#40;'//atom:title'&#41;; foreach &#40;$titles as $title&#41; echo &#34;&#60;h2&#62;&#34; . $title . &#34;&#60;/h2&#62;&#34;; 用simplexml处理rss数据 wordpress可以输出rss2的数据源，这里面也有一些不同的namespace，比如dc。一个使用simplexml解析rss2的例子： 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849$ns = array &#40; &#160; &#160; &#160; &#160; 'content' =&#62; 'http://purl.org/rss/1.0/modules/content/', &#160; &#160; &#160; &#160; 'wfw' =&#62; 'http://wellformedweb.org/CommentAPI/', &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>　　很多博客使用atom来输出数据，但是atom使用了名称空间(namespace)，所以现在请求被命名的元素和本地名称时必须指定名称空间统一资源标识符（URI），还有一点就是simplexml的xpath方法无法直接query这个xml tree。</p>
<p>　　从 PHP 5.1 版开始，SimpleXML 可以直接对带名称空间的文档使用 XPath 查询。和通常一样，XPath 位置路径必须使用名称空间前缀，即使搜索的文档使用默认名称空间也仍然如此。registerXPathNamespace() 函数把前缀和后续查询中使用的名称空间 URL 联系在一起。<span id="more-373"></span></p>
<p><strong>下面是使用xpath查询atom文档title元素的例子：</strong></p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$atom</span> <span style="color: #339933;">=</span> &nbsp;<span style="color: #990000;">simplexml_load_file</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.ooso.net/index.php/feed/atom'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$atom</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">registerXPathNamespace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'atom'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'http://www.w3.org/2005/Atom'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$titles</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$atom</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">xpath</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'//atom:title'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$titles</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$title</span><span style="color: #009900;">&#41;</span> <br />
<span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;&lt;h2&gt;&quot;</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$title</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">&quot;&lt;/h2&gt;&quot;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p><strong>用simplexml处理rss数据</strong></p>
<p>wordpress可以输出rss2的数据源，这里面也有一些不同的namespace，比如dc。一个使用simplexml解析rss2的例子：</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:700px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000088;">$ns</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span> <span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'content'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'http://purl.org/rss/1.0/modules/content/'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'wfw'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'http://wellformedweb.org/CommentAPI/'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'dc'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'http://purl.org/dc/elements/1.1/'</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #000088;">$articles</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #666666; font-style: italic;">// step 1: 获得feed</span><br />
<span style="color: #000088;">$blogUrl</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://www.ooso.net/index.php/feed/rss2'</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$xml</span> <span style="color: #339933;">=</span> simplexml_load_url<span style="color: #009900;">&#40;</span><span style="color: #000088;">$blogUrl</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #666666; font-style: italic;">// step 2: 获得channel metadata</span><br />
<span style="color: #000088;">$channel</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$channel</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'title'</span><span style="color: #009900;">&#93;</span> &nbsp; &nbsp; &nbsp; <span style="color: #339933;">=</span> <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">channel</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">title</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$channel</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'link'</span><span style="color: #009900;">&#93;</span> &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #339933;">=</span> <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">channel</span><span style="color: #339933;">-&gt;</span><span style="color: #990000;">link</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$channel</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'description'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">channel</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">description</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$channel</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pubDate'</span><span style="color: #009900;">&#93;</span> &nbsp; &nbsp; <span style="color: #339933;">=</span> <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pubDate</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$channel</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'timestamp'</span><span style="color: #009900;">&#93;</span> &nbsp; <span style="color: #339933;">=</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pubDate</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$channel</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'generator'</span><span style="color: #009900;">&#93;</span> &nbsp; <span style="color: #339933;">=</span> <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">generator</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$channel</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'language'</span><span style="color: #009900;">&#93;</span> &nbsp; &nbsp;<span style="color: #339933;">=</span> <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">language</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #666666; font-style: italic;">// step 3: 获得articles</span><br />
<span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">channel</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">item</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$item</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'channel'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$blog</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'title'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">title</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'link'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #990000;">link</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'comments'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">comments</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'pubDate'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pubDate</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'timestamp'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">pubDate</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'description'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span> <span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">description</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'isPermaLink'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">guid</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'isPermaLink'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// get data held in namespaces</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$content</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">children</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ns</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'content'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$dc</span> &nbsp; &nbsp; &nbsp;<span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">children</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ns</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'dc'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$wfw</span> &nbsp; &nbsp; <span style="color: #339933;">=</span> <span style="color: #000088;">$item</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">children</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ns</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'wfw'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'creator'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$dc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">creator</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$dc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">subject</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$subject</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'subject'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #000088;">$subject</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'content'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>string<span style="color: #009900;">&#41;</span><span style="color: #990000;">trim</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">encoded</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'commentRss'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$wfw</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">commentRss</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span style="color: #666666; font-style: italic;">// add this article to the list</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$articles</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$article</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'timestamp'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$article</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>这个例子中，使用children方法来获得名称空间中的数据：</p>
<pre lang="php">$dc = $item->children($ns['dc']); </pre>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2008/08/373/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>网页后退不再出现过期</title>
		<link>http://www.5ga.cn/blog/archives/2006/08/194/</link>
		<comments>http://www.5ga.cn/blog/archives/2006/08/194/#comments</comments>
		<pubDate>Tue, 29 Aug 2006 08:51:54 +0000</pubDate>
		<dc:creator>嘎嘎</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.5ga.cn/blog/?p=194</guid>
		<description><![CDATA[有时候刷新或后退后就出现过期,十分讨厌!用这个后就好了! 1234567&#60;?php ob_start&#40;&#41;; if&#40;function_exists&#40;session_cache_limiter&#41;&#41;&#123; &#160; &#160; session_cache_limiter&#40;&#34;private, must-revalidate&#34;&#41;; &#125; session_start&#40;&#41;; ?&#62;]]></description>
			<content:encoded><![CDATA[<p>有时候刷新或后退后就出现过期,十分讨厌!用这个后就好了!</p>
<div class="codecolorer-container php mac-classic" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">&lt;?php</span><br />
<span style="color: #990000;">ob_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">session_cache_limiter</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #990000;">session_cache_limiter</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;private, must-revalidate&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><br />
<span style="color: #990000;">session_start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000000; font-weight: bold;">?&gt;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://www.5ga.cn/blog/archives/2006/08/194/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

