smarty-1

smarty
是一個可以將php與html分開的libs下載處:http://www.smarty.net/download.php
首頁:http://www.smarty.net/

安裝方法:
解壓縮到網頁的資料夾底下
資料夾名稱位子隨便只要你記住

使用方法:

在要使用smarty的php網頁code裡
加入
require_once('C:/www/lib/Smarty.class.php');//smarty一定要include的檔案

$smarty = new Smarty(); //新增一個新物件

//這裡要設定,也要先開資料夾給它們
$smarty->template_dir = 'C:/www/templates/'; //這裡是指向你樣板放的地方,也就是HTML的地方
$smarty->compile_dir = 'C:/www/templates_c/'; //這裡是指向暫存檔,一定要有的
$smarty->config_dir = 'C:/www/configs/'; //這個我不知道耶,沒用過
$smarty->cache_dir = 'C:/www/cache/'; //這個我也不知道耶,也沒用過

$smarty->left_delimiter = '<{'; //這裡一定要設,因為預設為{},很容易衝突到
$smarty-right_delimiter= '}>'; //這是用在HTML裡,使smarty知道它是變數

//$smarty->debugging = true; //他會跳出視窗,顯現出詳細內容,變數,使用的HTML等等
//可以先註解起來,要用的時候再取消會比較方便

接下來要傳值給smarty的變數裡使用的語法
$smarty->assign('title', $title);
'title' 是在HTML裡的設的變數名稱
$title 是要傳給它的值

接下來就是合成HTML的語法
$smarty->display('smarty.htm');
smarty.htm 為你放在templates底下你想要合成的檔案名稱

還要有HTML的檔案
名稱副檔名都隨便
只要是html語法就可以
在HTML裡想要被smarty讀到都用<{}>來括起來 //前提是有做上面的設定
這樣smarty才能讓php和html合成起來放在templates_c裡面

<{$var}> //為變數,只要有assign給smarty,就會合成上去


範例:
smarty.htm
<html>
  <head>
    <title><{$title}></title>
  </head>
  <body>
    <{$body}>
  </body>
</html>
smarty.php
<?php
  require_once('C:/www/lib/Smarty.class.php');
  $smarty->template_dir = 'C:/www/templates/';
  $smarty->compile_dir = 'C:/www/templates_c/';
  $smarty->config_dir = 'C:/www/configs/';
  $smarty->cache_dir = 'C:/www/cache/';
  $smarty->left_delimiter = '<{';
  $smarty-right_delimiter= '}>';
  //$smarty->debugging = true;
  $title = "這是smarty的測試網頁";
  $smarty->assign('title', $title);
  $smarty->assign('body', "這是body顯示的變數");
  $smarty->display('smarty.htm');
?>

unlink()

unlink()
將伺服器的某個檔案刪除
使用方法
unlink(伺服器路徑);

del.php
<?php
  $DestDIR = "c:/www";
  $ServerFilename = "test.txt";
  $fh = fopen($DestDIR . "/" . $ServerFilename, 'a'); //注一
  fwrite($fh, 'Hello world!'); //注一
  unlink($DestDIR . "/" . $ServerFilename);
?>

*注一 : 為C語言的語法,在PHP裡可以用。

copy()

將伺服器的檔案複製到目的地
通常使用於檔案上傳
使用方法
copy(來源檔案,目標檔案);

範例:
upload.htm
<html>
  <head>
    <title>上傳範例</title>
  </head>
  <body>
    <form enctype="multipart/form-data" action="upload.php" method="post">
    檔案路徑:<input type="file" name="file_path"><br>
    <input type="submit" name="Submit" value="上傳">
  </body>
</html>


upload.php
<?php
  $DestDIR = "C:/www";
  $ServerFilename = "data";
  if (!empty($_FILES['file_path']['name'])) {
    if ($_FILES['file_path']['size'] > 1024*1024*2) {
      if ($_FILES['file_path']['type'] == "image/jpeg") {
        check = copy($_FILES['file_path']['tmp_name'], $DestDIR . "/" . $ServerFilename . ".jpg");
        if(check)
          echo "以上傳完成";
        else
          echo "上傳失敗";
      }
      else
        echo "檔案類型不對";
    }
    else
      echo "上傳檔案太大";
  }
  else
  {
    echo "沒有檔案";
    echo "錯誤資訊:" . $_FILES['file_path']['error'];
  }
?>

在Blogger裡面有程式區

CODE {
display: block; /* fixes a strange ie margin bug */
font-family: Courier New;
font-size: 14px;
overflow:auto;
background: #f0f0f0 url(http://klcintw.images.googlepages.com/Code_BG.gif) left top repeat-y;
border: 1px solid #ccc;
padding: 10px 10px 10px 21px;
//max-height:200px;
line-height: 1.2em;
}

$_FILES

在form裡需加入
enctype="multipart/form-data"
才會上傳
上傳後使用$_FILES才可以讀取
使用方法
$_FILES[名稱][參數名稱]

$_FILES['file_path']['name'] >> 上傳檔案的名稱
$_FILES['file_path']['tmp_name'] >> 上傳後在伺服器的路徑和名稱
$_FILES['file_path']['size'] >> 上傳檔案的大小
$_FILES['file_path']['type'] >> 上傳檔案的類型
$_FILES['file_path']['error'] >> 錯誤訊息

範例:
upload.htm
<html>
  <head>
    <title>上傳範例</title>
  </head>
  <body>
    <form enctype="multipart/form-data" action="upload.php" method="post">
    檔案路徑:<input type="file" name="file_path"><br>
    <input type="submit" name="Submit" value="上傳">
  </body>
</html>

upload.php
<?php
  if(!empty($_FILES['file_path']['name'])) { //有上傳檔案
    if ($_FILES['file_path']['size'] > 1024*1024*2) { //最大2MB 
      echo "以上傳完成";
      echo "在伺服器裡的位置和名子:" . $_FILES['file_path']['tmp_name'];
      echo "檔案名子:" . $_FILES['file_path']['name'];
      echo "檔案大小:" . $_FILES['file_path']['size'] . "btyes";
      echo "檔案類型:" . $_FILES['file_path']['type'];
    }
    else
      echo "上傳檔案太大";
  } else {
    echo "沒有檔案";
    echo "錯誤資訊:" . $_FILES['file_path']['error'];
  }
?>