PHP字串長度找子字串與取代字串的常用函數

PHP在字串的操作上,有非常多的相關函數可以使用,我們在這裡只介紹經常會使用到的字串操作函數。像是如何取得字串的長度、在某一個字裏面尋找子字串首次出現的位置、以及字串的取代函數...等等。這些都是在編寫程式的時候,頻繁被程式設計師使用到的基礎函數。 取得字串長度 <?...

2012年6月22日 星期五

移動滑鼠改變Html表格顏色(change table background on MouseOver)


在此我們簡單的介紹如何利用html,css與js文檔,來實現移動滑鼠(mouseOver或mourseOut)改變表格列的顏色之效果(change table row color on mouseOver or mouseOut),接下來分別說明DEMO畫面CSS代碼(showTbl.css)JS檔案代碼 (chgRowsBg.js)index.htm網頁結果輸出頁面。

DEMO畫面

在瀏灠器上執行index.htm頁面,所產出的結果畫面顯示截圖

移動滑鼠(mouseOver or mouseOut)變換表格列顏色的DEMO畫面


CSS代碼 (showTbl.css)

負責控制Html標籤屬性的呈現效果,例如文字顏色、表格框線、宽度、高度之類的屬性值設定

table.show, table.show td{
    font:73% Arial, Helvetica, sans-serif;
}
table.show {
    width:100%;
    border-collapse:collapse;
}
table.show th, table.show td{
    text-align:left;
    padding:.5em;
    border:1px solid #fff;
    text-align: center;
}
table.show th{
    background:#2F79B8 url(s3-bg.jpg) repeat-x;
    color:#fff;text-align: center;
}
.empty{
    font-size:100%;
} 
table.show tr.even td{
    background:#f9fbfd;
}
table.show tr.odd td{
    background:#e4e4e4;
}
tr.overCss td{
    background:#ffffa2;
}

JS檔案代碼 (chgRowsBg.js)

在瀏灠器載入index.htm頁面之後,負責動態操控改變Html元素的屬性值,讓該元素在輸出端達到變換效果的目的

this.alterTableRowsColor = function() {
    var preCss;
   
 this.start = function(){
     var tables = document.getElementsByTagName('table');
      for(var i=0; i < tables.length; i++){ 
          var tid = tables[i].getAttribute('id');
          if(tid.indexOf("form") != -1)
            showRow(tables[i]);
      }
  };
   
 this.showRow = function(table){
        var trs = table.getElementsByTagName('tbody')[0].getElementsByTagName('tr');
    for (var i = 0; i < trs.length; i++) {
      trs[i].onmouseover = function(){ over(this); };
      trs[i].onmouseout = function(){ out(this,preCss); };
    }
  };

  this.over = function(obj) {
    preCss = obj.className;
    obj.className = 'overCss';
  };

  this.out = function(obj,preCss){
     //alert("preCss=="+preCss);
    obj.className = preCss;
  };
    
    start();
      
}; 

//window.onload = alterTableRowsColor;               
                         


index.htm頁面程式代碼

一個單純的使用Html表格的標籤撘配CSS與JavaScript文檔所組合而成的Html程式代碼

<html>
<head>
  <link rel="stylesheet" type="text/css" href="showTbl.css" />
  <script type="text/javascript" src="chgRowsBg.js"></script>
</head>
<body onload="alterTableRowsColor();">

<form name="form1" id="form1">
 <table border=0 width="100%">
    <tr>
     <td>
        <table id="form1:table1" border="0" cellpadding="0" cellspacing="0" width="100%" class="show">
            <THead>
                <tr>           
                    <th>Title1</th>
                    <th>Title2</th>
                    <th>Title3</th>
                    <th>Title4</th>
                </tr>      
            </THead>
          <TBody>
            <tr class="even">
              <td>aaa1</td>
              <td>aaa2</td>
              <td>aaa3</td>
              <td>aaa4</td>
            </tr>  
            <tr class="odd">
              <td>bbb1</td>
              <td>bbb2</td>
              <td>bbb3</td>
              <td>bbb4</td>
            </tr>
            <tr class="even">
              <td>ccc1</td>
              <td>ccc2</td> 
              <td>ccc3</td>
              <td>ccc4</td>    
            </tr>
            <tr class="odd">
              <td>ddd1</td>
              <td>ddd2</td>
              <td>ddd3</td>
              <td>ddd4</td>
            </tr>
            <tr class="even">
              <td>eee1</td>
              <td>eee2</td> 
              <td>eee3</td>
              <td>eee4</td>    
            </tr>
          </TBody>
        </table>
   </td>
  </tr>
 </table>
 </form>

</body>
</html>

2012年6月21日 星期四

Java IO讀取(read)、寫入(write)與拷貝(copy)檔案


/**
   * Java IO讀取檔案 (
java io read file)
   @param fileName
   @return
   @throws IOException
   */
  public static List<String> readFile(String fileNamethrows IOException {    
    List<String> rst = new ArrayList<String>();
    BufferedReader br = null;
    try{
      br = new BufferedReader(new FileReader(fileName));
      String in = null;
      while((in = br.readLine()) != null){
        rst.add(in);
      }
    }catch(IOException ioe){
      throw ioe;
    }finally{
      br.close();      
    }    
    return rst;
  }  
  
  /**
    Java IO寫入檔案  (java io write file)
   @param data
   @param fileName
   @throws IOException
   */
  public static void writeFile(List<String> data, String fileNamethrows IOException {
    BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
    try{
      for(String d:data){
        bw.write(d);
        bw.newLine();        
      }
      bw.flush();
    }catch(IOException ioe){
      throw ioe;
    }finally{
      bw.close();      
    }    
  }
  
  /**
    Java IO拷貝檔案 
(java io copy file)
   @param source
   @param dest
   @throws IOException
   */
  public static void copyFile(File source, File destthrows IOException {
    InputStream fis = null;
    OutputStream fos = null;    
    try{
      fos = new FileOutputStream(dest);
      fis = new FileInputStream(source);
      byte[] b = new byte[1024];
      int off = 0;
      int len = 0;
      while((len = fis.read(b)) != -1){
        fos.write(b,off,len);        
      }
      fos.flush();
    }catch(IOException ioe){
      throw ioe;
    }finally{
      fos.close();
      fis.close();
    }
  }  

2012年6月19日 星期二

運用Java Excel API將excel檔轉為csv檔範例

如何使用Java Excel API來實現將excel檔案自動轉換為csv檔案格式,若沒有JExcel Library可以到http://sourceforge.net/projects/jexcelapi/files/網站上下載.

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Locale;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.WorkbookSettings;

public class CSVConverter {

  /**
   @param args
   */
  public static void main(String[] args) {
    try {
      OutputStream os = new FileOutputStream(new File("C:\\input.csv"));      
      OutputStreamWriter osw = new OutputStreamWriter(os, "UTF8");
      BufferedWriter bw = new BufferedWriter(osw);

      // 載入Excel文件      
      WorkbookSettings ws = new WorkbookSettings();
      ws.setLocale(new Locale("en""EN"));
      Workbook wk = Workbook.getWorkbook(new File("C:\\input.xls"), ws);

      // 從工作簿(workbook)取得每頁(sheets) 
      for (int sheet = 0; sheet < wk.getNumberOfSheets(); sheet++) {
        Sheet s = wk.getSheet(sheet);

        bw.write(s.getName());
        bw.newLine();

        Cell[] row = null;

        // 從每頁(sheet)取得每個區塊(Cell)
        for (int i = 0; i < s.getRows(); i++) {
          row = s.getRow(i);

          if (row.length > 0) {
            bw.write(row[0].getContents());
            for (int j = 1; j < row.length; j++) {
              bw.write(',');
              bw.write(row[j].getContents());
            }
          }
          bw.newLine();
        }
      }
      bw.flush();
      bw.close();
    
    catch (Exception e) {
      System.err.println(e.toString());
      e.printStackTrace();      
    }
  }

}

2012年6月2日 星期六

運用Eclipse3.7.2撰寫簡單的視窗程式

        如果還沒有使用過Eclipse IDE的使用者們,必需要先上Eclipsen官網http://www.eclipse.org/downloads/下載Eclipse Classic 3.7.2版本的IDE (Windows 32 Bit)。

       再進入[Taiwan] Computer Center, Shu-Te University (http)連結,下載IDE的來源壓縮檔eclipse-SDK-3.7.2-win32.zip。
Eclipse Classic 3.7.2版本的IDE下載連結圖

        使用WinRAR應用軟體解開eclipse-SDK-3.7.2-win32.zip壓縮檔 
(WinRAR下載來源:http://www.softking.com.tw/soft/clickcount.asp?fid3=12899)

        請到C:\eclipse-SDK-3.7.2-win32\eclipse (剛才eclipse解壓縮輸出的目錄) 路徑,根據下圖移動滑鼠至elipse.exe小圖示,雙擊滑鼠左鍵兩下。

      會出現eclipse INDIGO版本的圖示視窗,並且按下OK鈕使用預設Workspace的目錄路徑,用以存放Java相關的專案。

當進入eclipse IDE的主畫面時, 找到File -> Java Project創建一個全新的專案。


輸入專案名稱SwingTest後,按Next鈕到下一步。

      把滑鼠移至SwingTest -> src小圖示底下,單擊滑鼠右鍵找到New -> Class
來建立新的Java類別。

   請在Package欄位輸入test,再到Name欄位輸入類別名稱TestSwing,最後記要把public static void main(String[] args)項目打勾,讓TestSwing這支應用程式擁有程式進入點,可以直接在JVM底下被執行。


第一支Java視窗程式的類別代碼如下:

package test;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class TestSwing extends JFrame {
TestSwing() {
JLabel jlbHelloWorld = new JLabel("Hello World");
add(jlbHelloWorld);
this.setSize(250, 150);
setVisible(true);
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new TestSwing();
}
}

      最後在程式撰寫完畢已後,移動滑動到圖示點擊執行TestSwing程式,稍後會彈出Hello World的圖形介面視窗。
第一支簡單的視窗程式Hello World




Java JDK7環境配置


1.  首先到Oracle官方網站 http://www.oracle.com/index.html下載JDK7來源,實際上的操作畫面與
     步驟如下所示:

步驟一:將滑鼠移動到Oracle Technology Network圖示,選取JAVA連結


進入Oracle Technology Network圖示,選取JAVA連結

    步驟二:選擇Java SE (includes JavaFX) | Early Access超連結
    選擇Java SE (includes JavaFX) | Early Access超連結


    步驟三:選擇Java SE Downloads -> Java Platform (JDK) 7u4圖示
    Java Platform (JDK) 7u4下載連結圖

    步驟四:選取Accept License Agreement項目,稍後畫面會出現Thank you for accepting the Oracle Binary Code License Agreement for Java SE; you may now download this software.的英文訊息,也就表示我們接受了JDK7的授權同意書,因此Oracle同意我們下載JDK7的軟體來使用,然而在教學中我們以windows x86(32bit)的作業系統為示例,因此請將滑鼠移動到jdk-7u4-windows-i586.exe超連結下載    
    下載jdk-7u4-windows-i586.exe圖示

    步驟五:請在已載下完畢jdk-7u4-windows-i586.exe的檔案小圖示上點擊兩下,接著畫面會出現歡迎安裝SE Development Kit 7 Update 4的視窗,按Next按鈕。

    步驟六:下面的畫面中(預設不改變安裝路經),按Next按鈕到下一個動作。

    步驟七:選擇安裝jre7(Java SE Runtime Environment 7)的檔案路徑,按Next到下一動作。

    步驟八:當畫面出現Java SE Development Kit 7 Update 4 Successfully Installed訊息時,恭喜您已經完成的JDK7的安裝作業。




    2.  再來,進行Java的環境變數設定作業:
步驟一:請在我的電腦 圖示按滑鼠右鍵,選擇內容項目

    步驟二:進階系統設定 -> 環境變數

    步驟三:請在系統變數的區域按下新增按鈕,加入JAVA_HOME的變數,並且記得找到原有Path數變,增加%JAVA_HOME%\bin的代碼。


    3.  最後,利用Notepad寫一支簡單的HelloWorld的Java程式來測試一下JVM的環境配置是否正常:

    步驟一:打開Notepad建立你的第一支HelloWorld的程式,然後把它儲存到C槽


    步驟二:於開始列 -> 搜尋程式及檔案,輸入cmd的關鍵字按下Enter鍵,系統彈出命令列視窗(Command Line Window)

    步驟三:於命令列 輸入cd \按Enter鍵,將游標移至c槽根目錄 

    步驟四:輸入javac HelloWorld.java指令,編譯java程式

    步驟五:輸入java HelloWorld指令,執行java程式 


    再經過了下載JDK7來源、撰寫第一支HelloWorld的程式、到使用命令列編譯與執行成功HelloWorld程式的一連串過程,我們終於邁出了Java程式開發的一小歩!!