星期日, 9月 19, 2010

菊花文

菊花文是最近網路流行的ㄧ種新文體,大概就是那些自我感覺良好的人才會使用,因文字後面加上菊花符號,因此而得名。

寫程式也要趕的上一些流行對吧,那麼就來一個 PHP 版的菊花文轉換函式:

class Chrysanthemum{
        
public static function get ($str
)
        {
                
mb_internal_encoding("UTF-8"
);
                
$len = mb_strlen($str
);
                
$mb 
= array();
                for (
$i = 0; $i < $len; $i
++) {
                        
$mb[] = mb_substr($str, $i, 1
);
                }
                
$mb[] = ""
;
                return 
implode("&#1161;", $mb
);
        }
}
?>


意思就是將字串拆為每個字,然後在中間加上菊花符號(&#1161;)。

echo Chrysanthemum::get("菊花文");

嗯嗯~下面就是結果囉...

菊҉花҉文҉

星期三, 7月 28, 2010

在 Windows 編譯PHP原始碼 (VC++9)

我們需要安裝下面編譯器 和 類別庫 用來編譯PHP,這篇文章則以PHP5.3.1為編譯範例 :

  1. Microsoft Visual Studio C++ 2008 Express Edition x86
  2. Windows SDK 6.1
  3. PHP 編譯用工具
  4. PHP 延伸模組編譯用開發套件(選擇性)
第1,2項,只要下一步的預設安裝即可。(重要:如果是編譯 apache SAPI請用 VC++6 x86 和 Thread Safe 模式)
第3,4項的部分,我們建立一個開發用的目錄夾 c:\php-sdk 並且將 binary-tools.zip 解開到這個目錄匣內,延伸模組用的開發套件也是解壓縮後放到這個目錄夾上來。如果都有抓回並解開的話,那麼c:\php-sdk 底下會有四個目錄匣:

星期三, 1月 20, 2010

求點到直線距離

好幾天沒寫部落格,剛好在某討論區看到C版本的點到線段距離的算法,趕快寫一篇PHP版本『點到直線』和『點到線段』的最短距離。這個方式是透過海倫公式求得面積之後,在透過面積 = 底 x 高 / 2的公式取得高(最短距離)。

問:在直角座標平面上 , P( - 4 , 3 ) 到直線 3x-4y=12 的距離為多少?

那麼,我們先找出在直線上的AB 任意兩點,把A(4,0),B (0,-3)和P( - 4 , 3 ) 連成一個三角形。


星期四, 1月 14, 2010

智慧型手機瀏覽器的電話撥號

目前大多數人用的智慧型手機,都可以透過 HTML 語法直接在瀏覽器撥號。有的瀏覽器會自動辨識字串是否為電話號碼,只要碰觸就可以撥號(如 iPhone 的 Safari 或 Opera),但是若定義 doctype 則可能該功能消失,最保險的方式就是將電話撥號的語法寫在 HTML 上。


星期一, 1月 11, 2010

6個G

原始討論:http://twpug.net/modules/newbb/viewtopic.php?topic_id=4828&forum=16

一個蠻有趣的討論題,這篇可以提供一下學校作業解題的思考方向,可以使用從頭到尾運行一遍,取出答案。或是由數學公式直接取得答案。

題目:6個G


在下列乘法算式中,每個字母代表0~9的一個數字,且不同的字母代表不同的數字:

  ABCDE

X     F

-------

 GGGGGG

求出各字母對應之數字。

星期二, 12月 22, 2009

PHP Extension 的開發環境建立 (Unix-Like方式)

有一陣沒寫 php extension,最近試了一下 PHP 5.3.1 ,發覺它的預設有稍微的不一樣。所以重新記錄一下,建立一個PHP extension 的方式與注意事項。這一篇使用 Linux 下開發當範例,大部分的 unix - like 都為相同方式。

星期四, 12月 17, 2009

取消文字選取狀態

由於作了拖拉物件功能,在廣大的區域移動會造成選取的狀態,整片反白影響了外觀。所以只好在拖拉物件的觸發事件內加了一些取消文字選取狀態的程式碼。

寫了一下範例,開關選取文字狀態的按鈕:



範例文字選擇

星期二, 12月 15, 2009

讓網站的小圖示共用一張圖片

為什麼要讓網站的小圖示共用一張圖片呢?其實在流量小的網站是沒差別的,但是在高流量的網站,一個美觀且功能眾多的網頁,光一個瀏覽頁,就會大量的對 Web Server提出HTTP Request。所以將小圖合併成一個大圖檔,則可以降低Web Server的請求處理。流量大的網站常常使用這種技巧,如 Facebook 就大量使用到這樣的方式。

下面範例是使用一張大圖,透過CSS定義,取得小圖的圖形。

讓圖或顯示區塊變透明

今天記錄這個,讓顯示的元件變透明的語法,IE/Chrome/Firfox都可以用方式。

<style>
.
cryst {

    filter:alpha(opacity=50);
    opacity: 0.5;
}
</
style>

<
img src=http://img0.gmodules.com/logos/esperanto_09-ig.gif class="cryst">


上面定義的部分 filter:alpha(opacity=50);是給 IE 辨識,而opacity則是給支援CSS 3.0的瀏覽器辨識。

星期一, 12月 14, 2009

內嵌網頁的系統自動登入

自動登入的方式其實有很多種實作方式,會因為系統的類型而有所不同。如登入電腦時,所有開啟的Client AP或是 Web AP都進入登入狀態,或是像是類似 Facebook在登入後,放在世界各地的AP利用Facebook提供的API確認登入,才讓自己進入登入狀態。

而我介紹的這個方式,是指自己的系統,開了幾個 iframe 視窗,放置不同網址但需要登入的AP系統。而我們設計簡單的紀錄該系統的帳號密碼,再登入我們的系統的時候,也一併登入那些系統。