2011年7月23日 星期六

PHP處理POST File中文檔名的問題....

*如果沒問題,表示你的網頁用的是Big5編碼,剛好跟Windows 中文版作業系統的一樣*
若是Server是用Windows中文版,那麼檔名是使用Big5編碼,網頁若是用了UTF-8編碼,那麼copy()這個函式裡的中文檔名(UTF-8編碼的)就會導致出錯。因此要做轉碼,範例程式如下:
<head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
</head>
<?php
copy($userfile,iconv("UTF-8","big5",$userfile_name));
?>
<form enctype="multipart/form-data" action="" method="post"
 name="uploadf" onsubmit="return validate()">
  Send this file: <input name="userfile" type="file">
  <input type="submit" value="Send File">
</form>

2011年7月9日 星期六

PHP的header可以設定等待幾秒後再轉向哦~~

其實應該說HTML的Header可以設定等待幾秒後再轉向,所以PHP的header當然也可以囉~~
用一個範例就可以代替千言萬語:
header("refresh:2;url=index.php");
//refresh:[秒數]

另外若是轉頁前有顯示訊息到瀏覽器上,那header一定會有警告,所以可以在最前面加上:
ob_start()來清掉緩衝區資料以避免警告~~

2011年7月2日 星期六

PHP產生特定日期的超棒方法

今天發現一個超好用的方法來產生特定日期,先來看一下例子吧:
date("Y-m-d",strtotime("+7 day"));
上面的程式會產生今天七天後的日期!
至於strtotime可以傳的參數有多少呢?以下是從php manual裡面擷取的一些範例:
# on 2/8/2010 
date('m/d/y', strtotime('first day'));  # 02/01/10 
date('m/d/y', strtotime('last day'));  # 02/28/10 
date('m/d/y', strtotime('last day next month')); # 03/31/10 
date('m/d/y', strtotime('last day last month')); # 01/31/10 
date('m/d/y', strtotime('2009-12 last day')); # 12/31/09
- this doesn't work if you reverse the order of the year and month 
date('m/d/y', strtotime('2009-03 last day')); # 03/31/09 
date('m/d/y', strtotime('2009-03')); # 03/01/09 
date('m/d/y', strtotime('last day of march 2009')); # 03/31/09
date('m/d/y', strtotime('last day of march')); # 03/31/10
還有這些用法也測過OK
date("Y-m-d H:i:s",strtotime("+ 1 month - 2 day"));
date("Y-m-d H:i:s",strtotime("+ 1 year 3 month 2 day 4 hour"));
我想還有很多吧,不過這些看來就很夠用了~~