網絡技術日誌
關於 PHP, Linux, Open Source 及個人生活記載的網誌。-
變更 MySQL client 的提示符號
Posted on August 8th, 2011 No comments在預設的情況下,在 command line 連接 MySQL 資料庫時,會使用以下的提示符號:
mysql>如果將以上提示符號變更,可以顯示更多資訊的話,操作起來會相當方便。要變更這個提示符號首先開啟 my.cnf 檔案(Windows 用戶是 my.ini),然後在 [mysql] 區間加入以下語句:
prompt=\u@\h:[\d]>\_
上面語句的 "\u" 及 "\h" 分別會顯示用戶名稱及主機名稱,"\d" 會顯示所選擇的資料庫,以下是上面設定的提示符號:
samtang@localhost:[hkcode]>以下是 MySQL 提示符號可用的參數:
\c A counter that increments for each statement you issue
\D The full current date
\d The default database
\h The server host
\l The current delimiter (new in 5.0.25)
\m Minutes of the current time
\n A newline character
\O The current month in three-letter format (Jan, Feb, …)
\o The current month in numeric format
\P am/pm
\p The current TCP/IP port or socket file
\R The current time, in 24-hour military time (0–23)
\r The current time, standard 12-hour time (1–12)
\S Semicolon
\s Seconds of the current time
\t A tab character
\U Your full user_name@host_name account name
\u Your user name
\v The server version
\w The current day of the week in three-letter format (Mon, Tue, …)
\Y The current year, four digits
\y The current year, two digits
\_ A space
\ A space (a space follows the backslash)
\’ Single quote
\” Double quote
\\ A literal “\” backslash character
\x x, for any ‘x’ not listed above
-
PHP 透過 ip2country 查詢 ip 所屬國家
Posted on August 1st, 2011 1 comment用 PHP 查詢 ip 所屬國家可以用幾種不同的方法,以下會介紹使用 MaxMind 的函式實現,首先到以下網址下載 MaxMind 函式:
http://geolite.maxmind.com/download/geoip/api/php/geoip.inc
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz將上面的 GetIP.dat.gz 解壓,然後可以用以下程式碼實現:
PHP:-
<?php
-
include("geoip.inc");
-
-
$test_ip = "123.123.123.123"; // 這是要查詢的 ip
-
-
$gi = geoip_open("GeoIP.dat", GEOIP_STANDARD);
-
-
geoip_close($gi);
-
?>
I use ipchicken.com to get my IP address.
-
-
PHP 讀取 XML 檔案
Posted on July 29th, 2011 1 comment在 PHP4 時沒有專用函式讀取 XML 檔案,而PHP5 已經內建一個讀取 XML 檔案的函式,那就是 simplexml_load_file()。
PHP:-
<?php
-
$xml = simplexml_load_file("test.xml"); //設定要讀取的 XML,也可以是 URL
-
-
?>
-
-
幾個實用的 PHP Regular Expression
Posted on July 28th, 2011 1 commentRegular Expression 在程式開發時檢查及替換字串相當有用,以下是幾個很好用的 PHP Regular Expression 例子:
1. 密碼檢查: 以下的 Regular Expression 會檢查密碼是否夠安全,會檢查密碼必需最少有 8 位,以及最少包括一個小寫字母、一個大寫字母及一個數字:
PHP:2. Email 地址檢查:
PHP:3. URL 檢查:
PHP:
-
將 .htaccess 檔案改名
Posted on July 26th, 2011 No comments.htaccess 可以改變很多網站的設定,這也造成一個安全性的問題,因為有心人都會估計到網站可能會用 .htaccess,如果未有對 .htaccess 進行權限定,所有人都可以瀏覽 .htaccess 的內容。
除了變更權限外,也可以設定 Apache 讀取其他檔案名稱,那麼其他人便不會那麼容易知道設檔的位置,但這個方法需要編輯 httpd.conf 才可以實現。
在 Apache 建立的 virtualhost 裡面,只要加入 "AccessFileName" 便可以自訂設定檔的名稱,例如:
AccessFileName .htaccess.hidden
以上語句會指定 .htaccess.hidden 代替原本的 .htaccess 檔案。
-
推薦 Firefox Addon — Google Dictionary and Google Translate
Posted on June 11th, 2011 No comments在瀏覽一些外國網站時,當遇到不懂的生字時,最早期是用 Dr.Eye,滑鼠指向生字便會翻譯。然後就是用 Google Toolbar 的翻譯功能,但 Google Toolbar 最大問題是不知何時失靈,穩定性相當差,後來就索性用 Yahoo 字典。
近來有了新的解決方法,就是安裝一隻叫 Google Dictionary and Google Translate 的 Firefox Addon。
安裝後當遇到有不懂的英文生字,只要 double click 那個生字,便會顯示中文翻譯,用過幾日後覺得真的很方便。
-
Linux 使用 TMOUT 設定自動斷線
Posted on June 9th, 2011 No commentsLinux 下可以透過設定 TMOUT 變數,來實現當用戶在特定時內沒有任何動作就終斷連線,設定指令為:
export TMOUT=300以上指令設定預設終斷連線時間為 5 分鐘,也可以編輯 ~/.bash_profile 或 /etc/profile 進行設定。
如果要取消 TMOUT 的設定,可以用以下指令實現:
export TMOUT=0或
unset TMOUT
-
KYB Excel-G 避震
Posted on June 3rd, 2011 11 comments上個月發現後避震有漏油的現象, 前避震也有軟棉棉的感覺, 決定一次過將 4 枝避震全部換掉。因應自己的情況, KYB 的入門級避震 Excel-G 配上原廠彈弓會是不錯的選擇, 據零件舖所講, KYB Excel-G 只比原廠避震硬 10% 左右, 不失舒適之餘又提升一點運動性, 而且價錢也很經濟, 前後 4 枝避震合共 $1,400。

在車房師傅換好 4 枝避震後, 看看換出來的舊避震, 按下去已經不會彈回來, 難怪換之前好開車好像坐船一樣。新避震用了一個月後, 覺得入彎的確較原廠避震穩定一點, 但不會是那種高檔避震的表現, 只是入彎時有較實在的感覺。
-
換電池
Posted on May 29th, 2011 No comments舊電池已經用了兩年, 覺得還是早點更換較有保障, 今日去汽車零件店買一個 panasonic 46B24L 的免保養電池, 盛惠 $600 大元, 雖然 panasonic 的電池較貴, 但覺得較耐用.
要自己買電池更換是因為較便宜, 一般賣輪胎電池的店舖會提供免費更換服務, 但實際上更換的費用已經算進售價上, 而且舊電池可以拿到回收店回收的.
我的 corolla 換電池較簡單, 可以不用不斷電方法也可以. (但好像新款的 corolla 141 要不斷電的方法更換) 如果是歐洲車, 大多要採用不斷電的方法更換.
具體更換方法如下, 但請注意, 不要將正/負極的次序倒轉:
1. 拆開固定電池的扣具
2. 拆下舊電池的負極
3. 折下舊電池的正極
4. 放入新電池, 接上正極
5. 接上新電池的負極
6. 將電池扣具上實便完成了
-
Corolla 121 冷氣 relay
Posted on May 29th, 2011 No comments過去幾天發覺架車冷氣有時無法送出冷風, 到昨天完全沒有冷風出, 原本還以為是凍 COIL 或者冷氣泵壞.
在網上找了一下, 原來可能是冷氣 relay 壞, 於是打開車頭, 在右邊的電池後邊有一個長方型的黑色盒子, 打開後將喇叭跟冷氣的 relay 對調, 冷氣便正常了, 喇叭就不會響, 用 contact cleaner 噴一噴有問題 relay 的接腳, 插回去又正常.
原本那個 relay 是 made in japan 的原廠 DENSO 製品, 去汽車零件行想配一粒, 零件行只有台灣製品的 relay 可供選擇, 我想台灣製的問題應該不大, 只要 $25 一粒, 一共買了兩粒以備不時之需.
-
PHP Easter Egg
Posted on January 27th, 2011 No comments在 PHP 頁面後面加上以下 GET 請求,便會顯示一幅 PHP 的圖片,例如:
http://localhost/index.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
-
QMail 新增額外 SMTP Port
Posted on September 11th, 2010 No comments現在很多 ISP 也會將用戶的 port 25 封鎖,只容許用戶使用 ISP 提供的 smtp server。如果想架一台 smtp server 給被封鎖 port 25 的用戶使用,可以在 email server 多開一個 port 作為與用戶的連線,只要用戶在電郵軟件修改 smtp port 便可以,以下是在 QMail 設定多一個 port 的方法:
假設要開啟的 port 為 1225,首先將 /var/qmail/supervise/qmail-smtpd 整個目錄複製多一份,一般上我會在複製目錄名稱後面加上 port 以便不會忘記:
# cp -Rp /var/qmail/supervise/qmail-smtpd /var/qmail/supervise/qmail-smtpd-1225然後要修改 /var/qmail/supervise/qmail-smtpd-1225/run 檔案,設定要監聽的 port,應該會找到類以這一行:
-u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \
將 "smtp" 改成要新增的 port,那麼就是要改成:
-u "$QMAILDUID" -g "$NOFILESGID" 0 1225 \
修改完以上檔案後,便要修改 /var/qmail/supervise/qmail-smtpd-1225/log/run 檔案,最後應該會有一行是指向 smtpd 的紀綠檔,要指向一個新目錄:
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd-1225
然後建立儲存 smtpd-1225 的紀錄檔目錄:
# mkdir /var/log/qmail/smtpd-1225/
# chown qmaill /var/log/qmail/smtpd-1225/在 /service 目錄下建立一個 soft link 到 /var/qmail/supervise/qmail-smtpd-1225/:
# ln -s /var/qmail/supervise/qmail-smtpd-1225/ /service/qmail-smtpd-1225/到這裡就只剩下修改 qmailctl 檔案,裡面有一行是:
svclist="qmail-send qmail-smtpd"
需要加上新增的 port 才可正確啟動:
svclist="qmail-send qmail-smtpd qmail-smtpd-1225"
修改後重新啟動 qmail 便完成了。
-
Linux 掛載 Freebsd UFS 分割區
Posted on August 3rd, 2010 No comments今日想將一台 Freebsd 的主機硬碟掛載到 Linux 下,原本以為很簡單,但用 mount 指令出現錯誤,即是指定了 filesystem 類型也一樣。
google 了一下,發現原來只可以掛載成 read only,假設 ufs 分割區為 /dev/sdc1,以下是在 Ubuntu 下掛載 UFS 分割區的方法:
sudo mkdir /mnt/ufsdisk
sudo mount -t ufs -r -o ufstype=ufs2 /dev/sdc1 /mnt/ufsdisk
-
破解 XP 使用者密碼
Posted on March 16th, 2010 7 comments如果忘記 XP 的登入密碼,以下方法可以不需安裝任何軟件及不用安裝光碟的情況下解決:
1. 在啟動時按 "F8" 鍵,選擇 "帶命令行的安全模式"。
2. 當出現帶有 Administrator 及其他用戶的選單時,選擇 Administrator 進入命令模式。
3. 如果想恢復密碼的用戶名為 xp_user,而密碼為 new_pass,則輸入以下指令:
net new_user new_pass /add
4. 如果想新增一個帶管理員權限的用戶,例如新用戶名為 new_user,而密碼為 new_pass,則輸入以下指令:
net user new_user new_pass /add
net localgroup administrators new_user /add5. 重新開機便可以使用新密碼登錄。
-
Linux: 將檔案的 Tabs 字元用空白取代
Posted on March 11th, 2010 No comments在 Linux 下有一個工具 "expand",它可以將檔案內所有 tabs 字元轉換為空白字元, 用法如下:
expand input.file > output.file
expand data.txt > output.txt
expand -t 2 data.txt > output.txt上面第三行的參數 -t 是定義用多少個空白字元取代 tabs。而另一個工具 "unexpand" 則與 "expand" 剛剛相反, 是將空間字元轉換為 tabs 字元。
