<?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>IT狂人的博客 &#187; CodeIgniter</title>
	<atom:link href="http://www.yinzhili.com/category/codeigniter/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yinzhili.com</link>
	<description>世界上有10种人:一种是懂二进制的，另一种是不懂的。</description>
	<lastBuildDate>Thu, 22 Jul 2010 03:51:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>教程：如何使用CodeIgniter来更新Twitter</title>
		<link>http://www.yinzhili.com/2009/10/how-to-update-your-twitter-status-with-codeigniter.html</link>
		<comments>http://www.yinzhili.com/2009/10/how-to-update-your-twitter-status-with-codeigniter.html#comments</comments>
		<pubDate>Wed, 14 Oct 2009 01:33:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.yinzhili.com/?p=104</guid>
		<description><![CDATA[这是一篇原创译文，<strong>转载请注明出处</strong>。
原文作者Drazen Mokic，你可以在 <a href="http://net.tutsplus.com/tutorials/php/how-to-update-your-twitter-status-with-codeigniter/">这里</a> 看到原文。
在这个教程里面我们将使用CodeIgniter，通过Twitter API来更新我们的twitter状态。我建议大家一步一步的学习，而不要走马观花式的浏览教程。让我们开始深入学习吧！
教程细节
程序：C[......]<p class='read-more'><a href='http://www.yinzhili.com/2009/10/how-to-update-your-twitter-status-with-codeigniter.html'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">这是一篇原创译文，<strong>转载请注明出处</strong>。<br />
原文作者Drazen Mokic，你可以在 <a href="http://net.tutsplus.com/tutorials/php/how-to-update-your-twitter-status-with-codeigniter/">这里</a> 看到原文。</span></p>
<p>在这个教程里面我们将使用CodeIgniter，通过Twitter API来更新我们的twitter状态。我建议大家一步一步的学习，而不要走马观花式的浏览教程。让我们开始深入学习吧！</p>
<p>教程细节<br />
程序：CodeIgniter框架<br />
版本：1.7.1<br />
难度：高级<br />
预计完成时间：30分钟</p>
<h3>1.配置CodeIgniter</h3>
<p>首先我们需要对CI的默认配置进行修改。打开 <span style="color: #ff0000;">system/application/config/autoload.php</span> 文件，找到下面这行</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$autoload</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'libraries'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>修改为</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$autoload</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'libraries'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'database'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这样就可以自动加载数据库了。接下来，打开 <span style="color: #0000ff;">database.php </span>并修改其中的数据库连接设置-你的数据库名、用户名以及密码。我们使用的名称是 <span style="color: #0000ff;">ci_twitter_api</span>。<br />
现在打开 <span style="color: #0000ff;">config.php</span>，并修改 <span style="color: #0000ff;">base_url</span> 为你的CI目录路径。我使用的目录叫做 <span style="color: #0000ff;">twitter_api</span>，我的 <span style="color: #0000ff;">system</span>目录就保存在那个位置，因此我的 <span style="color: #0000ff;">base_url</span> 会是</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$config</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'base_url'</span><span style="color: #009900;">&#93;</span>	<span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://localhost/ci/twitter_api&quot;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>2.填充数据库</h3>
<p>因为我们将要用到数据库，所以我们需要填充一些数据。打开 phpMyAdmin 或者其它你喜欢的数据库管理工具，创建一个新的数据库，命名为 <span style="color: #0000ff;">ci_twitter_api</span>。现在我们将要使用下面的SQL查询语句来创建一个表，但请注意，使用你自己的twitter用户名和密码。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">IF</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">EXISTS</span> <span style="color: #ff0000;">`accounts`</span> <span style="color: #66cc66;">&#40;</span>
     <span style="color: #ff0000;">`id`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span> <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">,</span>
     <span style="color: #ff0000;">`username`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">120</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
     <span style="color: #ff0000;">`password`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">32</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
     <span style="color: #ff0000;">`active`</span> int<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">11</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
     <span style="color: #ff0000;">`last_message`</span> varchar<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">140</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">NOT</span> <span style="color: #993333; font-weight: bold;">NULL</span><span style="color: #66cc66;">,</span>
     <span style="color: #993333; font-weight: bold;">PRIMARY</span> <span style="color: #993333; font-weight: bold;">KEY</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">&#41;</span>
   <span style="color: #66cc66;">&#41;</span> ENGINE<span style="color: #66cc66;">=</span>MyISAM  <span style="color: #993333; font-weight: bold;">DEFAULT</span> CHARSET<span style="color: #66cc66;">=</span>latin1 <span style="color: #993333; font-weight: bold;">AUTO_INCREMENT</span><span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span> ;
&nbsp;
   <span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> <span style="color: #ff0000;">`accounts`</span> <span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">`id`</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`username`</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`password`</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`active`</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">`last_message`</span><span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">VALUES</span>
   <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'&lt;strong&gt;YOUR USERNAME&lt;/strong&gt;'</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'&lt;strong&gt;YOUR PASSWORD&lt;/strong&gt;'</span><span style="color: #66cc66;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'No message sent.'</span><span style="color: #66cc66;">&#41;</span>;</pre></td></tr></table></div>

<div id="attachment_107" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-107" title="图1" src="http://www.yinzhili.com/wp-content/uploads/2009/10/img11.jpg" alt="图1" width="500" height="300" /><p class="wp-caption-text">图1</p></div>
<p>单击右边的 <span style="color: #0000ff;"><strong>OK </strong></span>按钮，查询就会被提交。现在你的<span style="color: #0000ff;">accounts</span>表的结构应该和下图是类似的:</p>
<div id="attachment_109" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-109" title="图2" src="http://www.yinzhili.com/wp-content/uploads/2009/10/img2.jpg" alt="图2" width="500" height="81" /><p class="wp-caption-text">图2</p></div>
<h3>3.构建模型</h3>
<p>转到 <span style="color: #ff0000;">system/application/models</span> 下面，新建一个文件并命名为 <span style="color: #0000ff;">twitter_model.php</span>。<br />
首先，我们在顶部声明两个全局变量。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$accounts_table</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'accounts'</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$update_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://twitter.com/statuses/update.xml'</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>因此，<span style="color: #0000ff;">$accounts_table</span> 对应的是我们之前所创建的表，<span style="color: #0000ff;">$update_url</span> 则是我们用来更新状态的URL。如果Twitter更改了它的更新URL，你只需要修改一次就可以了，不必每次都修改。<br />
现在我们将要创建第一个方法，作用是返回数据库中存储的活跃用户帐户，依据是active字段及其值1。我添加了这一项是因为可能有些人拥有多个twitter账户。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Twitter_model <span style="color: #000000; font-weight: bold;">extends</span> Model <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// get the active twitter account from the database, by row active = 1</span>
    <span style="color: #000000; font-weight: bold;">function</span> getActiveAccount<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_where</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">accounts_table</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'active'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">row</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>我们简单的使用 ActiveRecord 来检索活跃的账户并返回受影响的行。<br />
下一步，我们将要构建主要方法，也就是 <span style="color: #0000ff;">update </span>方法。它将要用到我们的用户名、密码以及我们想要在Twitter上更新的消息。除此之外，它还将对Twitter所返回的 HTTP_CODE 进行解析，以便告诉我们更新是否成功。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// update twitter status and last message on success</span>
<span style="color: #000000; font-weight: bold;">function</span> update_status<span style="color: #009900;">&#40;</span><span style="color: #000088;">$username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$password</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$ch</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POST<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POSTFIELDS<span style="color: #339933;">,</span> <span style="color: #0000ff;">'status='</span><span style="color: #339933;">.</span><span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_USERPWD<span style="color: #339933;">,</span> <span style="color: #000088;">$username</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">':'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$httpcode</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_getinfo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLINFO_HTTP_CODE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// if we were successfull we need to update our last_message</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$httpcode</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'200'</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'active'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">accounts_table</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'last_message'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">else</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>乍一看去这段代码有点复杂，但并不是很难理解的。最重要的一点是，我们使用了 cURL 和Twitter进行通信。cURL是一个非常优秀的库，允许我们通过它来发送和接收来自Twitter的HTTP POST数据。<br />
那么，curl_init 初始化一个cURL会话并将URL作为参数接受-在我们这个案例中就是Twitter API所提供的更新URL。<br />
我们通过 curl_setopt 设置了一些选项，这些对于 cURL传输来说是必不可少的。</p>
<ul><strong><span style="color: #0000ff;">CURLOPT_POST</span>:</strong> 此项设置为&#8217;1&#8242;，表示我们将使用 HTTP POST，这与HTML表单中是一样的。<br />
<strong><span style="color: #0000ff;">CURLOPT_POSTFIELDS</span>:</strong> 此项接收的是我们想要发送的 POST 数据。在本案例中是 &#8217;status=&#8217; 和我们要发送的消息。我们需要对消息进行 urlencode ，以便使用 &#8216;%&amp;/&#8221; 这类的特殊字符。<br />
<strong><span style="color: #0000ff;">CURLOPT_RETURNTRANSFER</span>: </strong>将此项设置为&#8217;1&#8242;是非常重要的，因为它将把传输作为字符串返回。这一字符串将告诉我们更新是否成功。<br />
<strong><span style="color: #0000ff;">CURLOPT_USERPWD</span>: </strong>此项的作用是身份验证。它只是以 <em><span style="color: #0000ff;">用户名:密码</span></em> 这种格式包含我们的twitter帐户信息。</ul>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$httpcode</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_getinfo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLINFO_HTTP_CODE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// if we were successfull we need to update our last_message</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$httpcode</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'200'</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'active'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">accounts_table</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'last_message'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>在这一部分我们通过 curl_exec() 执行传输并且使用 <span style="color: #0000ff;">curl_getinfo(CURLINFO_HTTP_CODE) </span>来检索返回的HTTP_CODE。这里的HTTP_CODE将告诉我们更新是否成功。代码&#8217;200&#8242;表示更新成功。你可以在 <a href="http://apiwiki.twitter.com/HTTP-Response-Codes-and-Errors">这里</a> 查看到一份完整的HTTP状态代码列表。<br />
如果我们收到了Twitter所返回的&#8217;200&#8242;，我们将向数据库发出一条查询语句，用来更新last_message字段，最后我们返回TRUE。如果Twitter没有返回200，我们简单的返回FALSE。<br />
为了完成我们的 twitter_model，我们还将创建最后一个方法，作用是获取我们最后发送的信息。我们之所以需要这个方法是因为我们要在视图中显示最近发送的信息。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// get the last_message, by row active = 1</span>
<span style="color: #000000; font-weight: bold;">function</span> getLastMessage<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">select</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'last_message'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$last_message</span> <span style="color: #339933;">=</span>  <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_where</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">accounts_table</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'active'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">row</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">last_message</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$last_message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>这个方法很简单。它从我们的活跃帐户所对应的last_message字段检索信息，并经过 htmlspecialchars 转换成HTML实体返回。我们的 twitter_model.php 看起来像这样:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">class</span> Twitter_model <span style="color: #000000; font-weight: bold;">extends</span> Model <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$accounts_table</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'accounts'</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$update_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://twitter.com/statuses/update.xml'</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// get the active twitter account from the database, by row active = 1</span>
	<span style="color: #000000; font-weight: bold;">function</span> getActiveAccount<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_where</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">accounts_table</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'active'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">row</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// update twitter status and last message on success</span>
	<span style="color: #000000; font-weight: bold;">function</span> update_status<span style="color: #009900;">&#40;</span><span style="color: #000088;">$username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$password</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$ch</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_init</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update_url</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POST<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_POSTFIELDS<span style="color: #339933;">,</span> <span style="color: #0000ff;">'status='</span><span style="color: #339933;">.</span><span style="color: #990000;">urlencode</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_RETURNTRANSFER<span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #990000;">curl_setopt</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLOPT_USERPWD<span style="color: #339933;">,</span> <span style="color: #000088;">$username</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">':'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #990000;">curl_exec</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$httpcode</span> <span style="color: #339933;">=</span> <span style="color: #990000;">curl_getinfo</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ch</span><span style="color: #339933;">,</span> CURLINFO_HTTP_CODE<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// if we were successfull we need to update our last_message</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$httpcode</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'200'</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">where</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'active'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">accounts_table</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'last_message'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">else</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// get the last_message, by row active = 1</span>
	<span style="color: #000000; font-weight: bold;">function</span> getLastMessage<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">select</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'last_message'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$last_message</span> <span style="color: #339933;">=</span>  <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">db</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_where</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">accounts_table</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'active'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'1'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">row</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">last_message</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #990000;">htmlspecialchars</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$last_message</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>4.构建控制器<br />
现在转到 <span style="color: #ff0000;">system/application/controllers</span>，新建一个文件，命名为 twitter.php。让我们添加几行：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Twitter <span style="color: #000000; font-weight: bold;">extends</span> Controller <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> Twitter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	parent<span style="color: #339933;">::</span><span style="color: #004000;">Controller</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">model</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter_model'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>这是一个简单的CI构造函数，加载我们的 twitter_model。因此整个控制器都是可用的。下面是 index() 方法。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'heading'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Hi, send a tweet!'</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'last_message'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getLastMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'active_user'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getActiveAccount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">username</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'header'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'footer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>我们将文本、最近的消息、活跃帐户的用户名等信息传递给 $data 数组。获取最近的消息以及活跃的用户名变得轻而易举，这应该归功于我们的 twitter_model。最后我们加载一些视图(编写完控制器后就会创建它们)。让我们来构建 update 方法吧。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// updating our status on twitter ( new message )</span>
<span style="color: #000000; font-weight: bold;">function</span> update<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">input</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'submit'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'form_validation'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_error_delimiters</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'&lt;div class=&quot;error&quot;&gt;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_rules</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Message'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'trim|required|min_length[5]|max_length[140]'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">run</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">index</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">else</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$message</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">input</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// get useraccount data</span>
			<span style="color: #000088;">$account</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getActiveAccount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$username</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$account</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">username</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$account</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">password</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// send a tweet</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update_status</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$password</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
			<span style="color: #009900;">&#123;</span>
				redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
&nbsp;
			<span style="color: #b1b100;">else</span>
			<span style="color: #009900;">&#123;</span>
				<span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'There was an error while updating your status'</span><span style="color: #339933;">;</span>
&nbsp;
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'header'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'footer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>这可能又会使你感到迷惑，但我们还是逐步的完成它。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">input</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'submit'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'form_validation'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_error_delimiters</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'
&lt;div class=&quot;error&quot;&gt;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;/div&gt;
'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_rules</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Message'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'trim|required|min_length[5]|max_length[140]'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">run</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">index</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>我们通过 <span style="color: #0000ff;">$this->input->post(&#8217;submit&#8217;)  </span>检查表单(稍后我们会在主要的视图文件中创建它)是否已被提交。然后，我们加载表单验证类，因为我们希望使用某些输入规则，比如最短5个字符、最多140个字符。此外我们还使用 trim 来过滤掉空格，并将此字段设置为 required(必需)，因为我们不需要空的消息。set_rules函数的第一个参数是表单字段的名称，在本案例中是 message (稍后我们会在视图中创建它)，第二个参数则是此表单字段的“人性化”的名称，它将被插入到错误信息中(将在视图文件中完成)。<br />
我们调用 <span style="color: #0000ff;">$this->form_validation->run()</span> ，此方法返回 TRUE 或者 FALSE。如果我们所设置的某条规则被破坏，它将返回 FALSE 并且调用我们的 index() 方法。而 index() 方法所调用的视图中就会显示错误信息。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">else</span>
   <span style="color: #009900;">&#123;</span>
       <span style="color: #000088;">$message</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">input</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
       <span style="color: #666666; font-style: italic;">// get useraccount data</span>
       <span style="color: #000088;">$account</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getActiveAccount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #000088;">$username</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$account</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">username</span><span style="color: #339933;">;</span>
       <span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$account</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">password</span><span style="color: #339933;">;</span>  
&nbsp;
       <span style="color: #666666; font-style: italic;">// send a tweet</span>
       <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update_status</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$password</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
       <span style="color: #009900;">&#123;</span>
           redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>  
&nbsp;
       <span style="color: #b1b100;">else</span>
       <span style="color: #009900;">&#123;</span>
           <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'There was an error while updating your status'</span><span style="color: #339933;">;</span>  
&nbsp;
           <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'header'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
           <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
           <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'footer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
       <span style="color: #009900;">&#125;</span>
   <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>再次感谢我们的 twitter_model，检索当前的用户名和密码变得轻而易举。当然我们也可以使用 <span style="color: #0000ff;">$username = $this->twitter_model->getActiveAccount()->username</span> ，但我觉得对这段教程来说这就更好理解一些。<br />
通过 $this->twitter_model->update_status() 我们调用那个与Twitter进行“通话”的方法。它把我们的用户名、密码以及我们要发送的消息告诉Twitter。如果状态更新成功，我们就会调用URL辅助函数中的 redirect() 进行重定向。<br />
如果出了错，我们设置一条错误消息并加载几个视图文件(下一步会创建它们)。现在控制器看上去是这样的：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Twitter <span style="color: #000000; font-weight: bold;">extends</span> Controller <span style="color: #009900;">&#123;</span>  
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> Twitter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    parent<span style="color: #339933;">::</span><span style="color: #004000;">Controller</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">model</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter_model'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>  
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> index<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'heading'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'Hi, send a tweet!'</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'last_message'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getLastMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'active_user'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getActiveAccount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">username</span><span style="color: #339933;">;</span>  
&nbsp;
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'header'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'index'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'footer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>  
&nbsp;
<span style="color: #666666; font-style: italic;">// updating our status on twitter ( new message )</span>
<span style="color: #000000; font-weight: bold;">function</span> update<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">input</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'submit'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'form_validation'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_error_delimiters</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'
&lt;div class=&quot;error&quot;&gt;'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;/div&gt;
'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">set_rules</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Message'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'trim|required|min_length[5]|max_length[140]'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">form_validation</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">run</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">index</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>  
&nbsp;
        <span style="color: #b1b100;">else</span>
        <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$message</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">input</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
&nbsp;
            <span style="color: #666666; font-style: italic;">// get useraccount data</span>
            <span style="color: #000088;">$account</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getActiveAccount</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$username</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$account</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">username</span><span style="color: #339933;">;</span>
            <span style="color: #000088;">$password</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$account</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">password</span><span style="color: #339933;">;</span>  
&nbsp;
            <span style="color: #666666; font-style: italic;">// send a tweet</span>
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">twitter_model</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">update_status</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$username</span><span style="color: #339933;">,</span> <span style="color: #000088;">$password</span><span style="color: #339933;">,</span> <span style="color: #000088;">$message</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
            <span style="color: #009900;">&#123;</span>
                redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>  
&nbsp;
            <span style="color: #b1b100;">else</span>
            <span style="color: #009900;">&#123;</span>
                <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'There was an error while updating your status'</span><span style="color: #339933;">;</span>  
&nbsp;
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'header'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'error'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'footer'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>  
&nbsp;
    <span style="color: #b1b100;">else</span>
    <span style="color: #009900;">&#123;</span>
        redirect<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>5.创建视图<br />
现在我们就要创建视图文件了。转到 <span style="color: #ff0000;">system/application/views </span>下面，创建如下几个文件：<br />
<span style="color: #0000ff;">header.php<br />
footer.php<br />
index.php<br />
error.php</span></p>
<p>header.php将包含基本的HTML元信息、我们的CSS链接以及主要的div(如#wrapper 和 #main)开启标签。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt; !DOCTYPE html&gt;  
&lt;html&gt;  
&lt;head&gt;  
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;  
&lt;link media=&quot;screen&quot; rel=&quot;Stylesheet&quot; type=&quot;text/css&quot; href=&quot;&lt;?php echo base_url(); ?&gt;css/style.css&quot; /&gt;  
&lt;title&gt;Using the Twitter API with CodeIgniter&lt;/title&gt;  
&lt;/link&gt;&lt;/head&gt;  
&nbsp;
&lt;body&gt;  
&nbsp;
&lt;div id=&quot;wrapper&quot;&gt;  
&nbsp;
&lt;div id=&quot;main&quot;&gt;</pre></td></tr></table></div>

<p>我们使用 base_url() 来引用我们的CSS文件(下一步会创建它)。<br />
footer.php只是包含了我们的关闭标签。</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">  &lt;/div&gt;&lt;!--end main--&gt;  
&nbsp;
    &lt;/div&gt;&lt;!--end wrapper--&gt;&lt;/body&gt;&lt;/html&gt;</pre></div></div>

<p>index.php才是最重要的部分。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>h3<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$heading</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
    <span style="color: #009900;">&#40;</span> account<span style="color: #339933;">:</span> <span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> anchor<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://twitter.com/'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$active_user</span><span style="color: #339933;">,</span> <span style="color: #000088;">$active_user</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;/</span>h3<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> form_error<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'message'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>  
&nbsp;
   <span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> form_open<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter/update'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'id'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'update_form'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
   <span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> form_input<span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'message'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'maxlength'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'140'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
   <span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> form_submit<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'submit'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'update'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
   <span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> form_close<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;last_message&quot;</span><span style="color: #339933;">&gt;</span>
       <span style="color: #339933;">&lt;</span>fieldset<span style="color: #339933;">&gt;</span>
           <span style="color: #339933;">&lt;</span>legend<span style="color: #339933;">&gt;</span>Last sent by <span style="color: #339933;">&lt;</span>strong<span style="color: #339933;">&gt;&lt;</span> ?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$active_user</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #339933;">&lt;/</span>strong<span style="color: #339933;">&gt;&lt;/</span>legend<span style="color: #339933;">&gt;</span>  
&nbsp;
<span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$last_message</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&nbsp;
       <span style="color: #339933;">&lt;/</span>fieldset<span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;!--</span><span style="color: #990000;">end</span> last_message<span style="color: #339933;">--&gt;</span></pre></td></tr></table></div>

<p>这里用到的所有变量都是通过我们的控制器中的 index() 方法传递的。除此之外，我们还使用了表单辅助函数来创建一个简单的HTML表单。记住，我告诉过你，这里是进行错误处理的地方；form_error(&#8216;message&#8217;) 就是完成这一工作的魔法师。<br />
在表单下面，显示的是当前活跃用户所发送的最后一则消息。<br />
最后，error.php作为一个自定义的错误文件，万一出现更新不成功的情况就可以用得上。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>h3<span style="color: #339933;">&gt;&lt;</span> ?php <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$error</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span><span style="color: #339933;">&lt;/</span>h3<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span> ?php <span style="color: #b1b100;">echo</span> anchor<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Go back and try again'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>6.添加一些CSS<br />
为了使页面更加美观，我们将添加一些CSS。转到 system/ 下面并创建 css目录。在那个目录下创建一个 style.css 文件，然后输入如下的代码。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/* Reset CSS */</span>  
&nbsp;
html<span style="color: #00AA00;">,</span> body<span style="color: #00AA00;">,</span> div<span style="color: #00AA00;">,</span> span<span style="color: #00AA00;">,</span> object<span style="color: #00AA00;">,</span> h1<span style="color: #00AA00;">,</span> h2<span style="color: #00AA00;">,</span> h3<span style="color: #00AA00;">,</span> h4<span style="color: #00AA00;">,</span> h5<span style="color: #00AA00;">,</span> h6<span style="color: #00AA00;">,</span> p<span style="color: #00AA00;">,</span> blockquote<span style="color: #00AA00;">,</span> pre<span style="color: #00AA00;">,</span>
a<span style="color: #00AA00;">,</span> address<span style="color: #00AA00;">,</span> code<span style="color: #00AA00;">,</span> img<span style="color: #00AA00;">,</span>
small<span style="color: #00AA00;">,</span> strong<span style="color: #00AA00;">,</span> dl<span style="color: #00AA00;">,</span> dt<span style="color: #00AA00;">,</span> dd<span style="color: #00AA00;">,</span> ol<span style="color: #00AA00;">,</span> ul<span style="color: #00AA00;">,</span> li<span style="color: #00AA00;">,</span>
fieldset<span style="color: #00AA00;">,</span> form<span style="color: #00AA00;">,</span> label <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">outline</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span> <span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">vertical-align</span><span style="color: #00AA00;">:</span> baselinebaseline<span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">transparent</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
body <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">1.5</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-family</span><span style="color: #3333ff;">:Arial</span><span style="color: #00AA00;">,</span> <span style="color: #993333;">sans-serif</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
ol<span style="color: #00AA00;">,</span> ul<span style="color: #00AA00;">,</span> li <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #6666ff;">.clear</span> <span style="color: #00AA00;">&#123;</span> <span style="color: #000000; font-weight: bold;">clear</span><span style="color: #00AA00;">:</span><span style="color: #993333;">both</span><span style="color: #00AA00;">;</span> <span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #808080; font-style: italic;">/* DEFAULTS */</span>  
&nbsp;
h3 <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#35CCFF</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">20px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #808080; font-style: italic;">/* CUSTOM */</span>  
&nbsp;
<span style="color: #cc00cc;">#wrapper</span> <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">900px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #808080; font-style: italic;">/* main */</span>  
&nbsp;
<span style="color: #cc00cc;">#main</span> <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">margin-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">50px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #cc00cc;">#main</span> h3 span <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">14px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#cccccc</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #cc00cc;">#main</span> h3 a <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#cccccc</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #808080; font-style: italic;">/* form */</span>  
&nbsp;
<span style="color: #cc00cc;">#update_form</span> input <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;">888px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#d3d3d3</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span><span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #cc00cc;">#update_form</span> input<span style="color: #00AA00;">&#91;</span>type<span style="color: #00AA00;">=</span><span style="color: #ff0000;">&quot;submit&quot;</span><span style="color: #00AA00;">&#93;</span> <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#000000</span><span style="color: #00AA00;">;;</span>
    <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #993333;">white</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">cursor</span><span style="color: #00AA00;">:</span><span style="color: #993333;">pointer</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">3px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
div<span style="color: #6666ff;">.error</span> <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span><span style="color: #993333;">block</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#FB8A8A</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#FF3B3B</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#ffffff</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;"><span style="color: #cc66cc;">50</span>%</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin-bottom</span><span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span><span style="color: #cc66cc;">0</span> <span style="color: #993333;">auto</span> <span style="color: #933;">10px</span> <span style="color: #993333;">auto</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span><span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #808080; font-style: italic;">/* last message */</span>  
&nbsp;
<span style="color: #cc00cc;">#last_message</span> fieldset <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">dashed</span> <span style="color: #cc00cc;">#d3d3d3</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">margin-top</span><span style="color: #00AA00;">:</span><span style="color: #933;">30px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #cc00cc;">#last_message</span> fieldset p <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">5px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">18px</span><span style="color: #00AA00;">;</span>
    <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">normal</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>  
&nbsp;
<span style="color: #cc00cc;">#last_message</span> legend span <span style="color: #00AA00;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>我使用了 Eric Meyers 的CSS重置方法，这样可以消除不同浏览器之间的差异。你的应用程序看上去应该像下图这样。</p>
<div id="attachment_110" class="wp-caption alignnone" style="width: 610px"><img class="size-full wp-image-110" title="图3" src="http://www.yinzhili.com/wp-content/uploads/2009/10/img3.jpg" alt="图3" width="600" height="300" /><p class="wp-caption-text">图3</p></div>
<h1><strong>大结局</strong></h1>
<p>现在让我们来测试一下新编写的应用程序。我们将输入一条信息并单击 update 按钮！</p>
<div id="attachment_111" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-111" title="图4" src="http://www.yinzhili.com/wp-content/uploads/2009/10/img4.jpg" alt="图4" width="500" height="300" /><p class="wp-caption-text">图4</p></div>
<p>更新完成后就会显示:</p>
<div id="attachment_113" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-113" title="图5" src="http://www.yinzhili.com/wp-content/uploads/2009/10/img51.jpg" alt="图5" width="500" height="300" /><p class="wp-caption-text">图5</p></div>
<p>让我们看看Twitter:)</p>
<div id="attachment_114" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-114" title="图6" src="http://www.yinzhili.com/wp-content/uploads/2009/10/img6.jpg" alt="图6" width="500" height="300" /><p class="wp-caption-text">图6</p></div>
<p>如果我们试图发送一则空消息，破坏了表单验证规则：</p>
<div id="attachment_115" class="wp-caption alignnone" style="width: 510px"><img class="size-full wp-image-115" title="图7" src="http://www.yinzhili.com/wp-content/uploads/2009/10/img7.jpg" alt="图7" width="500" height="300" /><p class="wp-caption-text">图7</p></div>
<h1><strong>结论</strong></h1>
<p>我真心希望这对你学习CodeIgniter和如何使用优秀的Twitter API有所帮助！你遇到难题了么? 如果有，请告诉我们！</p>
<p><span style="color:#ff0000;"><br />
<h1><strong>译者后记</strong></h1>
<p>由于众所周知的某原因，如果不使用代理，我们无法在国内访问到Twitter主站，甚至包括其API。这样的话如果使用Twitter官方的API就会导致更新失败。没有关系，我们可以使用第三方的API来完成这个工作。<br />
打开 twitter_model.php ，找到这一行:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$update_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://twitter.com/statuses/update.xml'</span><span style="color: #339933;">;</span></pre></div></div>

<p>修改为</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #000088;">$update_url</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'http://nest.onedd.net/api/statuses/update.xml'</span><span style="color: #339933;">;</span></pre></div></div>

<p>这样就可以了。下面是我的测试结果:<br />
<div id="attachment_133" class="wp-caption alignnone" style="width: 537px"><img src="http://www.yinzhili.com/wp-content/uploads/2009/10/11.PNG" alt="我的测试结果1" title="我的测试结果1" width="527" height="213" class="size-full wp-image-133" /><p class="wp-caption-text">我的测试结果1</p></div></p>
<p>下面是Twitter主站上看到的结果:<br />
<div id="attachment_134" class="wp-caption alignnone" style="width: 569px"><img src="http://www.yinzhili.com/wp-content/uploads/2009/10/2.PNG" alt="Twitter主站上的测试结果" title="Twitter主站上的测试结果" width="559" height="307" class="size-full wp-image-134" /><p class="wp-caption-text">Twitter主站上的测试结果</p></div> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yinzhili.com/2009/10/how-to-update-your-twitter-status-with-codeigniter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter 中文用户指南 版本 1.7.2 CHM版发布(支持索引和搜索)</title>
		<link>http://www.yinzhili.com/2009/10/codeigniter-userguide-1-7-2-cn-chm.html</link>
		<comments>http://www.yinzhili.com/2009/10/codeigniter-userguide-1-7-2-cn-chm.html#comments</comments>
		<pubDate>Mon, 12 Oct 2009 03:15:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[CHM]]></category>

		<guid isPermaLink="false">http://www.yinzhili.com/?p=99</guid>
		<description><![CDATA[上个月制作了CodeIgniter 1.7.2中文手册的CHM版，但由于制作工具的原因，生成的索引和搜索结果出现了乱码，非常无奈，只好取消了CHM文件的索引和搜索功能。
最近经过仔细研究后才发现，原始的HTML文件使用的是UTF-8编码，这是造成乱码的根本原因所在。于是用编码转换工具将所有HTML文[......]<p class='read-more'><a href='http://www.yinzhili.com/2009/10/codeigniter-userguide-1-7-2-cn-chm.html'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>上个月制作了CodeIgniter 1.7.2中文手册的CHM版，但由于制作工具的原因，生成的索引和搜索结果出现了乱码，非常无奈，只好取消了CHM文件的索引和搜索功能。<br />
最近经过仔细研究后才发现，原始的HTML文件使用的是UTF-8编码，这是造成乱码的根本原因所在。于是用编码转换工具将所有HTML文件的编码转换为GB2312，再用QuickCHM编译生成CHM文件，完美地解决了搜索和索引的乱码问题。<br />
<div id="attachment_100" class="wp-caption alignnone" style="width: 310px"><img src="http://www.yinzhili.com/wp-content/uploads/2009/10/1-300x198.PNG" alt="CHM版截图" title="截图" width="300" height="198" class="size-medium wp-image-100" /><p class="wp-caption-text">CHM版截图</p></div></p>
<p><a href="http://www.yinzhili.com/wp-content/uploads/2009/10/CodeIgniter_UserGuide_cn.zip"><font -size="5">单击此处立即下载</font></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yinzhili.com/2009/10/codeigniter-userguide-1-7-2-cn-chm.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter发布1.7.2版</title>
		<link>http://www.yinzhili.com/2009/09/codeigniter-1-7-2-released.html</link>
		<comments>http://www.yinzhili.com/2009/09/codeigniter-1-7-2-released.html#comments</comments>
		<pubDate>Sat, 12 Sep 2009 14:58:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>

		<guid isPermaLink="false">http://www.yinzhili.com/?p=83</guid>
		<description><![CDATA[CodeIgniter 发布 1.7.2 版
EllisLab 发布了 CodeIgniter 1.7.2。有什么新内容？主要的更改如下：
<strong>兼容 PHP 5.3.0。</strong>
新增购物车类库。
改善表单辅助函数。
在公共函数中新增 is_php()，让 PHP 版本比较更方便。
修改 show_error([......]<p class='read-more'><a href='http://www.yinzhili.com/2009/09/codeigniter-1-7-2-released.html'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>CodeIgniter 发布 1.7.2 版</p>
<p>EllisLab 发布了 CodeIgniter 1.7.2。有什么新内容？主要的更改如下：</p>
<p><strong><span style="color: #ff0000;">兼容 PHP 5.3.0。</span></strong><br />
新增购物车类库。<br />
改善表单辅助函数。<br />
在公共函数中新增 is_php()，让 PHP 版本比较更方便。<br />
修改 show_error() 以便发送 HTTP 服务器响应码，并且所有内部错误提示都会发送合适的状态码。<br />
修复了很多 BUG。<br />
1.7.2 版已经在 subversion 中存在了很长一段时间了，并且已经于 7 月下旬兼容于 PHP 5.3.0，不过可以理解的是许多用户并没有使用那个开发中的版本。虽然我也希望能有时间为这个版本多增加一些“大改动”的项目，并把版本号变为 1.8，但时间不等人。我们的许多用户都在 Mac 上开发，但 OS X“雪豹”中的 PHP 是 5.3.0，所以与其让用户继续等待不如先推出这个稳定版&#8211;毕竟已经 7 个月没有更新了。虽然如此，也还是有一些惊喜和可喜的变化。敬请享用！</p>
<p>以上内容转自<a href="http://codeigniter.org.cn/blog">http://codeigniter.org.cn/blog</a>。</p>
<p><strong>详细的Change Log:</strong></p>
<p>版本 1.7.2<br />
发布日期：2009年9月11日<br />
SVN 版本: 1737</p>
<p>Libraries<br />
Added a new Cart Class.<br />
Added the ability to pass $config['file_name'] for the File Uploading Class and rename the uploaded file.<br />
Changed order of listed user-agents so Safari would more accurately report itself. (#6844)<br />
Database<br />
Switched from using gettype() in escape() to is_* methods, since future PHP versions might change its output.<br />
Updated all database drivers to handle arrays in escape_str()<br />
Added escape_like_str() method for escaping strings to be used in LIKE conditions<br />
Updated Active Record to utilize the new LIKE escaping mechanism.<br />
Added reconnect() method to DB drivers to try to keep alive / reestablish a connection after a long idle.<br />
Modified MSSQL driver to use mssql_get_last_message() for error messages.<br />
Helpers<br />
Added form_multiselect() to the Form helper.<br />
Modified form_hidden() in the Form helper to accept multi-dimensional arrays.<br />
Modified form_prep() in the Form helper to keep track of prepped fields to avoid multiple prep/mutation from subsequent calls which can occur when using Form Validation and form helper functions to output form fields.<br />
Modified directory_map() in the Directory helper to allow the inclusion of hidden files, and to return FALSE on failure to read directory.<br />
Modified the Smiley helper to work with multiple fields and insert the smiley at the last known cursor position.<br />
General<br />
Compatible with PHP 5.3.0<br />
Modified show_error() to allow sending of HTTP server response codes.<br />
Modified show_404() to send 404 status code, removing non-CGI compatible header() statement from error_404.php template.<br />
Added set_status_header() to the Common functions to allow use when the Output class is unavailable. Common functions to facilitate PHP version comparisons.<br />
Added is_php() to<br />
Added 2 CodeIgniter &#8220;cheatsheets&#8221; (thanks to DesignFellow.com for this contribution).<br />
1.7.2 修复的 BUG<br />
Fixed assorted user guide typos or examples (#6743, #7214, #7516, #7287, #7852, #8224, #8324, #8349).<br />
Fixed a bug in the Form Validation library where multiple callbacks weren&#8217;t working (#6110)<br />
doctype helper default value was missing a &#8220;1&#8243;.<br />
Fixed a bug in the language class when outputting an error for an unfound file.<br />
Fixed a bug in the Calendar library where the shortname was output for &#8220;May&#8221;.<br />
Fixed a bug with ORIG_PATH_INFO that was allowing URIs of just a slash through.<br />
Fixed a fatal error in the Oracle and ODBC drivers (#6752)<br />
Fixed a bug where xml_from_result() was checking for a nonexistent method.<br />
Fixed a bug where Database Forge&#8217;s add_column and modify_column were not looping through when sent multiple fields.<br />
Fixed a bug where the File Helper was using &#8216;/&#8217; instead of the DIRECTORY_SEPARATOR constant.<br />
Fixed a bug to prevent PHP errors when attempting to use sendmail on servers that have manually disabled the PHP popen() function.<br />
Fixed a bug that would cause PHP errors in XML-RPC data if the PHP data type did not match the specified XML-RPC type.<br />
Fixed a bug in the XML-RPC class with parsing dateTime.iso8601 data types.<br />
Fixed a case sensitive string replacement in xss_clean()<br />
Fixed a bug in form_textarea() where form data was not prepped correctly.<br />
Fixed a bug in form_prep() causing it to not preserve entities in the user&#8217;s original input when called back into a form element<br />
Fixed a bug in _protect_identifiers() where the swap prefix ($swap_pre) was not being observed.<br />
Fixed a bug where the 400 status header sent with the &#8216;disallowed URI characters&#8217; was not compatible with CGI environments.<br />
Fixed a bug in the typography class where heading tags could have paragraph tags inserted when using auto_typography().<br />
<strong>下载1.7.2版:<br />
</strong><a href="http://codeigniter.org.cn/downloads">http://codeigniter.org.cn/downloads</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yinzhili.com/2009/09/codeigniter-1-7-2-released.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[译文]在NetBeans IDE中增加CodeIgniter代码提示</title>
		<link>http://www.yinzhili.com/2009/08/using-code-completion-for-codeigniter-in-netbeans.html</link>
		<comments>http://www.yinzhili.com/2009/08/using-code-completion-for-codeigniter-in-netbeans.html#comments</comments>
		<pubDate>Fri, 28 Aug 2009 02:36:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[译文]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[代码提示]]></category>

		<guid isPermaLink="false">http://www.yinzhili.com/2009/08/%e8%af%91%e6%96%87%e5%9c%a8netbeans-ide%e4%b8%ad%e5%a2%9e%e5%8a%a0codeigniter%e4%bb%a3%e7%a0%81%e6%8f%90%e7%a4%ba.html</guid>
		<description><![CDATA[本文原文来自:
http://www.mybelovedphp.com/2009/01/23/netbeans-revisited-code-completion-for-code-igniter/
根据实际情况删减了少量内容，并增加了配图。在NetBeans 6.7.1简体中文版下面测试通过。转载[......]<p class='read-more'><a href='http://www.yinzhili.com/2009/08/using-code-completion-for-codeigniter-in-netbeans.html'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>本文原文来自:</p>
<p>http://www.mybelovedphp.com/2009/01/23/netbeans-revisited-code-completion-for-code-igniter/</p>
<p>根据实际情况删减了少量内容，并增加了配图。在NetBeans 6.7.1简体中文版下面测试通过。转载此译文请注明出处。</p>
<p>    对于那些你喜欢的软件，一旦你开始使用它，你就会感觉它就像是为你度身定制的一样。每天你都会一点一点地发现它那隐藏的潜力。这就是开源的好处，还有很多潜在的能力等待我们去发现。大多数商业软件在它们的宣传手册上就已经列出了它们的特性，而最终你开始使用它们的时候你会非常失望。<br />
    NetBeans 6.5是一款好软件，它提供了现成的代码完成和验证功能，支持PHP/HTML/CSS/JavaScript以及jQuery、MooTools等等。<br />
    CodeIgniter是一个PHP快速开发框架，是一个灵活的类MVC系统。NetBeans为CI原生的ActiveRecord类、扩展库和辅助函数提供代码完成功能，帮助你简单地开发CodeIgniter程序。<br />
    你必须先设置好它，下面我们会解释详细步骤：<br />
    如果你将system目录移出了NetBeans项目中包含有application目录的源文件目录(建立多个站点时可能会这么做)，那么这一步就是必不可少的。将CodeIgniter的system目录添加到NetBeans的全局包含目录:<br />
选择<strong>“工具”&gt;“选项”&gt;“PHP”&gt;“添加文件夹”</strong></p>
<div id="attachment_67" class="wp-caption alignnone" style="width: 431px"><img class="size-full wp-image-67" title="译者配图1 添加全局包含目录" src="http://www.yinzhili.com/wp-content/uploads/2009/08/6.JPG" alt="译者配图1 添加全局包含目录" width="421" height="466" /><p class="wp-caption-text">译者配图1 添加全局包含目录</p></div>
<p>这样就可以启用辅助函数的代码完成功能，但是对ActiveRecord或者数据库类的函数不起作用。</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>db<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;...</span></pre></div></div>

<p>因此，必须将下面内容添加到控制器中：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
* @property CI_Loader $load
* @property CI_Form_validation $form_validation
* @property CI_Input $input
* @property CI_Email $email
* @property CI_DB_active_record $db
* @property CI_DB_forge $dbforge
*/</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Stylist <span style="color: #000000; font-weight: bold;">extends</span> Controller</pre></div></div>

<p>现在你可以输入</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>db<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;...</span></pre></div></div>

<p>或者</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>dbforge<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;...</span></pre></div></div>

<p>你就会看到代码提示了。Wow!<br />
为了进一步简化，请选择“工具”&gt;“选项”&gt;“编辑器”&gt;“代码模板”：<br />
1.<br />
1.“新建” -&gt;“缩写”:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Db</pre></div></div>

<p>2.“扩展文本”:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>db<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span></pre></div></div>

<p>2.<br />
1. “新建” -&gt;“缩写”:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">`codei`</pre></div></div>

<p>2.扩展文本:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
* @property CI_Loader $load
* @property CI_Form_validation $form_validation
* @property CI_Input $input
* @property CI_Email $email
* @property CI_DB_active_record $db
* @property CI_DB_forge $dbforge
*/</span></pre></div></div>

<p>现在你就可以在NetBeans中输入&#8217;codei&#8217;+Tab或者&#8217;db&#8217;+Tab，就等同于</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>db<span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span></pre></div></div>

<p>这样很酷，不是吗？</p>
<p>在前段时间的一篇文章里我展示了一种在NetBeans中支持对CodeIgniter框架进行代码完成的方法。… …也许最简单的方式是在CodeIgniter的application及system目录之外的某个路径下创建一个文件，可以命名为 netbeans_ci_code_completion.php，或者别的任何名字都可以，往文件里写入以下内容：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> ?php
<span style="color: #009933; font-style: italic;">/**
* @property CI_Loader $load
* @property CI_Form_validation $form_validation
* @property CI_Input $input
* @property CI_Email $email
* @property CI_DB_active_record $db
* @property CI_DB_forge $dbforge
* @property CI_Table $table
* @property CI_Session $session
* @property CI_FTP $ftp
* ....
 */</span>
<span style="color: #000000; font-weight: bold;">Class</span> Controller <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span></pre></div></div>

<p>文件名可以随意，但是扩展名必须是 .php，因为这是给NetBeans而不是CI看的。你可以把它保存到一个名叫temp的目录下，或者也可以保存到.nbproject目录(NetBeans的项目目录)下面，保存到这个目录下的好处是这个目录下的内容不会被同步到服务器上。大多数情况下，我的项目的目录结构是这样的：</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">/</span>application
<span style="color: #339933;">/</span>error
<span style="color: #339933;">/</span>images
<span style="color: #339933;">/</span>nbproject
<span style="color: #339933;">/</span>scripts
<span style="color: #339933;">/</span>styles
index<span style="color: #339933;">.</span>php
<span style="color: #339933;">.</span>htaccess</pre></div></div>

<div id="attachment_68" class="wp-caption alignnone" style="width: 758px"><img class="size-full wp-image-68" title="译者配图2 实际效果" src="http://www.yinzhili.com/wp-content/uploads/2009/08/5.JPG" alt="译者配图2 实际效果" width="748" height="318" /><p class="wp-caption-text">译者配图2 实际效果</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yinzhili.com/2009/08/using-code-completion-for-codeigniter-in-netbeans.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter辅助函数 &#8211; 大写金额转换</title>
		<link>http://www.yinzhili.com/2009/08/codeigniter-amount-in-words-helper.html</link>
		<comments>http://www.yinzhili.com/2009/08/codeigniter-amount-in-words-helper.html#comments</comments>
		<pubDate>Mon, 24 Aug 2009 01:52:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[大写]]></category>

		<guid isPermaLink="false">http://www.yinzhili.com/?p=63</guid>
		<description><![CDATA[在做开发的时候可能会用到数字金额转大写金额这一功能，因此本人参考网上的一些函数，编了这么一个辅助函数，希望能帮得上大家：


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&#38;lt; ?php if &#40; ! defined&#40;'BASEPATH'&#41;&#41; exit&#40;'No direct script ac[......]</pre></div></div><p class='read-more'><a href='http://www.yinzhili.com/2009/08/codeigniter-amount-in-words-helper.html'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>在做开发的时候可能会用到数字金额转大写金额这一功能，因此本人参考网上的一些函数，编了这么一个辅助函数，希望能帮得上大家：<br />
<!-more-></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> ?php <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'BASEPATH'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'No direct script access allowed'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009933; font-style: italic;">/**
 * CodeIgniter的人民币金额辅助函数
 * 其中num2rmb函数的作用是用于将阿拉伯数字金额转换为中文大写金额，如将120.50转换为“壹佰贰拾元伍角零分”
 * 请在控制器或视图中通过 $this-&amp;gt;load-&amp;gt;helper('rmb'); 来载入此辅助函数；
 */</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'num2rmb'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> num2rmb<span style="color: #009900;">&#40;</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$Chinese_numbers</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'零'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'壹'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'贰'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'叁'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'肆'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'伍'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'陆'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'柒'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'捌'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'玖'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//中文大写数字</span>
        <span style="color: #666666; font-style: italic;">//$oldval=$Arabic_numbers;&lt;span id=&quot;more-63&quot;&gt;&lt;/span&gt;</span>
        <span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">=</span><span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">=</span><span style="color: #990000;">number_format</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//将数字$Arabic_numbers格式化，精度为小数点后2位</span>
        <span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">=</span><span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;.&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">=</span><span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;,&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$original_num</span><span style="color: #339933;">=</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">=</span><span style="color: #990000;">abs</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//取绝对值</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$original_num</span><span style="color: #339933;">!=</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//如果原始值与绝对值不相等，说明$Arabic_numbers为负数</span>
            <span style="color: #000088;">$m</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;负&quot;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$m</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> <span style="color: #339933;">=</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$mynum</span><span style="color: #339933;">=</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">,</span><span style="color: #000088;">$i</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">switch</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">-</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;分&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;角&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;元&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">4</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;拾&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;佰&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">6</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;仟&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">7</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;万&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">8</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;拾&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">9</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;佰&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;仟&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">11</span> <span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;亿&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">12</span> <span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;拾&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">13</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;佰&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
                <span style="color: #b1b100;">case</span> <span style="color: #cc66cc;">14</span><span style="color: #339933;">:</span>
                    <span style="color: #000088;">$k</span><span style="color: #339933;">=</span> <span style="color: #000088;">$mynum</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;仟&quot;</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000088;">$m</span><span style="color: #339933;">=</span><span style="color: #000088;">$m</span><span style="color: #339933;">.</span><span style="color: #000088;">$k</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$Chinese_numbers</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span><span style="color: #339933;">=&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$m</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$key</span><span style="color: #339933;">,</span><span style="color: #000088;">$Arabic_numbers</span><span style="color: #339933;">,</span><span style="color: #000088;">$m</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//字符替换，将阿拉伯数字0123456789对应的替换成&quot;零壹贰叁肆伍陆柒捌玖&quot;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$m</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//返回结果</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* rmb_helper.php 文件结束 */</span>
<span style="color: #666666; font-style: italic;">/* 本文件的位置应该是: ./system/application/helpers/rmb_helper.php */</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.yinzhili.com/2009/08/codeigniter-amount-in-words-helper.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在CodeIgniter中使用pChart</title>
		<link>http://www.yinzhili.com/2009/08/how-to-use-pchart-in-codeigniter.html</link>
		<comments>http://www.yinzhili.com/2009/08/how-to-use-pchart-in-codeigniter.html#comments</comments>
		<pubDate>Sun, 16 Aug 2009 05:14:21 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[pChart]]></category>

		<guid isPermaLink="false">http://www.yinzhili.com/?p=40</guid>
		<description><![CDATA[pChart是一个免费的PHP图表生成库，可以生成多种图表如饼图或者柱状图等等，需要GD库的支持。下面我来简单讲讲如何在CI中方便地使用它。
首先我们要下载pChart。访问http://pchart.sourceforge.net/download.php 就可以下载到最新版的pChart，目前最[......]<p class='read-more'><a href='http://www.yinzhili.com/2009/08/how-to-use-pchart-in-codeigniter.html'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>pChart是一个免费的PHP图表生成库，可以生成多种图表如饼图或者柱状图等等，需要GD库的支持。下面我来简单讲讲如何在CI中方便地使用它。</p>
<p>首先我们要下载pChart。访问http://pchart.sourceforge.net/download.php 就可以下载到最新版的pChart，目前最新的版本是1.27。解压下载到的文件，我们要用到的只是其中的pChart文件夹，里面有pChart.class、pCache.class和pData.class这三个文件。我们把pChart文件夹复制到 application/libraries/ 下面。</p>
<p>然后要准备字体，因为我们做报表很可能要输出中文，所以必须使用一种中文字体，至于选什么字体就看你的喜好了(如果是商业用途的话请注意字体的版权以免引起版权纠纷)，把中文字体的ttf文件复制到 application/libraries/pChart 下面即可。</p>
<p>通过库的形式来使用pChart，因此在 application/libraries/ 下面创建一个文件，命名为 Chart.php，代码如下：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php
<span style="color: #000000; font-weight: bold;">class</span> Chart <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> Chart<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span>APPPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;libraries/pChart/pData.class&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span>APPPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;libraries/pChart/pChart.class&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">function</span> draw_line_graph<span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$DataSet</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> pData<span style="color: #339933;">;</span>
        <span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddPoint</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Serie1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">//需要显示的数据</span>
        <span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddPoint</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'date'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Serie2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//横坐标的数据</span>
        <span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">AddSerie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Serie1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetAbsciseLabelSerie</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Serie2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetSerieName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;订单总金额&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Serie1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetYAxisName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;RMB&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//纵坐标上显示的文字</span>
        <span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetXAxisName</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'横坐标：日期'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//横坐标上显示的文字</span>
        <span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">SetXAxisFormat</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;date&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//横坐标的数据类型</span>
&nbsp;
        <span style="color: #000088;">$Test</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> pChart<span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'height'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'width'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//图表文件的高度和宽度</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setDateFormat</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'date_format'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//横坐标显示的日期格式</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setColorPalette</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFontProperties</span><span style="color: #009900;">&#40;</span>APPPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;libraries/pChart/FZLTXIHK.ttf&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">12</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//设置使用的字体及字号</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setGraphArea</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'x_area'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'y_area'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//图形区域的高度和宽度</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">drawGraphArea</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">252</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">252</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">252</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//线的颜色</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">drawScale</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetDataDescription</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>SCALE_NORMAL<span style="color: #339933;">,</span><span style="color: #cc66cc;">150</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">150</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">150</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">drawGrid</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">,</span><span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">230</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">230</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">230</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">drawLineGraph</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetDataDescription</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">drawPlotGraph</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetDataDescription</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFontProperties</span><span style="color: #009900;">&#40;</span>APPPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;libraries/pChart/FZLTXIHK.ttf&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//设置数据值所用字体及字号</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">writeValues</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetData</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetDataDescription</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;Serie1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//输出每个点的数据值</span>
&nbsp;
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFontProperties</span><span style="color: #009900;">&#40;</span>APPPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;libraries/pChart/FZLTXIHK.ttf&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">11</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//设置使用的字体及字号</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">drawLegend</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">75</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">65</span><span style="color: #339933;">,</span><span style="color: #000088;">$DataSet</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">GetDataDescription</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">255</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setFontProperties</span><span style="color: #009900;">&#40;</span>APPPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;libraries/pChart/FZLTXIHK.ttf&quot;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">12</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//设置使用的字体及字号</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">drawTitle</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">22</span><span style="color: #339933;">,</span><span style="color: #000088;">$params</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: #cc66cc;">50</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">50</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">50</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">585</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #000088;">$imagefile</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'public/temp/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'filename'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.png'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//设置生成文件的保存路径</span>
        <span style="color: #000088;">$Test</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">Render</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$imagefile</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">//生成文件</span>
&nbsp;
      <span style="color: #b1b100;">return</span> <span style="color: #000088;">$imagefile</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">//返回文件名</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>然后控制器中这样调用：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> test<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'chart'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//载入pChart库</span>
&nbsp;
   <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'data'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">200</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">150</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">600</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">230</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">150</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">510</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//要显示的数据</span>
   <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #cc66cc;">7</span><span style="color: #339933;">;</span><span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
         <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'date'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1250217066</span><span style="color: #339933;">+</span><span style="color: #000088;">$i</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">86400</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//要显示的日期，注意这里是Unix时间戳，pChart会自动传换成你要的格式</span>
  <span style="color: #009900;">&#125;</span>
    <span style="color: #000088;">$params</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: #0000ff;">'销售报表'</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//图片标题</span>
   <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'date_format'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'m月j日'</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//设置日期格式</span>
   <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'filename'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'test_image'</span><span style="color: #339933;">;</span>  <span style="color: #666666; font-style: italic;">//文件名     </span>
   <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'height'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">600</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//高度</span>
   <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'width'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">300</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//宽度</span>
   <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'x_area'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">560</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//图形区域高度</span>
   <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'y_area'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">280</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//图形区域宽度</span>
   <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'chart_image'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">chart</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">draw_line_graph</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$params</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//生成图片</span>
   <span style="color: #000088;">$data</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'baseurl'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span>site_url<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">view</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test_view.html'</span><span style="color: #339933;">,</span><span style="color: #000088;">$data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>视图中输出就很简单了：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;html&gt;
&lt;head&gt;&lt;title&gt;&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;
&lt;img src=&quot;&lt;?php echo $baseurl.$chart_image;?/&gt;&quot; /&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></td></tr></table></div>

<p>关于pChart的更多用法，请参考它的在线文档：</p>
<p>http://pchart.sourceforge.net/documentation.php</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yinzhili.com/2009/08/how-to-use-pchart-in-codeigniter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter辅助函数-敏感词过滤</title>
		<link>http://www.yinzhili.com/2009/08/codeigniter-helper-keywords-filter.html</link>
		<comments>http://www.yinzhili.com/2009/08/codeigniter-helper-keywords-filter.html#comments</comments>
		<pubDate>Wed, 05 Aug 2009 13:50:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[helper]]></category>
		<category><![CDATA[过滤]]></category>

		<guid isPermaLink="false">http://www.yinzhili.com/?p=26</guid>
		<description><![CDATA[我们都知道有些敏感的词汇是不适合出现在互联网上的，特别是在有用户留言或发帖的一些站点，如博客或者论坛，如果出现了敏感词，那将是一件十分麻烦的事情。所以如果你打算用CodeIgniter开发这类站点，对用户输入的内容就必须加以过滤，因此本人就编写了这样一个辅助函数，这可是真真正正有“中国特色”的辅助函数。原理很简单，本质上说就是替换字符串，并没有国内一些大型论坛那么智能，如果需要更智能的过滤方法，就需要用正则表达式对用户的输入内容进行分析了，当然这里并没有用到。
[......]<p class='read-more'><a href='http://www.yinzhili.com/2009/08/codeigniter-helper-keywords-filter.html'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>我们都知道有些敏感的词汇是不适合出现在互联网上的，特别是在有用户留言或发帖的一些站点，如博客或者论坛，如果出现了敏感词，那将是一件十分麻烦的事情。所以如果你打算用CodeIgniter开发这类站点，对用户输入的内容就必须加以过滤，因此本人就编写了这样一个辅助函数，这可是真真正正有“中国特色”的辅助函数。原理很简单，本质上说就是替换字符串，并没有国内一些大型论坛那么智能，如果需要更智能的过滤方法，就需要用正则表达式对用户的输入内容进行分析了，当然这里并没有用到。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
</pre></td><td class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #339933;">&lt;</span> ?php  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'BASEPATH'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'No direct script access allowed'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009933; font-style: italic;">/**
 * CodeIgniter的关键字过滤函数
 * 用于在字符串中过滤一些敏感关键字
 * 请在控制器或视图中通过 $this-&amp;gt;load-&amp;gt;helper('filter'); 来载入此辅助函数；
 *
 *
 */</span>
&nbsp;
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #339933;">!</span> <span style="color: #990000;">function_exists</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'clean'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> clean<span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">//请自行增减此数组内容，以达到最好过滤效果</span>
        <span style="color: #000088;">$keywords</span><span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
            <span style="color: #0000ff;">'shit'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'s**t'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'Shit'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'S**t'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'twat'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'t**t'</span><span style="color: #339933;">,</span>            
            <span style="color: #0000ff;">'他妈的'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'TMD'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'狗日的'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'狗X的'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'X你妈'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'草泥马'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'躲猫猫'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'朵猫猫'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'70码'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'欺实马'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'Yamete'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'雅蔑蝶'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'fuck you'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'法克鱿'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'叉腰肌'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'猹妖鸡'</span><span style="color: #339933;">,</span>            
            <span style="color: #0000ff;">'90后'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'九岭猴'</span><span style="color: #339933;">,</span>
            <span style="color: #0000ff;">'傻B'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'傻X'</span>            
           <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #990000;">strtr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$string</span><span style="color: #339933;">,</span> <span style="color: #000088;">$keywords</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* filter_helper.php 文件结束 */</span>
<span style="color: #666666; font-style: italic;">/* 本文件的位置应该是: ./system/application/helpers/filter_helper.php */</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.yinzhili.com/2009/08/codeigniter-helper-keywords-filter.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CodeIgniter自定义扩展-XML库</title>
		<link>http://www.yinzhili.com/2009/08/codeigniter-library-xml.html</link>
		<comments>http://www.yinzhili.com/2009/08/codeigniter-library-xml.html#comments</comments>
		<pubDate>Tue, 04 Aug 2009 00:11:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.yinzhili.com/?p=4</guid>
		<description><![CDATA[这是用于CodeIgniter的XML扩展库，用来解析XML文档，修改里面的结点以及获取结点内容。原版来自:<a href="http://codeigniter.com/wiki/Xml_Library/">http://codeigniter.com/wiki/Xml_Library/</a>，当然原版只有基本的解析XML功能，我对这个类进行了一点扩展，可以满足通常情况下的需要了。[......]<p class='read-more'><a href='http://www.yinzhili.com/2009/08/codeigniter-library-xml.html'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>这是用于CodeIgniter的XML扩展库，用来解析XML文档，修改里面的结点以及获取结点内容。原版来自:<a href="http://codeigniter.com/wiki/Xml_Library/">http://codeigniter.com/wiki/Xml_Library/</a>，当然原版只有基本的解析XML功能，我对这个类进行了一点扩展，可以满足通常情况下的需要了。</p>
<p>代码如下:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #339933;">&lt;</span> ?php  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">defined</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'BASEPATH'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #990000;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'No direct script access allowed'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009933; font-style: italic;">/**
 * 用于CodeIgniter的XML解析库
 *
 * 提供XML文档哦解析和修改结点值的功能。
 * 注意：此库仅适用于PHP5。
 * @author: (原作者)Woody Gilk   (注释及扩展): yinzhili
 * @version 1.0
 *
 * 许可: http://creativecommons.org/licenses/by-sa/2.5/
 * URL: http://codeigniter.com/wiki/Xml_Library/
 *
 * 说明: 请通过以下方式来加载这个类库:$this-&gt;load-&gt;library('xml');
 *
 */</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">class</span> Xml <span style="color: #009900;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">function</span> Xml <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$document</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000088;">$filename</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> load<span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009933; font-style: italic;">/**
     * 载入需要解析的XML文件
     *
     * $file:需解析的XML文件及其路径(请省略 .xml 扩展名，此处路径为相对于 APPPATH 的路径)
     * 例如：test.xml 文件保存在 application/config/test.xml 这个位置，那么 $file='config/test.xml' 。
     * 请确保路径正确，否则无法解析。
     */</span>
        <span style="color: #000088;">$bad</span>  <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|//+|'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'|\.\./|'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$good</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> APPPATH<span style="color: #339933;">.</span><span style="color: #990000;">preg_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$bad</span><span style="color: #339933;">,</span> <span style="color: #000088;">$good</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//生成需要解析的.xml文件的完整路径</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> <span style="color: #990000;">file_exists</span> <span style="color: #009900;">&#40;</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>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//如果在指定位置找不到要解析的.xml文件，返回false</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">document</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//将整个文件读入字符串</span>
        <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">filename</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$file</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>  <span style="color: #666666; font-style: italic;">/* load函数结束 */</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> parse<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">/***
     * @public
     * 对一个XML文档进行解析，结果存入数组
     */</span>
        <span style="color: #000088;">$xml</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">document</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$xml</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//如果XML内容为空，则返回false</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #000088;">$doc</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DOMDocument <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$doc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">preserveWhiteSpace</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$doc</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">loadXML</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$xml</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$array</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">flatten_node</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$doc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">return</span> <span style="color: #000088;">$array</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #666666; font-style: italic;">/* parse函数结束 */</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">function</span> flatten_node<span style="color: #009900;">&#40;</span><span style="color: #000088;">$node</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">/***
     * @private(私有函数)
     * 将XML文档解析为一个数组
     */</span>
&nbsp;
        <span style="color: #000088;">$array</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>
&nbsp;
        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$node</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">childNodes</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$child</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$child</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasChildNodes</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$node</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">firstChild</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeName</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$node</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">lastChild</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeName</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$node</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">childNodes</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">length</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$child</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeName</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: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">flatten_node</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$child</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$child</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeName</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: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">flatten_node</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$child</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$child</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">hasAttributes</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        <span style="color: #000088;">$index</span> <span style="color: #339933;">=</span> <span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$child</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeName</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
                        <span style="color: #000088;">$attrs</span> <span style="color: #339933;">=&amp;</span> <span style="color: #000088;">$array</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$child</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeName</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$index</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'__attrs'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                        <span style="color: #b1b100;">foreach</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$child</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">attributes</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$attribute</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                            <span style="color: #000088;">$attrs</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$attribute</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">name</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$attribute</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">value</span><span style="color: #339933;">;</span>
                        <span style="color: #009900;">&#125;</span>
                    <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">return</span> <span style="color: #000088;">$child</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeValue</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">return</span> <span style="color: #000088;">$array</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #666666; font-style: italic;">/*  node_to_array函数结束 */</span>
&nbsp;
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> set<span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span><span style="color: #000088;">$node</span><span style="color: #339933;">,</span><span style="color: #000088;">$new_value</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009933; font-style: italic;">/**
     * @public(公有函数)
     * 修改XML文档中某个节点的值
     * 各个参数含义如下: $file为要修改的XML文件，$node为要修改其值的结点名称，$new_value为新值
     * 如果修改成功，函数将返回true
     */</span>
        <span style="color: #000088;">$bad</span>  <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|//+|'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'|\.\./|'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$good</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> APPPATH<span style="color: #339933;">.</span><span style="color: #990000;">preg_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$bad</span><span style="color: #339933;">,</span> <span style="color: #000088;">$good</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//生成需要解析的.xml文件的完整路径</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> <span style="color: #990000;">file_exists</span> <span style="color: #009900;">&#40;</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>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//如果在指定位置找不到要解析的.xml文件，返回false</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$xml</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DOMDocument<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//实例化DOMDocument对象</span>
            <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//加载XML文件</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$node</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//如果XML文件中存在相应结点</span>
                <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;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$node</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #000088;">$list</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeValue</span><span style="color: #339933;">=</span><span style="color: #000088;">$new_value</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//将结点的值修改为参数中给出的新值</span>
                    <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">save</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//保存修改之后的文件</span>
                    <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//返回true</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//如果找不到参数中给出的结点，则返回false;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
    <span style="color: #666666; font-style: italic;">/* update函数结束 */</span>
&nbsp;
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> get<span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #339933;">,</span><span style="color: #000088;">$node</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009933; font-style: italic;">/**
     * @public(公有函数)
     * 获取XML文档中某个节点的值
     * 各个参数含义如下: $file为要修改的XML文件，$node为要获取其值的结点名称
     * 如果修改成功，函数将返回获取结果
     */</span>
        <span style="color: #000088;">$bad</span>  <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'|//+|'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'|\.\./|'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$good</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> APPPATH<span style="color: #339933;">.</span><span style="color: #990000;">preg_replace</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$bad</span><span style="color: #339933;">,</span> <span style="color: #000088;">$good</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//生成需要解析的.xml文件的完整路径</span>
&nbsp;
        <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span> <span style="color: #990000;">file_exists</span> <span style="color: #009900;">&#40;</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>
            <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//如果在指定位置找不到要解析的.xml文件，返回false</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000088;">$xml</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> DOMDocument<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//实例化DOMDocument对象</span>
            <span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//加载XML文件</span>
            <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$xml</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$node</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">!=</span><span style="color: #009900; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #666666; font-style: italic;">//如果XML文件中存在相应结点</span>
                <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;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$node</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$list</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$list</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodeValue</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//返回结果</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">//如果找不到参数中给出的结点，则返回false;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/*
 * XML.php 文件结束。此文件的正确保存路径应该是 application/libraries/XML.php
 * 请注意: 此处省略 ?&gt; 闭合标签是为了避免出现错误，并非遗漏。
 */</span></pre></td></tr></table></div>

<p>请将此文件保存在此路径下: application/libraries/XML.php ，然后通过</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">load</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">library</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p> 来加载这个扩展就可以了。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yinzhili.com/2009/08/codeigniter-library-xml.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
