星期三, 5月 30, 2012

linux監控磁碟空間

  • df 監控可用磁碟空間與inode數舉
    • 語法
      df [options] [dir]
    • 說明
      顯示dir所的檔案系統磁碟空間用量。df會依據/etc/fastab 組態檔找出dir掛載點,然後顯示檔案系統資訊。若沒指定dir,則df會顯示所有已掛載的檔案系統資訊
    • 常用選項
      -h 以較容易辨識的單位(M、G)顯示數值
      -i 顯示inode用量資訊。若不指定,則顯示磁碟空間用量
      • 範例一
        檢視所有檔案系統的磁碟空間用量:
        # df -h
      • 範例二
        檢視所有檔案系統的inode用量:
        # df -i
      • 範例三
        查看目前工作目錄位於哪個分割區:
        # df .

  • du 監控磁碟用量
    • 語法
      du [options] [directories]
    • 說明
      顯示directories的磁碟使用資訊。如果省略directories,則顯示現行工作目錄的用量。
    • 常用選項
      -a 顯示所有檔案,不只是目錄。
      -c 累計所顯示的項目總用量
      -h 以較容易辨識的單位(M、G)顯示數值
      -s 僅印出指定目錄本身摘要資訊,而不是遞迴顯示每個子目錄
      -S 子目錄的用量不列入計算
      • 範例一
        檢祖/etc/rc.d 的disk用量
        # du /etc/rc.d
      • 範例二
        顯示 /etc 的disk用量:
        # du -sh /etc
      • 範例三
        顯示 /etc 的disk用量,但不包括其下的子目錄:
        # du -Ssh /etc
      • 範例四
        誰耗用最多空間(/home/*):
        # du -csh /home/*
        排序
        # du -cs /home/* | sort -nr  #用h會當成文字 ex, 1k,11k,2k

iframe autoresize

先前一直從iframe內部出發,向parent呼叫調整高度
後來發現... parent自己取iframe的內容高去調整就可以了


References
Iframe Auto Resize Height

將scroller移到最上面

兩個方法
//1.html本身的方法
top  //嗯 就這樣

//2.就把scrollTop設定為0就可以了
 $('html, body').scrollTop(0);

厲害點...加點滑動的感覺


test
top

References

星期六, 5月 26, 2012

php 時間轉換函式

  1. 轉換unix timestamp為可讀日期時間
    date("Y-m-d H:i:s", $timestamp);
    線上轉換
  2. 可讀日期轉換unix timestamp
    strtotime("2009-11-03 11:24:00PM");

星期三, 5月 23, 2012

php array轉xml, json

轉json就沒什麼好說的了,想說轉xml應該也是很簡單的東西,不過還真遇到一些問題
  1. array to xml
    原本在google了一段code後,後來發現有中文xml會掛掉因為有不合法字元,
    後來找到以下的code有編碼過,才知道原是編碼的問題
    function toXml($data = array(), $structure = NULL, $basenode = 'xml'){
       // turn off compatibility mode as simple xml throws a wobbly if you don't.
       if (ini_get('zend.ze1_compatibility_mode') == 1)
       {
          ini_set('zend.ze1_compatibility_mode', 0);
       }
    
       if ($structure == NULL)
       {
       $structure = simplexml_load_string("<?xml version='1.0' encoding='utf-8'?><$basenode />");
       }
    
       // loop through the data passed in.
       $data = $this->_force_loopable($data);
       foreach ($data as $key => $value)
       {
          // no numeric keys in our xml please!
          if (is_numeric($key))
          {
             // make string key...
             //$key = "item_". (string) $key;
             $key = "item";
          }
    
          // replace anything not alpha numeric
          $key = preg_replace('/[^a-z_]/i', '', $key);
    
          // if there is another array found recrusively call this function
          if (is_array($value) OR is_object($value))
          {
             $node = $structure->addChild($key);
             // recrusive call.
             $this->_format_xml($value, $node, $basenode);
          }
          else
          {
            // Actual boolean values need to be converted to numbers
            is_bool($value) AND $value = (int) $value;
    
            // add single node.
            $value = htmlspecialchars(html_entity_decode($value, ENT_QUOTES, 'UTF-8'), ENT_QUOTES, "UTF-8");
    
             $UsedKeys[] = $key;
    
             $structure->addChild($key, $value);
          }
       }
    
       // pass back as string. or simple xml object if you want!
       return $structure->asXML();
    }
    
    function _force_loopable($data){
       // Force it to be something useful
       if ( ! is_array($data) AND ! is_object($data))
       {
          $data = (array) $data;
       }
    
    return $data;
    }
    
  2. 下header
    browser才會當成xml,而不是html
    $array = array(...);
    header('Content-type: application/xml;charset=utf-8');
    exit(toXml($array)) ;
    

結合一下兩者,利用同一個function回覆
//給header用
$_supported_formats = array(
                'xml' => 'application/xml',
                'rawxml' => 'application/xml',
                'json' => 'application/json',
                'jsonp' => 'application/javascript',
                'serialize' => 'application/vnd.php.serialized',
                'php' => 'text/plain',
                'html' => 'text/html',
                'csv' => 'application/csv'
        );


function response($data, $format = 'json'){
    header('Content-type: '.$this->_supported_formats[$format]);
    switch (strtolower($format)){
        case 'xml':                                
                exit($this->toXml($data));
        case 'json':
        default:
            exit(json_encode($data));
    }
}