此類別可以保存Activity(活動)上一次關閉(Stop)時的狀態。
可以透過載「onStop」方法(與「onCreate」方法的作用類似)來保存關閉前的狀態。
當程式啟動(Activity重新初始化)時,會再次呼叫「onCreate」方法,我們就能從「SavedInstanceState」中得到次一次凍結的狀態。
我們也可以透過「Bundle」來將這個Activity的內容傳到下一個Activity中
2012年2月22日 星期三
2012年2月21日 星期二
JavaScript 讀取 Cookie 值
讀取cookie的value
引用網址
Function GetCookie(name) { var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)")); if(arr != null) return unescape(arr[2]); return null; } ------------ &&判斷值是否為null if(value!=null) alert('gg');
引用網址
標籤:
javascript
HTML 跳轉頁面 轉頁
進入index.html,不需要點選任何連結就可以自動跳到t_login.php
語法如下
content是秒數(這邊是設定不需要等待就直接跳轉)
url後面是連結網址
index.html的內容:
位置放在 html的head
語法如下
content是秒數(這邊是設定不需要等待就直接跳轉)
url後面是連結網址
index.html的內容:
位置放在 html的head
標籤:
HTML,
javascript
2012年2月20日 星期一
android 簡單介紹
Android作業系統最初由Andy Rubin創辦,之後被Google併購,目前由Google和硬體製造商及電信運營商組成開放手持設備聯盟開發。
Android以Linux為核心,系統程式包含了 C 語言的標準函式庫,但應用程式主要以Java語言(類似J2ME)在Dalvik VM虛擬機器執行,跨平台(Windows、Mac、Linux)的開發環境齊備,應用程式開發環境以Eclipse為主,加上 Android Development Tools (ADT) Plugin,模擬器(Emulator)、開發工具、SDK等皆可免費下載取得。
google為主要的發佈版本給予一個糕點名稱。
版本:
4.1.x Jelly Bean 雷根糖 | 16 2012年6月28日 |
4.0 冰淇淋三明治 | 14-15 2011年10月19日 |
3.x.x 蜂巢 | 11-13 2011年2月2日, 3.0 |
2.3.x 薑餅 | 9-10 |
2.2 凍酸奶 | 8 |
2.1 閃電泡芙 | 7 2009年10月26日,2.0 |
1.6 甜甜圈 | 4 |
1.5 紙杯蛋糕 | 3 |
2012年2月19日 星期日
phpExcel
include_once("XXX/phpexcel/PHPExcel/IOFactory.php"); $colum=2; $num=count($sss); $objExcel=new PHPExcel(); $objExcel->setActiveSheetIndex(0); $sheet=$objExcel->getActiveSheet(); for($i=0;$i<$num;$i++){ //if($data[$i]['enable']==0) continue; #因為sql裡面排除不了enable為0的,所以做此處理 $sheet->setCellValueByColumnAndRow(0,$colum,$sss[$i]['Name']); $sheet->setCellValueByColumnAndRow(1,$colum,$sss[$i]['ID']); $sheet->setCellValueByColumnAndRow(2,$colum,$sss[$i]['Time']); $sheet->setCellValueByColumnAndRow(3,$colum,$sss[$i]['eTime']); $colum++; } $path=t_PATH."download/"; $path="../download/"; //2003 $objExcel=PHPExcel_IOFactory::createWriter($objExcel,'Excel5'); //針對2003的版本 $filePath=$path."commodity.xls"; //注意副檔名 // Export to Excel2007 (.xlsx) 匯出成2007 $objExcel=PHPExcel_IOFactory::createWriter($objExcel,'Excel2007'); //針對2003的版本 $filePath=$path."commodity.xlsx"; //注意副檔名 $objExcel->save($filePath); dl_file($filePath); //此功能應該要和save分開處理,避免產生錯誤另一個主題:讓phpexcel只讀取column的文字,不會讀取其他的 字體設定,顏色設定。
錯誤碼:Cannot use object of type PHPExcel_RichText
原因:去抓 陣列裡的 PHPExcel_RichText ,要抓出我的的文字而不是字體之類的,就產生了錯誤。
$reader->setReadDataOnly(true);
在20120313時需要寫入大量的資料,遇到疑似記憶體不足,但沒顯示任何錯誤,抓bug抓了老半天,始終抓不到。
解法:放在程式最前面
ini_set( "memory_limit", "56M");
設定欄寬範例 : $sheet->getColumnDimension("A")->setWidth(50); //設定欄冠
2012年2月15日 星期三
javascript 抓取name的內容
情況:
有些許情況下使用document . getElementByname 會抓不到資料。
我在猜有可能是太多form之下,需要指定form才能正確使用。
副程式:
focus( ) method
把注目移到想要的地方。
有些許情況下使用document . getElementByname 會抓不到資料。
我在猜有可能是太多form之下,需要指定form才能正確使用。
副程式:
focus( ) method
把注目移到想要的地方。
checkbox
function doOutput() { var obj=document.getElementsByName("checkbox"); var len = obj.length; var checked = false; for (i = 0; i < len; i++) { if (obj[i].checked == true) { checked = true; break; } } alert(checked); };form 上傳檔案 加enctype
標籤:
javascript
上傳圖片及PHP處理
處理端(接收來自form,並加以處理):
情境:多張圖片上傳
print_r($_FILES)
上傳多個標檔案--例子:
getimagesize
imagecreatefromgif
imagepng
情境:多張圖片上傳
//解晰圖片 $image_type=getimagesize($_FILES['x'.$im]['tmp_name']); switch ($image_type[2]){ case "1"://gif $src = imagecreatefromgif($_FILES['x'.$im]['tmp_name']); break; case "2": //jpg $src = imagecreatefromjpeg($_FILES['x'.$im]['tmp_name']); break; case "3": $src=imagecreatefrompng($_FILES['x'.$im]['tmp_name']); break; default: echo ' ERROR!!請通知系統人員。 '; exit; }壓縮圖檔1:
$file_name = $_FILES['image'.$im]['name']; $src_w = imagesx($src); $src_h = imagesy($src); if($src_w > $src_h){ $thumb_w = 150; $thumb_h = intval($src_h / $src_w * 150); }else{ $thumb_h = 110; $thumb_w = intval($src_w / $src_h * 110); }壓縮圖檔2:
// 建立縮圖 $thumb = imagecreatetruecolor($thumb_w, $thumb_h); // 開始縮圖 imagecopyresampled($thumb, $src, 0, 0, 0, 0, $thumb_w, $thumb_h, $src_w, $src_h); // 假設要長寬不超過90 // 複製上傳圖片到指定 images 目錄 $number = strrpos($file_name,"."); $orig_name = substr($file_name,0,$number); $sub_file_name = substr($file_name,$number+1); $new_file_name = time()."_".$num.".".$sub_file_name; $dest_filename = $upload_dir.$new_file_name; $sql="插入db所需要的資料"; mysql_query($sql); $r=mysql_affected_rows();圖檔儲存在伺服器
if($r>0) { switch ($image_type[2]){ case "1"://gif imagegif($thumb, 'path'.$dest_filename); copy($_FILES['image'.$im]['tmp_name'], "../images/upload/" .$dest_filename); break; case "2": //jpg imagejpeg($thumb, "path".$dest_filename); copy($_FILES['image'.$im]['tmp_name'], "../images/upload/" .$dest_filename); break; case "3": //png imagepng($thumb, "path".$dest_filename); copy($_FILES['image'.$im]['tmp_name'], "../images/upload/" .$dest_filename); break; } }
form 的元素: enctype='multipart/form-data'列出上傳的檔案資訊:
print_r($_FILES)
上傳多個標檔案--例子:
科目<input type='file' name='con_subject[]'><br> 科目<input type='file' name='con_subject[]'><br> 科目<input type='file' name='con_subject[]'><br>解釋:
接收端 第一個檔案: $_FILES['con_subject']['name'][0]
getimagesize
imagecreatefromgif
imagepng
2012年2月8日 星期三
檔案下載
使用的下載方式是跳出下載的方塊而不是瀏覽。
副程式:
2012.10.
下載檔名中有中文 產生亂碼,解法:
副程式:
//First, see if the file exists if (!is_file($file)) { die("404 File not found!"); } //Gather relevent info about file $len = filesize($file); $filename = basename($file); $file_extension = strtolower(substr(strrchr($filename,"."),1)); /* 找了一下檔案下載的程式,在 EcStart 看到這個 Function,用它下載檔案的話,都會以 「下載」的方式呈現,而不是直接在瀏覽器開啟檔案。 http://my-web-design.blogspot.com/2010/08/php.html#links */ //This will set the Content-Type to the appropriate setting for the file switch( $file_extension ) { case "pdf": $ctype="application/pdf"; break; case "exe": $ctype="application/octet-stream"; break; case "zip": $ctype="application/zip"; break; case "doc": $ctype="application/msword"; break; case "xls": $ctype="application/vnd.ms-excel"; break; case "ppt": $ctype="application/vnd.ms-powerpoint"; break; case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpg"; break; case "mp3": $ctype="audio/mpeg"; break; case "wav": $ctype="audio/x-wav"; break; case "mpeg": case "mpg": case "mpe": $ctype="video/mpeg"; break; case "mov": $ctype="video/quicktime"; break; case "avi": $ctype="video/x-msvideo"; break; case "txt": $ctype="text/plain"; break; //The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files) case "php": case "htm": case "html":die("Cannot be used for ". $file_extension ." files!"); break; default: $ctype="application/force-download"; } //Begin writing headers header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Cache-Control: public"); header("Content-Description: File Transfer"); //Use the switch-generated Content-Type header("Content-Type: $ctype"); //Force the download $header="Content-Disposition: attachment; filename=".$filename.";"; header($header ); header("Content-Transfer-Encoding: binary"); header("Content-Length: ".$len); @readfile($file); exit;
2012.10.
下載檔名中有中文 產生亂碼,解法:
mb_convert_encoding($chineseFile,"BIG-5","UTF-8");您可能有興趣的書單:
2012年2月7日 星期二
PHP陣列
語法:array array(mixed...])
參數mixed的語法為"key=>value",多個參數mixed用逗號分開
如果省略了索引,會自動產生從0開始的整數索引
範例:
$array=array("ASP","PHP","JSP");
$rray[]="ASP",$rray[]="PHP",$rray[]="JSP"
$array3=array("a"=>"books","b"=>"apple","c"=>"orig")
array_search :在陣列中尋找指定的值, 傳回值true/false
語法:mixed array_search(mixed needle,array haystack[,bool strict])
搜尋陣列中是否有8這個數字。
array_search('8',$array);
1.explode():此函式可以將字串分割為陣列儲存,類似切token的方式,若以下列程式碼為例:
$student="kevin susan james";
$stuednt_array=explode(" ",$student);
foreach($stuednt_array as $index => $value)
echo "student $index is: $value\n";
則結果為:
student 0 is: kevin
student 1 is: susan
student 2 is: james
2.implode():此函式可以將陣列合併為字串儲存,若以下列程式碼為例:
$stuednt_array = array(kevin, susan, james);
$student = implode(",", $stuednt_array);
echo $student
把$_POST 的資料用成$key=>$value 的方式,不用在自己轉換成變數,減少很多麻煩。
$_POST = array_map('trim', $_POST);
foreach($_POST as $key => $value) {
${'post_' . $key} = mysql_real_escape_string($value);
}
輸出就是 $post_key的方式丟出來
參數mixed的語法為"key=>value",多個參數mixed用逗號分開
如果省略了索引,會自動產生從0開始的整數索引
範例:
$array=array("ASP","PHP","JSP");
$rray[]="ASP",$rray[]="PHP",$rray[]="JSP"
$array3=array("a"=>"books","b"=>"apple","c"=>"orig")
array_search :在陣列中尋找指定的值, 傳回值true/false
語法:mixed array_search(mixed needle,array haystack[,bool strict])
搜尋陣列中是否有8這個數字。
array_search('8',$array);
1.explode():此函式可以將字串分割為陣列儲存,類似切token的方式,若以下列程式碼為例:
$student="kevin susan james";
$stuednt_array=explode(" ",$student);
foreach($stuednt_array as $index => $value)
echo "student $index is: $value\n";
則結果為:
student 0 is: kevin
student 1 is: susan
student 2 is: james
2.implode():此函式可以將陣列合併為字串儲存,若以下列程式碼為例:
$stuednt_array = array(kevin, susan, james);
$student = implode(",", $stuednt_array);
echo $student
把$_POST 的資料用成$key=>$value 的方式,不用在自己轉換成變數,減少很多麻煩。
$_POST = array_map('trim', $_POST);
foreach($_POST as $key => $value) {
${'post_' . $key} = mysql_real_escape_string($value);
}
輸出就是 $post_key的方式丟出來
on duplicate key update (pk key 不存在,新增資料;有重覆值採用更新)
使用此指令需要 MYSQL版本5.0以上。
官網資料:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
範例:INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
假設unique 為a欄位:
資料 INSERT INTO table (a,b,c) VALUES values(1,2,3) ON DUPLICATE KEY UPDATE c=c+1; 會更新c=c+1
資料 INSERT INTO table (a,b,c) values(2,2,3) ON DUPLICATE KEY UPDATE c=c+1;會新增資料(2,2,3)
官網資料:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html
範例:INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
假設unique 為a欄位:
資料 INSERT INTO table (a,b,c) VALUES values(1,2,3) ON DUPLICATE KEY UPDATE c=c+1; 會更新c=c+1
資料 INSERT INTO table (a,b,c) values(2,2,3) ON DUPLICATE KEY UPDATE c=c+1;會新增資料(2,2,3)
2012年2月3日 星期五
date 日期格式化
阿都仔的日期表示方式多以: 日/月/年
英文裡的數,可以分為「基數」(one、two、three)與「序數」(第一first、第二second、第三third)
日期表示:
MYSQL
取得現在時間---------------
select DATE_FORMAT(NOW(),'%H:%s, %D %b., %Y')==> 09:01, 2nd Feb., 2012
符合 rfc822
$date=gmdate("D, d M Y H:i:s", $this->unix);
DATE_FORMAT(time,'%a, %d %b %y %k:%i:%s +0000')
PHP
取得現在時間---------------
echo date("Y/m/d H:i",time()); //其結果為2010/03/24 14:32
echo date("H:i,jS D.,Y"); //結果:11:38,6th Mon.,2012
PHP:
d - 幾日,兩位數字,若不足二位則前面補零; 如: "01" 至 "31"
j - 幾日,兩位數字,若不足二位不補零; 如: "1" 至 "31"
D - 星期幾,三個英文字母; 如: "Fri"
l - 星期幾,英文全名; 如: "Friday"
F - 月份,英文全名; 如: "January"
Y - 年份,四位數字; 如: "1999"
y - 年份,二位數字; 如: "99"
h - 12 時制的小時; 如: "01" 至 "12"
H - 24 時制的小時; 如: "00" 至 "23"
g - 12 時制的小時,不足二位不補零; 如: "1" 至 12"
G - 24 時制的小時,不足二位不補零; 如: "0" 至 "23"
i - 分鐘; 如: "00" 至 "59"
m - 月份,兩位數字,若不足二位則在前面補零; 如: "01" 至 "12"
n - 月份,兩位數字,若不足二位則不補零; 如: "1" 至 "12"
M - 月份,三個英文字母; 如: "Jan"
s - 秒數; 如: "00" 至 "59"
S - 字尾加英文序數,二個英文字母; 如: "th","nd"
t - 指定月份的天數; 如: "28" 至 "31"
U - 總秒數
w - 數字型的星期幾,如: "0" (星期日) 至 "6" (星期六)
z - 一年中的第幾天; 如: "0" 至 "365"
date('U',time())
主要是將文字日期改為Unix時間戳記
date('U',time()); 獲得現在的秒數
mktime(hour,minute,second,month,day,year,is_dst)
範例:今天往後算一個月的日子
只有 小時與分鐘,所以mysql 的 unix_timestamp 不能用。
找出 開始與結束時間是否是一樣的
$ss_start=($_sHour * 60 + $_sMinute)*60; //秒
$ss_end=($_eHour * 60 + $_eMinute)*60; //秒
$sql="select * from `XXX` where TIME_TO_SEC( `start`)='$ss_start' and TIME_TO_SEC(`end`)='$ss_end' and auto='{$auto_id}'";
英文裡的數,可以分為「基數」(one、two、three)與「序數」(第一first、第二second、第三third)
日期表示:
- 1號、11號、21號、31號 英文 => 1st, 11st, 21st, 31st (數字後面加 st)
- 2號、12號、22號 英文 = 2nd, 12nd, 22nd (數字後面加 nd)
- 3號、13號、23號 英文 = 3rd, 13rd, 23rd (數字後面加 rd )
- 其他的後面(4~9)加 "th" 就符合規則了如=> 19th, 24th, 8th
MYSQL
取得現在時間---------------
select DATE_FORMAT(NOW(),'%H:%s, %D %b., %Y')==> 09:01, 2nd Feb., 2012
符合 rfc822
$date=gmdate("D, d M Y H:i:s", $this->unix);
DATE_FORMAT(time,'%a, %d %b %y %k:%i:%s +0000')
PHP
取得現在時間---------------
echo date("Y/m/d H:i",time()); //其結果為2010/03/24 14:32
echo date("H:i,jS D.,Y"); //結果:11:38,6th Mon.,2012
PHP:
d - 幾日,兩位數字,若不足二位則前面補零; 如: "01" 至 "31"
j - 幾日,兩位數字,若不足二位不補零; 如: "1" 至 "31"
D - 星期幾,三個英文字母; 如: "Fri"
l - 星期幾,英文全名; 如: "Friday"
F - 月份,英文全名; 如: "January"
Y - 年份,四位數字; 如: "1999"
y - 年份,二位數字; 如: "99"
h - 12 時制的小時; 如: "01" 至 "12"
H - 24 時制的小時; 如: "00" 至 "23"
g - 12 時制的小時,不足二位不補零; 如: "1" 至 12"
G - 24 時制的小時,不足二位不補零; 如: "0" 至 "23"
i - 分鐘; 如: "00" 至 "59"
m - 月份,兩位數字,若不足二位則在前面補零; 如: "01" 至 "12"
n - 月份,兩位數字,若不足二位則不補零; 如: "1" 至 "12"
M - 月份,三個英文字母; 如: "Jan"
s - 秒數; 如: "00" 至 "59"
S - 字尾加英文序數,二個英文字母; 如: "th","nd"
t - 指定月份的天數; 如: "28" 至 "31"
U - 總秒數
w - 數字型的星期幾,如: "0" (星期日) 至 "6" (星期六)
z - 一年中的第幾天; 如: "0" 至 "365"
date('U',time())
主要是將文字日期改為Unix時間戳記
$ThisDay = '2008-01-01'; $ThisDay = strtotime($ThisDay); // 將日期轉為Unix時間戳記 echo date("Y-m-d",strtotime("now",$ThisDay)). "\n"; //顯示2008-01-01 echo date("Y-m-d",strtotime("+1 day",$ThisDay)). "\n"; //顯示2008-01-02 echo date("Y-m-d",strtotime("+1 week",$ThisDay)). "\n"; //顯示2008-01-08 echo date("Y-m-d",strtotime("+1 week 2 days 4 hours 2 seconds",$ThisDay)). "\n"; //顯示2008-01-10 echo date("Y-m-d",strtotime("next Thursday",$ThisDay)). "\n"; //顯示2008-01-03 echo date("Y-m-d",strtotime("last Monday",$ThisDay)). "\n"; //顯示2007-12-31 以上範例會有1970的問題 使用 date_default_timezone_set('UTC'); 可以解決 日期:2012-01-13 00:56:35 date("Y-m-d 00:00:00",strtotime("-1 week")) //往前推七天 2012-01-06 00:00:00
date('U',time()); 獲得現在的秒數
mktime(hour,minute,second,month,day,year,is_dst)
範例:今天往後算一個月的日子
$years = date("Y"); $months = date("m"); $days = date("d"); $day = date("Y-m-d",mktime(0,0,0,$months+1,$days,$years));
只有 小時與分鐘,所以mysql 的 unix_timestamp 不能用。
找出 開始與結束時間是否是一樣的
$ss_start=($_sHour * 60 + $_sMinute)*60; //秒
$ss_end=($_eHour * 60 + $_eMinute)*60; //秒
$sql="select * from `XXX` where TIME_TO_SEC( `start`)='$ss_start' and TIME_TO_SEC(`end`)='$ss_end' and auto='{$auto_id}'";
2012年2月1日 星期三
訂閱:
文章 (Atom)