2010年12月14日

[PHP] 特殊XML解讀範例

今天遇到一個特別XML

<?xml version="1.0" encoding="utf-8" ?>
<root>
  <row sid="1234" n="AAA" dt="20101214" />
</root>

解讀方式
$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->loadXML("以上那段XML字串");


$x = $doc->documentElement;
foreach($x->childNodes AS $item){
  //print $item->nodeName."=".$item->nodeValue."<BR>";
  foreach($item->attributes AS $row){
    print $row->name ."=". $row->value."<BR>"
  }
}

JavaScript方式(待.......)

[PHP] XML DOM物件

PHP有DOM物件可以專門用來處理XML文件
但佔用的記憶體量較大,不太適合處理太大的XML文件

windows版本DOM模組已預設有效
linux則還要另外做一些準備設定

2010年11月30日

facebook plurk 推文(Share) 語法 心得

網路上已有很多人教怎樣下推文link
但大部份都是推本文(頁)的語法
搜尋很久後拼湊出以下的方法和解說
自製範例

2010年11月17日

Google Desktop Gadget 開發筆記

################################################################
################################################################
2010/11/17
主頁一定是main.xml,在main.js讀取其他檔的funcation,可先用以下方法丟入一變數detailView

2010年11月15日

[JavaScript] setInterval 和 setTimeout 的區別

JavaScript中有兩函式 setInterval 和 setTimeout 的作用很像,他們有一些區別如下

1. setInterval裡設定的程式只會被重複觸發,直到執行了clearInterval為止
2. setTimeout 裡設定的程式只會被觸發一次
3. setInterval 和 setTimeout都是利用時間去觸發某個動作的執行;並且下一行程式不會因為時間設定的長短而被延遲或影響
也就表示,當程式走到setInterval 或 setTimeout那行執行時,觸發就交給window物件去處理,其他程式會繼續執行不會被影響!
4. setInterval 和 setTimeout 在執行時都會產生timerID以便在某些狀況下需使用clearInterval 和 clearTimeout去取消那些觸發動作

clearInterval ( timeoutId );
setInterval & clearInterval用法
    wooYayIntervalId = setInterval ( "wooYay()", 1000 );
    clearInterval ( wooYayIntervalId );

setTimeout ( expression, timeout );
clearTimeout ( timeoutId );
setTimeout & clearTimeout 用法
    第一種:
      <input type="button" name="clickMe" value="Click me and wait!" onclick="setTimeout('alert(\'Surprise!\')', 5000)"/>
    第二種:
      alertTimerId = setTimeout ( "showAlert()", 3000 );
      clearTimeout ( alertTimerId )








setInterval ( expression, interval );

2010年11月12日

[JavaScript] parseInt字串轉換成整數


眾所周知,parseInt() 是用來把字串轉換成整數的函式,一般來說,只要是數字開頭的字串,都能夠轉換成功,例如 parseInt('123a') 的結果為 123,parseInt('12 34') 的結果為12。
關於 parseInt() 有個著名的情況,有些人稱為臭蟲,讓各位自己來評斷。
parseInt('01') 得出的結果是1,事實上,一直到 07 為止,都能得到預期結果,問題來了,parseInt('08') 和 parseInt('09') 這兩者運算的結果,都得到0,這是為什麼呢?
主要原因在於 parseInt() 這個函式,本身可以傳遞兩個參數,語法是:


parseInt(string, radix)


第一個參數 string 當然是要轉換為數字的字串,第二個參數 radix 則是要用二進位、還是八進位或十六進位,又或是最熟悉的十進位來解譯這個字串呢?
也就是說,如果 parseInt('FF',16),代表以 16 進位方式來解析FF這個字串,當然得到的結果就是 255 了,同理,parseInt('FF',10) 以 10 進位來解析FF這個字串,根本就不是數字,所以得到的結果會是 NaN。
但大多數人不會特別指定第二個參數,這時 JavaScript 就自動判斷第一個傳遞的參數是否為某種數字型式。
在 JavaScript 眼中,以 0x 開頭的字串,都視為十六進位字串,如果單單是0開頭,第二個字母不是 x,則視為八進位或二進位字串,十六進位使用的字母計有 0-9,A-F,而八進位使用的字母則為 0-7,所以,當發生parseInt('08') 又未指定以何種數值型態解析時,JavaScript 以 0 為起頭,接下來的字母又不是 x,那一定是八進位了,但是,八進位裡,怎麼可能有 8 和 9 這兩個字母呢?所以,一定是不合法的字串,於是就傳回 0。
同理,parseInt('010') 回傳的值,也不是 10,而是 8,因為 parseInt() 認為 0 開頭,接下來的字母不是 x,而是 1,就以二進位來解析 010 這個字串,所以一切問題都在於以 0 開頭,所造成的誤會。
最好的解決辦法,就是別偷懶,把第二個參數也加進去,例如 parseInt('08',10)、parseInt('010',10),那就萬無一失了!


資料來源(2008/6/3):http://audi.tw/Blog/JavaScript/javascript.parseInt.asp

2010年11月11日

[HTML] 很少用到的標籤

<optgroup>
<optgroup>標籤是定義select標籤中的選項分組的一種很好的方法。比如,你需要按時間來分組電影列表,那麼就可以這樣做

<label for="showtimes">上映時間</label>
<select id="showtimes" name="showtimes">
 <optgroup label="下午一點"></optgroup> 
<option value="titanic">泰坦尼克號</option> 
<option value="nd">貧民窟的百萬富翁</option> 
<option value="wab">怪物史瑞克</option> 
<optgroup label="下午兩點"></optgroup> 
<option value="bkrw">獅子王</option> 
<option value="stf">全民超人</option> </select>


<acronym>
<acronym> 是一種定義或更多解釋一組文字的方法。當你用鼠標放到使用<acronym>標籤的文字時,一個顯示title標籤的內容的框框將會出現在下邊。比如:
微博客網站<acronym title="Founded in 2006"> Twitter</acronym> 最近常常宕機


<ins> 和<del>
如果你想使用標籤來顯示編輯版本,<ins> 和<del> 正好適合。顧名思義,<ins> 用下劃線高亮顯示添加進來的內容,而<del> 用刪除線顯示被移除的信息。
John <del>likes</del> <ins>LOVES</ins> his new iPod.


<fieldset>
Fieldset是一個小巧的標籤,你可以用來為你的表單元素添加邏輯分組。<fieldset>標籤就會在其內部的元素周圍畫一個框。另外一點就是可以在fieldset裡面添加<label> 標籤來定義分組的標題。
<form><fieldset>
<legend>你比5年紀學生聰明嗎?</legend>
當然<input name="yes" type="radio" value="yes" />
不知道<input name="no" type="radio" value="no" />
</fieldset>
</form>



資料來源:http://www.wowbox.com.tw/blog/article.asp?id=3278

2010年10月22日

[PHP] stripslashes 反斜線去除


語法:string stripslashes(string str)
說明:傳回去除反斜線後的字串,連續的兩個反斜線會成為一個反斜線

2010年10月15日

[DB] SQL Server錯誤:15138 刪除對於用戶失敗

剛復原回來的DB
上面還擁有著舊的DB 登入user
要刪除時卻一直不給清除,表示「資料庫主體在資料庫中擁有 結構描述 且不法卸除」

SQL Server Managerment Studio=>資料庫 =>DBName=>安全性=>結構描述
先把此對應的User刪除後就可重建了!

2010年10月8日

2010年10月7日

[PHP][smarty]date_format日期格式

往往使用php的日期格式化還要轉時間戳記

  date("格式",[戳記]);
  date("Y-m-d h:i:s", strtotime("2010/10/3 21:59:23"));

若是版本眾多,每版的時間樣式不同會改到很煩
利用smarty自家的時間格式化,就不用再動程式了

[PHP] iconv轉碼發生被截字的問題

轉碼一直是我在寫code時的煩惱
今天就發生這狀況
db使用BIG5,因此撈出的TEXT後使用ICONV做轉碼UTF-8

2010年10月4日

想找個地方寫技術

每次遇到問題
好不容易在google找到解決辦法後~下次再遇到
只是在google再找一次~

很累~最好就是把它紀錄下來~免得又忘了~ㄅ