2011年6月8日

[jQuery]Text欄位按enter鍵即執行某函數

範例:
            $('#dialog input[name=lalala]').bind('keypress', function(e){
                 var code = (e.keyCode ? e.keyCode : e.which);
                 if(code == 13) {     //Enter鍵的 keycode
                      do_something();    //某函數
                 }
            });

2011年4月27日

[jQuery]以Ajax取得資料,但在IE上沒有反應

問題:以Ajax方式取得一筆資料的全文資料,並即時更新在網頁上,但IE上沒有反應?
答:Ajax程式在送出資料之前,需先送出「資料格式與編碼」的header檔頭。
以PHP 為例,執行 la.php 可得到全文資料,若使用Ajax呼叫la.php,一定要先送出header再送出全文資料,如下

header('Content-Type: text/plain; charset=utf-8');
echo '全文資料.....';

如此IE上才能正常運作

2010年9月16日

免費轉圖、合併圖:ImageMagick

ImageMagick  官方網站:http://www.imagemagick.org/

免費軟體,可轉換圖檔格式、合併TIF成PDF、重疊圖檔(ex.浮水印)、圖上加字或加圖、裁切旋轉加邊框...、取得圖檔資訊等。
Windows、Linux 上均可安裝,具命令列模式,可與多種程式語言結合使用。

參考網址:
功能    http://ebeach.javaeye.com/blog/251082
命令簡述    http://pjluo.javaeye.com/blog/98056

命令摘要:

轉換圖檔格式
convert 1.jpg 1_new.png

合併檔案 ex.將所有TIF檔合併為一個all.pdf檔案
convert *.tif  all.pdf

若合併後產生反色現象(ex.原為白底黑字,合併後成黑底白字),可加參數 -negate
convert -negate *.tif all.pdf

縮小圖片 ex.將圖片縮成80x60, icon的大小
convert -sample 80x60 big.jpg thumb.jpg

convert -resize 500x500 ori.jpg output.jpg
(會以寬度為主,維持原圖比例縮小)

以百分比縮小圖片
convert  -sample 30%x30% big.jpg thumb.jpg

加浮水印
    格式:composite 浮水印參數 透明度 浮水印位置參數 浮水印位置 要加的浮水印圖檔 被加的圖檔 合成後的圖
composite -watermark 50% -gravity south watermark.gif 00001.jpg all.jpg
      -dissolve        浮水印圖檔維持原色 
      -watermark    浮水印圖檔變黑白
      -gravity可用選項:NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast

旋轉 Rotate
convert -rotate 90 image.tiff output.tiff

裁切 flip
convert -flip image.tiff output.tiff

把圖片變黑白
convert -monochrome foo.png bar.png

在影像加上文字
convert -font helvetica -fill yellow -pointsize 25 -draw 'text 100,250"ShimanDame" ' image.png  imagewithtext.png

加邊框
convert -bordercolor blue -border 5x5 pic001.png border001.png

在CentOS上安裝遠端桌面(XRDP)

參考 http://cmwang.wordpress.com/2009/07/14/xrdp-on-centos-5/
下載site: http://sourceforge.net/projects/xrdp/files/

# 安裝相關套件
$ yum install gcc pam-devel openssl-devel
# 抓取安裝檔,解開並安裝
$ wget http://ncu.dl.sourceforge.net/sourceforge/xrdp/xrdp-0.4.1.tar.gz
$ tar -zxvf xrdp-0.4.1.tar.gz
$ cd xrdp-0.4.1
$ make
$ sudo make install

# 建立連結,調整參數
$ ln /usr/local/xrdp/xrdp_control.sh /etc/init.d/xrdesktop
$ gconftool-2 –type list –list-type=string –set /desktop/gnome/peripherals/keyboard/kbd/layouts [damnlayouts] # map keyboard layout
(# map....需省略)

# 開放外部連線
# /etc/xrdp/sesman.ini 在 [Globals] 中的這一行: ListenAddress=127.0.0.1
# 表示只允許從本機連結 RDP Server,如果要從別的主機進行操作 (配合登入 xrdp 的 "sesman-any" 選項),
# 要改成 "0.0.0.0"
$ sudo nano /etc/xrdp/sesman.ini
=> change 127.0.0.1 to 0.0.0.0    # 改成0.0.0.0

# 增加與啟動服務
$ /sbin/chkconfig --add xrdesktop
$ /sbin/service xrdesktop start

# 在檔案的第二行加入 export LANG=zh_TW.UTF-8, 才能讓遠端桌面預設為中文環境
$ cd /usr/local/xrdp/
$ cp startwm.sh startwm.sh.bak
$ nano /usr/local/xrdp/startwm.sh
export LANG=zh_TW.UTF-8

# 裝完後需開啟防火牆 port 3389
/sbin/iptables -I INPUT -p tcp --dport 3389 -j ACCEPT
# 儲存設定
/etc/rc.d/init.d/iptables save 
# 重新啟動防火牆
/etc/init.d/iptables restart

# 之後即可以Windows「遠端桌面連線」程式連線,登入視窗內選擇 sesman-Xvnc 選項
(以下轉自 http://www.vixual.net/blog/archives/524 )
連線後,首先會看到 xrdp 的登入視窗,你可以選擇:

   1. sesman-Xvnc: 使用 xrdp 內建的 libvnc.so 模組登入本機,本機不需啟動 VNC Server。
   2. console: 登入本機的 VNC Server。
   3. vnc-any: 登入其它已經啟動 VNC Server 的主機。
   4. sesman-any:登入其它有安裝 xrdp 的主機。
   5. rpd-any: 登入其它已經啟動遠端桌面 (RDP Server) 的 Windows 電腦或主機。
   6. sesman-X11rdp: 這個項目我沒有測試成功,從字面上的意思來看,應該是連結本機端由 X Server 提供的 RDP,但目前 Linux 的桌面應該還沒有具備這樣的功能!

2010年4月16日

將MySQL資料轉換為真正的UTF-8

以資料庫 lalala 為例:

1. 將MySQL 資料庫 匯出 lalala_latin1.sql 檔(以phpMyAdmin匯出即可) → 此時檔案編碼為UTF-8,預設建立資料表編碼為 latin1

2. 將 lalala.sql 檔內的「DEFAULT CHARSET=latin1」 皆改為 「DEFAULT CHARSET=utf8」,轉存為「lalala_utf8.sql」(注意是否含BOM)


3. 於MySQL5 內建立空資料庫 「lalala」,把 lalala_latin1.sql 或 lalala_utf8.sql 匯至 MySQL5

3.1「校對」選 「 latin1_swedish_ci 」+ lalala_latin1.sql (假的UTF-8):

使用phpMyAdmin:需使用改過 latin1 設定的版本 (ex. 使用phpMyAdmin2.6.0-rc1並改過設定) 進行匯入,SQL檔案需為「UTF-8未含BOM」,方能正常執行

使用mysql命令列:mysql -u root -p --default-character-set=latin1 lalala < lalala_latin1.sql

3.2「校對」選 「 utf8_general_ci 」+ lalala_utf8.sql:

使用phpMyAdmin:需使用「未改過」latin1 設定的版本 (ex. phpMyAdmin2.11.10) 進行匯入,SQL檔案「需為 UTF-8、有無BOM皆可」,方能正常執行

使用mysql命令列:mysql -u root -p --default-character-set=utf8 lalala < lalala_utf8.sql

(lalala 為欲匯入的資料庫名稱,lalala_utf8.sql 為匯入的SQL檔名)

4. 使用步驟 3.2 匯入真正的UTF-8資料時,conn_db 連線函數內、查詢sql指令前,需加上下列三行
mysql_query('SET NAMES `utf8`');
mysql_query('SET CHARACTER_SET_CLIENT=utf8');
mysql_query('SET CHARACTER_SET_RESULTS=utf8');

$result=mysql_db_query($sys_dbname,$sql,$link);
===> // PHP5.3以上已棄用mysql_db_query,需改使用下列程式碼

$db_selected = mysql_select_db($sys_dbname, $link);
if (!$db_selected)
{ die ('Can\'t use DB : ' . mysql_error()); }
$result=mysql_query($sql);

可參考的網址

[Linux]在掛載失敗時修改磁碟掛載表 fstab

[問題]在 fstab 設定開機自動掛載分區,reboot 後,出現 filesystem 錯誤,無法進入系統。
想修改fstab表,以便移除開機掛載分區的設定,
但在修復 filesystem (repairing filesystem) 模式下,fstab 檔案為”read-only”無法異動。

[解決方法]
[root@linux ~]# mount -n -o remount,rw /
加上-n則不更新/etc/mtab,加上-o提供額外的參數設置。
使用這一操作, / (根目錄)就可以讀寫,就可以更新 fstab 的內容了。



檢視系統目前掛載情況
cat /etc/fstab

/etc/fstab 是開機時的設定檔,不過,實際 filesystem 的掛載是記錄到 /etc/mtab 與 /proc/mounts 這兩個檔案當中的。

掛載: mount /dev/sdb1 /data1

開機掛載: /etc/fstab
* 根目錄 / 是必須掛載的﹐而且一定要先於其它 mount point 被掛載進來。
* 其它 mount point 必須為已建立的目錄﹐可任意指定﹐但一定要遵守必須的系統目錄架構原則
* 所有 mount point 在同一時間之內﹐只能掛載一次。
* 所有 partition 在同一時間之內﹐只能掛載一次。
* 如若進行卸載﹐您必須先將工作目錄移到 mount point(及其子目錄) 之外。

vi /etc/fstab
修改範例
/dev/sdb1 /data1 ext3 defaults 1 2
/dev/sdc1 /data2 ext3 defaults 1 2

先卸載
umount /dev/sdb1
umount /dev/sdc1

再掛載測試 mount -a
檢視掛載 df -hs

手動安裝MySQL

手動安裝MySQL on Windows

1.解壓縮,ex.mysql-noinstall-5.1.xx-win32.zip
2.將預設的my.ini ex.my-medium.ini (或其他) 改為 my.ini

3.my.ini:
3.1 將 [client] 和 [mysqld] 兩區段內的 /tmp/mysql.sock,
均改為 C:\mysql\tmp\mysql.sock 之類的路徑(windows下需使用 \ !!)
3.2 在[mysqld]區段下加上下述兩行,以設定 MySQL 的執行路徑及資料庫存放路徑:
basedir = C:\mysql
datadir = C:\mysql\data
4.安裝服務:
把mysql安裝成服務 C:\mysql\bin\mysqld(-nt) --install
移除服務: C:\mysql\bin\mysqld(-nt) --remove
※ MySQL 5.1.21 以後的版本就沒有 mysqld-nt 這支程式
5.啟動服務: C:\>NET START MYSQL
或用服務管理員來啟動 MySQL