<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
	<title>PHP基本語法</title>
	<link>http://blog.roodo.com/rss20/topic/topic_article_14520.xml</link>
	<description>探討PHP常用函數</description>
	<language>zh-tw</language>
	<generator>Roodo Blog System</generator>
	<copyright>All Rights Reserved</copyright>
	<item>
		<title>PHP 可用命名慣例避免名稱衝突 / 石頭閒語</title>
		<description> Tags: php5 namespace name_convention coding_standard 
 
PHP5 目前不提供名稱空間(Namespace)功能，但普遍藉由命名慣例 (Name convention) 避免名稱衝突。名稱空間是語法功能；命名慣例則是編程技巧或準則(coding standard)。最常用的慣例是，把你的名號、公司名號或專案名號加在類別名稱前。例如 john 寫了一套 DB 層，那麼類別名稱當為 John_Db ；Xos 專案有一套 DB 層，那麼類別名稱當為 Xos_Db 。甚至於，要學 Java 以 domain name 為命名慣例 (Java 把這套命名慣例應用於 package) 也無不可，例如把類別名稱取作 Tw_Com_ABC_Db 。
 
 
在實際撰寫程式碼時，用命名空間和命名慣例的效果是差不多的。如下所示:
 
 
$o = new John::Db; //namespace:

$o = new John_Db; //name convention:
 
 
名稱空間只得一項好處，就是可以用關鍵字(using or import) 宣告預設名稱空間，讓程序員少打一些字。然而，即便語法支援名稱空間，老練的程序員仍然會採用上述的命名慣例為名稱空間命名，以避免名稱空間的名稱衝突(真拗口...)。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/3855669.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Fri, 03 Aug 2007 02:59:57 +0800</pubDate>
					</item>
	<item>
		<title>TWPUG問答 - PHP5 個體指派動作的陷阱 / 石頭閒語</title>
		<description> Tags: php reference object 
 
前幾天在 TWPUG 上，有位網友提了一個 問題 。大意是如何以一個個體為正本，透過指派動作複製多次到陣列中，每個陣列元素的內容應該不相同。我看出他碰到了一個語言陷阱，我也回答了。可惜，我當時的答案是錯的... 我重新思索了一下，本文才是正解。
 
 
在 PHP5 之後，個體(object)的指派動作皆是使用參照。換言之，當指派來源的資料型態是 object 時， PHP5 就會用參照；故  $a = $o  的動作實際上等於  $a =&amp;$o 。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3686877.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Thu, 19 Jul 2007 22:23:24 +0800</pubDate>
					</item>
	<item>
		<title>foreach 時使用 reference 的陷阱 / 石頭閒語</title>
		<description> Tags: php foreach reference 
 
前幾天在重構一段 PHP 程式碼時，不小心踩到  foreach  使用「參照(reference)」的陷阱。上網查了一下，似乎踩到的人還不少。我想了一下，把原因換成另一段程式碼形式說明，再說明解法。基本上，這是個 trick ，而不是 bug 。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3669955.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Mon, 16 Jul 2007 16:44:19 +0800</pubDate>
					</item>
	<item>
		<title>PHPUnit3 和 Makefile / 石頭閒語</title>
		<description> Tags: TDD phpunit make 
 
在測試驅動開發的方式下，一個源碼 .php 搭一個測試案例碼 Test.php 的情形愈來愈常見了。而隨著軟體規模的擴大，源碼及對應的測試碼數量也愈來愈多。如果每次 commit 前都要一個不漏地跑完每個單元測試，未免太浪費時間了。畢竟沒有修改過的源碼，並不需要再跑一次單元測試。這時候就要藉助自動建置工具來幫我們簡化測試動作和時間。
 
 
本文利用  Make  這個傳統的軟體建置工具，提供一個簡單的 Makefile ，用於自動測試專案中相關項目。搭配的單元測試工具是  PHPUnit3  。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/3652965.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Fri, 13 Jul 2007 16:17:47 +0800</pubDate>
					</item>
	<item>
		<title>PHP5 的個體導向能力問題 - magic methods 和 interface / 石頭閒語</title>
		<description> Tags: php spl interface magic_method 
 
我這兩天和 racklin  討論 PHP 和 SPL 的內容 。經過這兩天的討論，我覺得我們愈來愈了解現在 PHP 語言的特性與未來發展方向的議題了。
 
 
我們的討論重點圍繞在 PHP5 的 magic method 與 interface 兩方面的內容。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3547207.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Thu, 28 Jun 2007 16:14:29 +0800</pubDate>
					</item>
	<item>
		<title>Stack - Example for Operators of Array Overload / 石頭閒語</title>
		<description> Tags: php spl iterator overloading 
 
實作一個 Stack 。具備下列特性:
 
 
   後進先出。 
   順序走訪時，同樣按後進先出原則走訪。亦即由後往前走訪。 
   可用索引運算子 [] 窺探 Stack 的內容。 
   不允許用索引運算子改變 Stack 的內容。 
 
 
本文之示範直接實作 Iterator, ArrayAccess, Countable 三個介面，而不繼承  ArrayIterator  等類別。ArrayIterator 類具有 sort() 等方法，但我並不打算對 Stack 進行排序，故我不繼承。若我繼承 ArrayIterator ，則我必須覆寫 sort 等方法，無此必要。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3542135.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Wed, 27 Jun 2007 10:41:14 +0800</pubDate>
					</item>
	<item>
		<title>SPL:Use ArrayObject and ArrayIterator to Overload Operators of Array / 石頭閒語</title>
		<description> Tags: php spl arrayobject iterator overloading magic_method 
 
If you want to design a class and make it&#039;s behavior as an array, you may extend ArrayObject. Also this new class probably need to use an instance of class which extends ArrayIterator ( Note: ArrayIterator is a class, not an interface ).
 
 
This feature requires PHP 5. 
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/3532653.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 26 Jun 2007 11:37:30 +0800</pubDate>
					</item>
	<item>
		<title>TWPUG問答 - 查詢結果附上其他資訊？ / 石頭閒語</title>
		<description> Tags: SQL CASE 
 
原問題:  查詢結果附上條件? 。需求是有一個來自使用者輸入的對照表，由於其內容每次輸入都不同，故並未建立在資料庫中。現在需要在查詢結果中加入此一對照資訊。
 
 
純 SQL 的方式可配合  CASE  關鍵字，但受限於查詢句子的長度及複雜度，僅適用於少量資訊。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3459603.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Wed, 13 Jun 2007 08:55:28 +0800</pubDate>
					</item>
	<item>
		<title>以 PHP-GTK + Glade 設計桌面應用程式 - 混合 Web 應用程式的 MVC 架構敏捷途徑 / 石頭閒語</title>
		<description> Tags: php gtk mvc framework 標籤語言 delphi 
 
我們一般對 PHP 的印象是：寫 Web 應用程式的工具。其實它也可以作為單純的解譯器運行一般的本地程式， PHP 稱此運行模式為  CLI mode 。若進一步結合  PHP-GTK  擴充模組 ( 關於 PHP-GTK 的安裝，請參考《 Glade/GTK2 for Windows with PHP5 and Ruby 快速安裝指南 》 ) ，我們仍然可以使用 PHP 設計具有圖形使用者介面的桌面應用程式。
 
 
本文不只單純地說明如何利用 PHP-GTK + Glade 設計桌面應用程式，更要混合現成的 Web 應用程式，一併為各位展示 MVC 架構所帶來的高度彈性與可用性。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/3400303.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Mon, 04 Jun 2007 22:28:01 +0800</pubDate>
					</item>
	<item>
		<title>TWPUG問答 - 如何清除SESSION資料 / 石頭閒語</title>
		<description> Tags: php session reference 
 
原問題見:  SESSION怎麼釋放不掉 。在 PHP 中使用 Session 前，請務必閱讀: PHP Manual:: Session Handling Functions 。
 

 1. Session and global variable 
 
PHP Manual:: session_register :  
If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use session_register(), session_is_registered(), and session_unregister() .
 
 
 $_SESSION  已經是一個 superglobal variable (全系統域變數)，使用   $_SESSION[&#039;yourKey&#039;]  的寫法就可以了。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3387201.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Sat, 02 Jun 2007 13:55:19 +0800</pubDate>
					</item>
	<item>
		<title>PHP推蔫書目 / 石頭閒語</title>
		<description> 
工商服務時間。有人問我哪一本 PHP 的書最好？這個問題很容易回答：PHP 最好的書是  PHP Manual online edition ；第二好的書還是 PHP Manual (下載版，建議 CHM 格式)。囧，這好像不是大家想聽的答案。耶，那邊那個別急著拾磚頭；這位大嬸，手上的雞蛋拿回家做菜比較好...
 
 
咳。我雖然從 PHP3 就開始寫 PHP 程式，但拜優秀的 PHP Manual 之賜，我從沒買過半本 PHP 書籍。不過今天到順發3C閒逛時，看到有一本厚厚的 PHP 書籍正在特賣，書名是《 真‧PHP 5技術手札 》。厚厚一本八百頁只要 199 元。就算自已去圖書館借出來影印都沒這麼便宜。書名很屌，還加個「真」字。有影嘸影？拿起來看看。嗯... 很好，基礎語法講的很詳細。進階功能講的很清楚，連 GD 和 PDF 函數庫都提到了。從初學到進階，就靠這本了。推蔫各位入手。我石頭成掛保證啦。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/3344973.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Fri, 25 May 2007 12:05:38 +0800</pubDate>
					</item>
	<item>
		<title>To Prepare SQL Statements and Read Data / 石頭閒語</title>
		<description> Tags: php sql phpunit 

 
試作一個 PHP 程式，可以從用戶端取得使用者輸入的資料，接著讀入一份外部的 SQL 指令稿。
將 PHP 中的變數值代入 SQL 指令之中 (prepares SQL statements)，以之查詢資料庫取回查詢結果。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3321763.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 22 May 2007 17:11:13 +0800</pubDate>
					</item>
	<item>
		<title>TWPUG問答 - 如何偵測URL資源是否存在 / 石頭閒語</title>
		<description> Tags: 偵測URL http socket 
 問:  如何偵測網路圖片是否存在?如http://www.example.com/xxx.png。並回傳結果。  
 
如果僅需偵測是否存在，而不要下載整份文件。僅需要透過  HTTP 協定 (RFC2616) 的  HEAD method  即可達成目的。依 HTTP 協定之 狀態定義 ，文件存在時回應代碼 200 ，不存在時回應 404 。我們可以此作為回傳值。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/3215473.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Thu, 10 May 2007 09:28:51 +0800</pubDate>
					</item>
	<item>
		<title>Delphi for PHP 發表會感想 - Show Me The Delphi for Ajax / 石頭閒語</title>
		<description> codegear delphi php ajax 
 
今天參加了  CodeGear  在高雄辦的 Delphi 2007 發表會，參加者大概有30~40人左右吧。我主要關注的產品是  Delphi for PHP  。我其實已經在《 Delphi for PHP is Not on Rails 》談過我的第一印象。不過那是根據 CodeGear 網站提供的 Demo 內容所發表的感想。這次則是近距離接觸 Delphi for PHP 。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3074173.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Thu, 26 Apr 2007 23:43:09 +0800</pubDate>
					</item>
	<item>
		<title>Reflection 於設計 Framework 時之安全性作用 / 石頭閒語</title>
		<description> framework reflection 自識能力 動態語言 資安 
 Kuon 於《 PHP5 的動態函數/行為調用效率測試 》回應： 不論是 Reflection 或是 Function Handling Functions, 其實都已經實作在某些 Framework 中, 像這種類的函數可怕在於其具有eval()的語意, 須特別注意安全性的議題 。
 
 
說實話，我抓不到這回覆內容的重點。依我的認知，於 PHP 中使用 Reflection 是為了增加安全性，而非帶來安全性議題(增加安全漏洞)。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/3058219.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Wed, 25 Apr 2007 11:34:24 +0800</pubDate>
					</item>
	<item>
		<title>以 SimpleXML 將 CSV 文件轉換成 MS Excel 2k/XP XML 文件 / 石頭閒語</title>
		<description> Tags: php xml spreadsheet 
 
本文示範以 PHP  SimpleXML  實踐 MS Excel 2k/XP XML 文件之匯出工作。首先讀取一個 CSV 文件  test.csv ，再建立一份 SimpleXML 文件實例，接著按 MS Excel 2k/XP 之 XML 文件結構，將自 CSV 讀取之資料存入 SimpleXML 文件實例，最後儲存為  test.xml  。該文件可以 MS Excel 2k/XP 讀取。
 
 
關於 MS Excel 2k/XP XML 文件之相關訊息，請見《 A note of creating XML document by SimpleXML 》。 
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/3021213.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 17 Apr 2007 17:05:46 +0800</pubDate>
					</item>
	<item>
		<title>Delphi for PHP is Not on Rails / 石頭閒語</title>
		<description> Tags: php ruby framework webdev 標籤語言 
 
If today, the tool which CodeGear released is &quot;Delphi for Ruby&quot;, the title will be an equivoque.
 
 
CodeGear (前身 Borland 公司 IDE 部門) 日前發表了  Delphi for PHP  。於是我很快的觀看了一遍操作 Demo 。很遺憾，我必須說它並未發揮 PHP 的特色，程式碼寫作方式充滿了 Java/C# 風格，而不是 PHP 風格。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/3016263.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Mon, 16 Apr 2007 18:25:45 +0800</pubDate>
					</item>
	<item>
		<title>PHP mail() and charset encoding question, part2 - mbstring / 石頭閒語</title>
		<description> php mail mbstring 
 
在  part1  中提到  mail()  會固定對信件內容進行編碼，而解決之道是改用 PHPMailer, PEAR::Mail 寄送信件。而本文則要繼續探索  mail()  對信件內容編碼之原因。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2998451.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Fri, 13 Apr 2007 09:13:58 +0800</pubDate>
					</item>
	<item>
		<title>A note of creating XML document by SimpleXML  / 石頭閒語</title>
		<description> php xml spreadsheet simplexml 
 
本文嚐試利用 PHP5 提供的  SimpleXML 函數組  ，建立一份可供 MS Excel 2000/XP 版本使用的 XML 文件。
 
 
需求起因於資料庫之資料匯出需求。以往大都採用 CSV 格式匯出，然而 CSV 文件用於保存 Big5 內碼編碼之資料時水土不服，容易發生分欄錯誤之情況。儘管我們將字元編碼改為 UTF-8 後便可避免此問題，但是卻又面臨 MS Excel 2000/XP 無法以正確之字元編碼讀取 CSV 文件的窘境。因此我需要一個可為 OpenOffice 以及 MS Excel 2000/XP 兩者共同辨識的資料格式。經我測試後，確認 MS Excel 2000/XP 之 XML 試算表格式符合此需求。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2981347.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 10 Apr 2007 15:58:03 +0800</pubDate>
					</item>
	<item>
		<title>PHP mail() and charset encoding question / 石頭閒語</title>
		<description> php mail phpmailer 
 
不知從何時開始， PHP 內建的  mail()  行為改變了，使用  mail()  寄發電子郵件時，似乎會固定將內文之字元編碼轉為 iso-8859-1 字元集。於是用  mail()  寄中文郵件時變亂碼、寄東歐文字郵件時變亂碼、寄日文郵件時變亂碼等等問題一一出現。如何寄非英文語系郵件幾乎成了 FAQ 級問題。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2950655.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 03 Apr 2007 15:50:09 +0800</pubDate>
					</item>
	<item>
		<title>TWPUG問答 - 如何不將 PDF 回傳給瀏覽器後列印，而直接由印表機印出 / 石頭閒語</title>
		<description> php pdf print 
 
請問 PDF 可以不要顯示在瀏覽器上面，而是直接按下列印鈕(列印)後，直接由印表機印出嗎？ 
 于 Taiwan PHP User Group 所見問題 
 
 
可以，但不要忘了 PHP 是在 server 端執行，所以 PHP 將使用 server 端設定的印表機輸出列印資料。請把設計思維整個切換到 client-server 架構，然後想想你的軟體運作環境是否方便從 server 端的印表機輸出資料。如果是公司內部那就可以，因為公司內部大部份是將資料集中到網路印表機輸出，當然也可以讓 PHP 直接把 PDF 輸出到網路印表機。如果是公開環境，例如使用者坐在自己家裡上網，那就不行了。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2927395.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Thu, 29 Mar 2007 12:35:27 +0800</pubDate>
					</item>
	<item>
		<title>PHP 實踐 mix-in 概念 part 2 - MixableClass / 石頭閒語</title>
		<description> php mix-in delegate ruby 
 
第一部份《 PHP 實踐 mix-in 概念之可行性 》一文中解釋了 PHP 的個體如何加入新的方法。但那僅針對個體而非類別，那些混成內容無法繼承再用。而 Ruby 的混成(mix-in)概念是針對類別，其混成結果是一個類別，這些混成內容可經繼承機制再用。所以我接下來就要為 PHP 實踐一個可以混成的類別 -  MixableClass 。
 
 
我的設計目標有二。第一、個體可以動態增刪方法，且不影嚮其他個體。第二、以抽象化方法混成新的類別。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2884871.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 20 Mar 2007 14:48:59 +0800</pubDate>
					</item>
	<item>
		<title>Read an uploaded spreadsheet document by php-SpreadsheetReader / 石頭閒語</title>
		<description> php library 
 
In PHP, the global array  $_FILES  will contain all the uploaded file information. However, the temporary filename of the file in which the uploaded file was stored on the server is not the same as source filename. If you pass the temporary filename to  SpreadsheetReaderFactory , it could not detect which reader to suit.
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2878923.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Mon, 19 Mar 2007 11:32:56 +0800</pubDate>
					</item>
	<item>
		<title>以 PHP 實踐 HEMiDEMi JSONP - 誰收藏/迴響討論本文 / 石頭閒語</title>
		<description> php json ajax 
 
不久前，我寫了《網路服務與純 JavaScript 應用之 JSON 資料包裹解決方案： 基礎概念 、 Google的方式 》，其中就以 HEMiDEMi  書籤服務為主要案例討論如何可以增加查詢服務之使用彈性。我前兩篇談的 JSON 資料包裹，又稱  JSON with Padding (JSONP) 。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2820611.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Thu, 08 Mar 2007 10:09:00 +0800</pubDate>
					</item>
	<item>
		<title>PHP 實踐 mix-in 概念之可行性 / 石頭閒語</title>
		<description> 動態語言 php ruby 
 
最近在學習 Ruby 的過程中，接觸到 &#039;Mix-in&#039; (混成)  這個新名詞。雖然是個新名詞，但其概念嚴格說來並非 Ruby 所獨有。
 
 
Mix-in (混成) 之基本概念在令行為抽象化，使其與特定類別或實例無關。我們再將這些抽象行為組成新的類別或個體。早期的模組化編程概念，其實就已經建立了這種概念， Ruby 則是聰明而有效結合模組與類別，增加許多設計彈性。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2817003.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Wed, 07 Mar 2007 22:56:00 +0800</pubDate>
					</item>
	<item>
		<title>Development within Eclipse PHP IDE (PDT) / 石頭閒語</title>
		<description> php eclipse pdt ide debugger 
 
今天在 IBM developerWorks 的 Open Source 專區中看到《 PHP development within Eclipse 》這一篇文章。看了一下，原來在介紹 Eclipse 中的  PHP IDE project   。文章中使用的版本和我現在用的版本一樣 (去年12月釋出) 。我使用 PHP IDE project 後，覺得跟 Java/CDT 比起來功能還是很陽春，編輯功能也不算順手。所以目前我仍然使用 PSPad 作為程式編輯器。
 
 
順道看了一下  PHP IDE project  的網站，發現計劃名稱改為 PDT (PHP Development Tool) 了。以下就用 PDT 稱呼 PHP IDE 。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2711065.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Fri, 09 Feb 2007 09:46:46 +0800</pubDate>
					</item>
	<item>
		<title>活用 PHP5 的 magic methods - __set(), __get() and __call() / 石頭閒語</title>
		<description> php5 refactoring overloading magic_method 
 
PHP5 在動態性及個體導向兩方面都做了大幅度的加強。其中  Magic methods  概念的引用，更為 PHP5 帶來許多靈活性。
 
 
本文說明如何活用 Magic methods 重整 (refactoring) 程式碼。讓 PHP 的程式碼更易於使用。主要重點在  __set(), __get()  ，同時也示範了  __toString(), __isset(), __call()  的用途。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2683180.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 30 Jan 2007 23:20:34 +0800</pubDate>
					</item>
	<item>
		<title>PHP 不需要另一個樣版引擎, part 2 - 補充與回應 / 石頭閒語</title>
		<description> php template 樣版 
 
繼《 PHP 不需要另一個樣版引擎 》，我再補充一些內容。
 
 
PHP 本身就是一個 SGML,XML,HTML 等 markup language document 用的解析器 (parser) ，所以就像一份 XML 文件必須標示 &amp;lt;?xml ?&amp;gt; 一樣， PHP 要求自己包含在 &amp;lt;?php ?&amp;gt; 標籤中。上文說了，這是 SGML 規範內容。儘管我們可以把 PHP 當一個純粹的程式語言，但還是要把 code 放在標籤中。這個怪僻在 Perl, Python, Ruby 中可看不到。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2681202.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 30 Jan 2007 09:58:24 +0800</pubDate>
					</item>
	<item>
		<title>PHP 不需要另一個樣版引擎 (Smarty, PHPLib, etc) / 石頭閒語</title>
		<description> php template 樣版 
 
前幾天我看到 phpPatterns 的《 PHP and Templates 》，作者舉了很多例子說明 PHP 不需要使用樣版引擎。我個人的經驗與該作者一樣， PHP 確實不需要使用樣版引擎。因為 PHP 本身就是一種樣版引擎，在樣版引擎上再加一個樣版引擎是多此一舉。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2680742.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Mon, 29 Jan 2007 23:18:34 +0800</pubDate>
					</item>
	<item>
		<title>PHP 的參照及唯讀參照之實作 / 石頭閒語</title>
		<description> Tags: magic_method 動態語言 
 
這幾天我和 HACGIS (トキメキ) 在討論 PHP 的參照 (reference) 特性。對於參照的功用，我想我們都很清楚了，還不了解的讀者可以先參閱《PHP Manual:: Chapter 21. References Explained 》以及 HACGIS 的《 使用參照的幾個原則 》，HACGIS 的文章是本文討論內容的起點。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2659001.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Fri, 19 Jan 2007 23:30:30 +0800</pubDate>
					</item>
	<item>
		<title>Working with PHPUnit3, part 2 - 撰寫測試案例 / 石頭閒語</title>
		<description> 標籤: agile-method tdd unit_test phpunit 
 
繼第一部份《 Working with PHPUnit3, part 1 - 安裝備忘錄 》後，接下來舉例說明操作 PHPUnit 之過程。
 
 
  PHPUnit3 指令工具與測試案例源碼檔 
  撰寫測試案例源碼內容  
  從測試對象產生測試案例源碼骨架  
  完成測試案例與產生測試項目清單  
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2653972.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Thu, 18 Jan 2007 00:29:40 +0800</pubDate>
					</item>
	<item>
		<title>在 PHP 中以「中文字」為符號名稱之事項 / 石頭閒語</title>
		<description> php_syntax 
 
在 PHP 中能否以「中文字」作為變數、常數、函數的符號名稱呢？當然可以，但現階段有些注意事項與使用障礙。本文是個人經驗，供各位參考 ( 對了，我個人不將程式語言視為「英文」。而那些以 a-z0-9 等字母組成的符號，我僅將其視為視覺識別符號。嘿嘿，畢竟我英語發音很差，那些字大多數是以字形識別其意的 )。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2650736.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 16 Jan 2007 21:15:18 +0800</pubDate>
					</item>
	<item>
		<title>Example of Configuration Driven Development with PHP / 石頭閒語</title>
		<description> Tags: agile-method cdd json 
 
tokimeki 在回應《 動態語言關於參數宣告的寫作風格 》時提到：  所以我只要在函數內設定一個預設陣列，然後把參數陣列以及預設陣列丟進去處理就行了，傳回來就得到過濾好的參數陣列，而且保證每個參數都有值。接下來就可以對每個參數作驗證、運算等動作。  這個作法還可以按所謂「Configuration Driven Development」的概念進一步改良。 Configuration Driven Development 是以中介資料描述軟體運作時的組態，我們藉由組態內容便得以調整與協調程式運作的內容。可以參考 Steve McDuff 的這篇：《 Configuration-driven development 》。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2644922.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Sun, 14 Jan 2007 21:56:45 +0800</pubDate>
					</item>
	<item>
		<title>動態語言關於參數宣告的寫作風格 / 石頭閒語</title>
		<description> 
tokimeki 日前回應的文章中提到   然後在函數內作過濾參數動作   ，讓我想起在不同程式語言對參數宣告一事有著不同的寫作風格。我就從參數宣告的寫作風格中，展現一下不同程式語言的各種風貌吧。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2642460.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Sat, 13 Jan 2007 19:20:52 +0800</pubDate>
					</item>
	<item>
		<title>PHP5 的動態函數/行為調用效率測試 / 石頭閒語</title>
		<description> Tags: variable_function magic_method reflection 
 
我先前為了測試 PHP5 的  reflection  能力，找到《 Benchmarking dynamic function/method calls 》為參考文章，寫了一段效率測試碼。剛好今天看到 HACGIS 也做了《 各種呼叫方式的比較 》。因為 HACGIS 沒測到 reflection 的部份，所以把我的效率測試碼也放上來供各位參考。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2633503.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 09 Jan 2007 18:12:44 +0800</pubDate>
					</item>
	<item>
		<title>釐清 MVC 與 Framework 的觀念 / 石頭閒語</title>
		<description> 
 
若是 Web 應用, 大可不必採用 MVC, 招致執行效率差程式碼分散的結果
相反的, 也有工程師告訴我使用 MVC 對於長期維護程式增減功能有很大助益
 
 
據了解使用 MVC 程式的行數的確會增多; 但也會有助健全的程式開發與便利維護程式
 
 
 
由於許多 framework 都把  MVC  列為特點，因而導致初學者把 MVC 和 framework 這兩件事混淆在一起，然而這兩者是不同層次的事物，甚至彼此無關。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2617123.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Wed, 03 Jan 2007 11:01:18 +0800</pubDate>
					</item>
	<item>
		<title>處理表單複選項目, 於表單中使用陣列 / 石頭閒語</title>
		<description> php_syntax 
 
HTML 表單傳送給 PHP 的資料， PHP 會自動儲存在全域陣列中，例如以 POST method 送出的表單資料便儲存在  $_POST  全域陣列，以 GET method 送出的表單資料儲存在  $_GET  全域陣列。如果我們為表單元件命名 (指派了  name  屬性) ，則可以表單元件名稱為陣列鍵值。例如表單有一個名稱為 &quot;userAddress&quot; 的文字輸入欄位  &amp;lt;input name=&quot;userAddress&quot; type=&quot;text&quot;/&amp;gt;  ，且此表單以 POST method 送出，則 PHP 中可以  $_POST[&#039;userAddress&#039;]  取得使用者在此欄位中輸入的資料。上述是 PHP 處理表單資料的基本概念。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2600683.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 26 Dec 2006 14:25:49 +0800</pubDate>
					</item>
	<item>
		<title>Working with PHPUnit3, part 1 - 安裝備忘錄 / 石頭閒語</title>
		<description> 
近來的軟體開發流程強調「測試驅動開發 (Test-Driven Develope)」，對於單元測試 (unit test) 發展出了一些系統化的作法和工具，這類單元測試工具俗稱 xUnit ，例如 C 語言的 CUnit ， Java 的 JUnit ， .NetFramework 的 NUnit 。 PHP 也有  PHPUnit  。
 
 
安裝 PHPUnit 其實很簡單，基本上按 PHPUnit 的《 Installation 》的步驟即可完成安裝。只是我在 Windows 平台上做了一些修改。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2599757.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Mon, 25 Dec 2006 23:38:00 +0800</pubDate>
					</item>
	<item>
		<title>Equal (==) and Identical(===) in PHP / 石頭閒語</title>
		<description> php_syntax 
 
PHP 的比較算符中 ( Comparison Operators ) 提供了兩種相等算符，一為 Equal 算符( == )，另一為 Identical 算符 ( === )。這兩種算符是因應 PHP 的型態彈性 (或稱動態型) 而設置，其差異在於 Equal 算符會自動轉換兩側變數的型態，而 Identical 算符不會轉換型態，因此 Identical 算符要求值以及型態皆相等才為  True  。
 
</description>
		<link>http://blog.roodo.com/rocksaying/archives/2565180.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Tue, 12 Dec 2006 22:09:07 +0800</pubDate>
					</item>
	<item>
		<title>用 SimpleXML functions 和 MVC 架構實作的簡單 RSS 閱讀器 / 石頭閒語</title>
		<description> Tags: MVC framework SimpleXML 
 
我前幾天發現 blog 邊欄訂閱的 RSS 欄位的內容沒有顯示出來，追蹤了一會兒，發現是 blog 系統在輸出 RSS 內容時，沒有處理換行字元，令 JavaScript 碰到非預期的敘述斷行導致執行失敗。追蹤過程中，我順手寫了一個 PHP 程式測試這個狀況。後來我把這程式擴充一下，改寫成一個簡單的 RSS 閱讀器。
 
 
這個 PHP 程式，使用 SimpleXML functions 處理 RSS 文件，並且實踐了一個非常簡單的 MVC 架構。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2552134.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Wed, 06 Dec 2006 23:45:38 +0800</pubDate>
					</item>
	<item>
		<title>學習 PHP5 語言動態性的入門文章 / 石頭閒語</title>
		<description> Tags: magic_method 動態語言 refactoring agile-method ORM 
 
從 PHP4 到 PHP5 ， PHP 不只改善了個體 (object) 的成員保護程度，也引入了 PHP 稱為「 magic methods 」的特殊行為。 Magic methods 提昇了 PHP 的動態性，活用 magic methods 可以大幅減少程式碼中類似的重覆行為，並為 programmer 帶來更開放與直觀的程式撰寫彈性。
 </description>
		<link>http://blog.roodo.com/rocksaying/archives/2541636.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Sun, 03 Dec 2006 15:32:16 +0800</pubDate>
					</item>
	<item>
		<title>Model 練習與測試工具. / ㄚ凱的網路生活</title>
		<description>平常都要自己查一下Model 的回傳等等，常常會覺得挺麻煩的。  下面是自己寫的一個小工具，直接在畫面上填入要測試Model，然後輸入要 Run 的 Command ... 就可以了。 (目前無法做 save 的相關動作。)  Controller 程式碼:  &amp;lt;?php class DemoController extends AppController {         //var $scaffold;         var $name = &#039;Demo&#039;;         var $uses = array();         var $helpers = array(&#039;Html&#039;, &#039;Form&#039; );          function index(){             if(!empty($this-&amp;gt;data)){                 $command_str = &#039;$model = new &#039;.$this-&amp;gt;data[&#039;Test&#039;][&#039;model&#039;].&amp;quot;;\n&amp;quot;;                 $command_str .= &#039;$result = $model-&amp;gt;&#039;.$this-&amp;gt;data[&#039;Test&#039;][&#039;Command&#039;].&#039;;&#039;;                 eval($command_str);                 $this-&amp;gt;set(&#039;command_str&#039;,$command_str);                 $this-&amp;gt;set(&#039;result&#039;,$result);             }         } } ?&amp;gt;   View: 程式碼:  &amp;lt;form action=&amp;quot;&amp;lt;?=$html-&amp;gt;url(&#039;/demo/&#039;)?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;     &amp;lt;label&amp;gt;Model Name&amp;lt;/label&amp;gt;     &amp;lt;?=$html-&amp;gt;input(&#039;Test/model&#039;,array(&#039;size&#039;=&amp;gt; &#039;40&#039;))?&amp;gt;     &amp;lt;label&amp;gt;Function&amp;lt;/label&amp;gt;     &amp;lt;?=$html-&amp;gt;input(&#039;Test/Command&#039;,array(&#039;size&#039;=&amp;gt; &#039;40&#039;))?&amp;gt;     &amp;lt;?=$html-&amp;gt;submit();?&amp;gt; &amp;lt;/form&amp;gt;  &amp;lt;h1&amp;gt;Code&amp;lt;/h1&amp;gt; &amp;lt;? if(isset($command_str)){     highlight_string($command_str); } ?&amp;gt;   &amp;lt;h1&amp;gt;Result&amp;lt;/h1&amp;gt; &amp;lt;? if(isset($result)){     pr($result); } ?&amp;gt; </description>
		<link>http://blog.roodo.com/darkhero/archives/2353100.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Mon, 23 Oct 2006 16:05:08 +0800</pubDate>
					</item>
	<item>
		<title>用PHP的mkdir()函式自動建立資料夾 / Han1019的異想世界</title>
		<description>當你需要在目錄底下建立新的資料夾時
可以使用mkdir()這個函式
用法很簡單
int mkdir(string pathname, int mode)</description>
		<link>http://blog.roodo.com/han1019/archives/2002314.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Fri, 11 Aug 2006 14:31:00 +0800</pubDate>
					</item>
	<item>
		<title>取得目前php版本使用函式 phpversion / Han1019的異想世界</title>
		<description>phpversion是用來取得目前使用中的php版本</description>
		<link>http://blog.roodo.com/han1019/archives/1961475.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Wed, 02 Aug 2006 01:32:10 +0800</pubDate>
					</item>
	<item>
		<title>在 Element 中使用 model / ㄚ凱的網路生活</title>
		<description>在做網站的時候常常會用到重複使用的區塊。

這個時候我們會用到 view 的 element 來做這類的東西，像是選單拉，一些廣告區拉等等。

但是若在 Element 中想要用Model去取得資料庫中的資料（例如製作動態選單）該怎麼做呢？

事實上作法很簡單。


例如我要呼叫Post這個Model，只要   就好了，這樣你就可以直接在這個 Element 中使用這個 Post model 。
</description>
		<link>http://blog.roodo.com/darkhero/archives/1947549.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Sat, 29 Jul 2006 23:45:26 +0800</pubDate>
					</item>
	<item>
		<title>array_merge / Han1019的異想世界</title>
		<description>array_merge 用在合併兩個陣列
語法是 array_merge ( array array1 [, array array2 [, array ...]] )
可以合併很多陣列 , 規則是如果陣列有相同的string keys , 則後面的會覆蓋前面的 , 然而若陣列包含numeric keys , 則後面的不會覆蓋前面的 , 但會附加
看看範例：</description>
		<link>http://blog.roodo.com/han1019/archives/1916508.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Sat, 22 Jul 2006 00:00:41 +0800</pubDate>
					</item>
	<item>
		<title>array_rand / Han1019的異想世界</title>
		<description>array_rand 的主要功能是將陣列中的值隨機取出
語法是 array_rand (input [, int num_req] )
其中 input 指的是陣列，而整數 num_req 則是你要顯示的個數
舉例如下</description>
		<link>http://blog.roodo.com/han1019/archives/1915984.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Fri, 21 Jul 2006 23:39:34 +0800</pubDate>
					</item>
	<item>
		<title>in_array / Han1019的異想世界</title>
		<description>in_array 的功能是判斷值是否存在陣列中，若在陣列中則傳回TRUE，反之傳回FALSE

舉例來說：
</description>
		<link>http://blog.roodo.com/han1019/archives/1910769.html</link>
		<author>info@blog.roodo.com&lt;info@blog.roodo.com&gt;</author>
		<category>網路/3C</category>
		<pubDate>Thu, 20 Jul 2006 17:30:00 +0800</pubDate>
					</item>
</channel>
</rss>