文字介面線上字典 Script

在 BBS 看到有人寫幾行的 script, 做的事情就是把參數傳給 Yahoo! 字典, 然後把抓回來的資料去掉 html, 就是很清楚的查詢結果, 給 Leeym 長輩看了後, 長輩給了另一個 Perl 版本的 scrtip, 除了清楚的查詢結果外, 還有詞性 + 顏色, 而且還有 spell check(Y! 字典提供的修正).

順便推薦作者講的 sed 好站: SED 單行 script 快速參考, 作者就是抄這邊把html濾掉的.

閱讀全文〈文字介面線上字典 Script〉

用 PHP 寫 Command-Line Script(CLI)

用 PHP 來寫一般 Script 很簡單, 只要直接寫, 再用 PHP 去執行即可, 但是寫 Command-Line Script(CLI - Command-Line Interface) 當然要用用 STDIN, STDOUT, STDERR 囉(用此做做互動)~

詳細文件可見: PHP: Using PHP from the command line - Manual

閱讀全文〈用 PHP 寫 Command-Line Script(CLI)〉

Google PageRank 演算法實作(Python版)

Google PageRank 演算法 用 Python 實作出來(程式共126行), 詳細沒有仔細看, 以後有需要再來研究..

詳細可見如下:

  1. PageRank 演算法詳述: How Google Finds Your Needle in the Web's Haystack
  2. 實作: The Google PageRank Algorithm in 126 Lines of Python
  3. 實作: Google PageRank algorithm in Python

閱讀全文〈Google PageRank 演算法實作(Python版)〉

PHP: XML to JSON 轉換程式(xml2json)

為了減少前端的負擔, 於是決定要將 XML 轉 JSON 的工作轉到後端去做, 但是找了許久找不到 XML to JSON 的程式, 於是就自己寫了轉換程式.

基本上比想像中麻煩一點, 沒想到還有 @, # 等等一些怪怪的規則~ 所以程式寫起來比較亂一點.

此程式就是照此篇文章規則寫的: Converting Between XML and JSON

有 Javascript 版可以 線上轉換 參考: XML to JSON – a converter

閱讀全文〈PHP: XML to JSON 轉換程式(xml2json)〉

鍵盤按鍵 與 Javascript key codes 對應表

當要設計快速鍵, 但是到底此鍵盤按鍵對應的 key code 到底是多少呢~ 找到一個非常實用的列表.

為了怕不見, 將此頁存下來於此檔 Javascript Key Codes.

另外找到下述網站有 ASCII 1~255 分別對應的字元列表

閱讀全文〈鍵盤按鍵 與 Javascript key codes 對應表〉

PHP 測量程式執行時間

程式在執行時, 遇到莫名奇妙執行很久, 但又不知道是什麼問題的時後, 就用此 function 來將每個執行的時間印出來, 將可輕易找出問題所在.

<?php
function getMicrotime()
{
    list($usec, $sec) = explode(' ', microtime());
    return ((double)$usec + (double)$sec);
}?>

使用方法:(以抓 mysql_connect() 時間為例)

<?php
$start = getMicrotime();
mysql_connect('localhost', 'id', 'password');
$end = getMicrotime();
$time = $end - $start;
echo "mysql_connect 執行時間: $time";
?>

註: PHP5 以後, 可以採用下述作法:

<?php
$time_start = microtime(true);

// Sleep for a while
usleep(100);

$time_end = microtime(true);
$time = $time_end - $time_start;
?>

<?php
$time_start = microtime(true);

// Sleep for a while
usleep(100);

$time = microtime(true) - $time_start;
?>