YASnippet is a template system for emacs

在 irc 頻道上面看到 gugod 貼了 YASnippet 介紹短片,gugod 也寫了一篇 Writing Moose code with yasnippet,YASnippet 是一個針對 emacs 開發者的模組工具,它大量減少寫程式的時間,且自動幫忙補其該有的程式,大家可以在 Linux 底下試試看這一套 template system,我們直接來看影片,就很清楚了。 目前支援程式語言:C, C++, C#, Perl, Python, Ruby, SQL, LaTeX, HTML, CSS and more.

MySQL count(“欄位”) vs mysql_num_rows 速度?

在 FreeBSD ports 裡面還沒看到 chinese/phpbb3 的 ports,目前只有 chinsan 維護的 chinese/phpbb-tw ports,之前版本是 2.0.22 版本,後來我 commit 到 2.0.23 版本,不過 PHPBB 官網已經不再維護或者是開發 2.0.X 版本了,現在以 PHPBB3 為版本開發,也針對了 PHP6 跟 PHP 5 的相容性做了很大的改變,所以基本上如果在 2.0.X 版本加了很多外掛,那就沒辦法升級到 phpBB3 版本了,畢竟 code 實在改變太多了,找個時間把 chinese/phpbb3-tw commit 進去,不然也可以到 www/phpbb3 做安裝。 為什麼會提到 phpBB 呢,今天在 trace phpBB3 的 code,發現原本在 phpBB2 裡面有支援 mysql_num_rows function,用來讓程式可以取出 sql 的個數,不過在 phpBB3 竟然就把這個 function 拿掉了。 phpBB2 mysql4.php 程式:

function sql_numrows($query_id = 0)
{
	if( !$query_id )
	{
		$query_id = $this->query_result;
	}

	return ( $query_id ) ? mysql_num_rows($query_id) : false;
}
[Read More]

[PHP] Zend 使用 Google Calendar API – 新增、刪除事件 – END

這篇算是 Google Calendar API 的結尾文章了,只剩下新增、刪除兩個功能尚未說明,那這兩個功能野蠻簡單的,底下就來介紹如何新增單一事件功能,看看是否要增另外新檔案放 form 的表單,我是把表單放入 index.php 再把資料傳送到 news.php 此檔案,先介紹 form 表單:

[Read More]

[PHP] Zend 使用 Google Calendar API – 編輯事件

上一篇介紹了瀏覽 Google Calendar API 範圍內所有的事件,有沒有發現在 index.php 就有瀏覽單一事件的連結,我們透過 API 可以取得單一事件的 evenID,取得的方式就是透過 basename 函式:

basename($event->id->text)
我們可以利用 $_GET 方式讀取到 evenID 值,傳送到 event.php 來接收
$eventId = ( isset($_POST['id']) ) ? $_POST['id'] : $_GET['id'];
1. 新增 event.php 檔案,寫入開頭:
where as $where) {
  $whereValue = $where->valueString;//地點
}
?>
[Read More]

[PHP] Zend 使用 Google Calendar API – 瀏覽事件

昨天寫了一篇 [PHP] Zend 使用 Google Calendar API - 環境建立架設,相信應該是非常簡單才對,那今天來介紹一下實做 Google Calendar API 的瀏覽、新增、刪除、修改事件的功能,在官方網站都有詳細的 API 功能介紹,我只不過把功能整合完整一點,詳細請看 Google Calendar API With PHP。 1. 瀏覽功能:建立 index.php

/*
* include 昨天新增的config.inc.php 檔案
*/
include('config.inc.php');
/*
* 提供Calendar 的服務名稱
*/
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
/*
* 登入帳號密碼
*/
$client = Zend_Gdata_ClientLogin::getHttpClient($googleAccount, $googlePassword, $service);
[Read More]

[PHP] Zend 使用 Google Calendar API – 環境建立架設

最近又玩了 Googl 的 API:Google Calendar APIs and Tools,這個 API 可以讓 PHP 開發者對於使用 Google Canledar 有很大的幫助,可以新增事件,刪除事件,修改事件,或者是更改事件,相信在 Google 的 API 裡面都寫的很詳細,這 API 是由 Zend 底下所開發出來的,在 Zend Framework 底下是小 API 模組,大家可以在 這裡 下載到最新的版本 Zend Gdata 1.7.7,大家也可以直接在 Zend Framework 底下做開發,目前支援 PHP5,如果對 Google 月曆不會用的,可以上網找一下,很多 教學 的喔,底下是要針對開發環境建立做介紹。 針對 Google Calendar PHP API 教學大家可以先看看,今天先教大家建置環境,環境用在 Zend Framework 底下的作法,那架設 Zend Framework 可以參考我上一篇文章:[PHP] Zend Framework 安裝筆記教學 Appserv + Zend Framework (一),如果是在 Zend Framwork 底下安裝的話,那必須把 .htaccess 裡面的導向 index.php 的功能 mark 起來,不然就跑不過去喔,不然就是另開一個資料夾,就不需要搭配 Zend Framework,那就在 (www 或者是 data)資料夾,多開一個 GClab 資料夾,把檔案解壓縮到裡面。 1. 新增 google 帳號的設定檔案 config.inc.php

/*
* Google 帳號密碼,以及 calendar ID
*/
$googleAccount = 'xxxxxxx@gmail.com';
$googlePassword = '';	
$calendarID = 'xxxxxxxx@gmail.com';
[Read More]

[PHP] Zend Framework 安裝筆記教學 Appserv + Zend Framework (一)

今天在公司上班需要用到 Zend Framework 這一套 MVC 的軟體,用來開發 Google Calendar APIs,這 API 是用 Zend Framework 下去寫得,在 Google 文件 說的很清楚,那底下來介紹一下安裝過程吧,首先環境要先有 Apache + PHP + MySQL,我本身用 Appserv 懶人套件,我是用 AppServ 2.5.10 裡面包含底下:

  • Apache 2.2.8
  • PHP 5.2.6
  • MySQL 5.0.51b
  • phpMyAdmin-2.10.3 1. 先修改 apache 設定 httpd.conf
#LoadModule rewrite_module modules/mod_rewrite.so
改成 unmark 掉
LoadModule rewrite_module modules/mod_rewrite.so
修改 include_path 在 php.ini 裡面,或者是利用

set_include_path 來修改 2. 開始安裝 Zend Framework,首先去 官方網站下載,目前版本:Zend Framework 1.7.7,了解 MVC 架構。可以參考:透視 WebMVC 這篇。

[Read More]

[Pear] 利用 Validate 套件驗證 E-mail 多重表單認證

最近都在玩 open source 的程式,方便加速自己開發 PHP 的專案,在申請帳號密碼部份就可以利用 Validate 套件來驗證,以及 email 填寫正確性,可以檢查 MX 或者是 A record 紀錄,還蠻方便的,也可以檢查 multiple 欄位,設計的相當不錯,也有金融相關套件可以驗證 CreditCard,金融套件名稱是 Validate_Finance 裡面的 Validate_Finance_CreditCard 部份,線上也有很多相關說明,可以參考 Validate 線上手冊,目前已經到 0.8.2 (beta),如果使用 Release 版本,請選用 0.8.1,軟體可以在此下載,0.8.2 是在 2009-01-31 Release 出來的,還不錯用,最主要的功能如下

Package to validate various datas. It includes : - numbers (min/max, decimal or not) - email (syntax, domain check, rfc822) - string (predifined type alpha upper and/or lowercase, numeric,…) - date (min, max, rfc822 compliant) - uri (RFC2396) - possibility valid multiple data with a single method call (::multiple)

  1. 驗證各種不同的日期函式
  2. 驗證數字(最小/最大,是否是10進位)
  3. email 驗證(正規語法驗證,check domain name 是否存在,rfc822 驗證)
  4. 字串驗證(正規語法驗證,是否包含數字英文字母,可輸入最長或最短)
  5. url 驗證(遵從 RFC2396 規定)
  6. 多重欄位(multiple data)驗證(可以同時驗證上述功能)
[Read More]