發表文章

目前顯示的是 7月, 2021的文章

[PHP] exit()的用法 以及 與die()的差異

exit、exit()與exit(0)都可以讓程序結束,如果希望程序結束時印出字串,可以使用exit('Error'),至於die()就是exit()一模一樣的別名函式,常於連線資料庫時使用。 $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die('Could not connect: ' . mysql_error()); //等同 exit('Could...'); }

[PHP] if 的三種寫法

第一種 if (10 > 0) echo 'Yes'; //只能有一行 超過會報錯 else echo 'No'; 第二種 if (10 > 0) { echo 'Yes'; echo '...'; //可以有多行 } else { echo 'No'; echo '....'; } 第三種 if (10 > 0) : echo 'Yes'; echo '...'; else : echo 'No'; echo '...'; endif; 註1: 建議使用第二種寫法。 註2: 第三種寫法與第二種基本上相同,常見於HTML混寫時使用(例如:laravel的blade樣版)。 switch、while、for、foreach...也有類似的替代寫法 switch ($a) : case 'A': echo 'AAA'; break; endswitch; while ($i

[PHP] 如何將網頁表格(table)轉成Excel的xlsx檔 (使用PHPExcel)

先下載PHPExcel套件(這篇是用1.7.X版示範),然後程式碼如下... //程式碼大概就下面七行 ob_start(); include_once('PHPExcel.php'); $obj = new ExcelService(); $html_table = '<table><tr><td>123中文</td></tr></table>'; //要轉成Excel的表格 $html_table = mb_convert_encoding(html_entity_decode($html_table), 'HTML-ENTITIES', 'UTF-8'); //避免中文變成亂碼 $excelFile = $obj->generateExcel($html_table, 'myexcel', 'my_excel_folder'); //產生的Excel的檔名 並指定要放在哪個資料夾 ob_end_clean(); header('Location: my_excel_folder/myexcel.xlsx'); //固定的Class 可以不用改 class ExcelService { public function generateExcel($content, $fname, $tmp_path = '') { if ($fname == '') $fname = date('YmdHis'); if ($tmp_path == '') $tmp_path = 'temp'; $filename = $fname . '.xlsx'; $htmlname = $fname . '.html'; $excelFile = $tmp_path . '/' . $filename; $h...

[PHP] 如何將數個檔案進行打包 並產生ZIP壓縮檔 (使用PHP原生套件 ZipArchive )

假如需要數個檔案打包成一個壓縮檔,可利用PHP原生套件ZipArchive,使用方法很簡單,如下... //實際所需要的code大概就下面四行 $zip = new ZipArchive(); if ($zip->open('my_zip_folder/myzip.zip', ZipArchive::OVERWRITE) === TRUE) { //指定打包之後的壓縮檔要放在my_zip_folder下面 檔名為myzip.zip addFileToZip('my_file_folder/', $zip); //my_file_folder 就是我們要打包的資料夾 裡面必需有兩個以上的檔案才能打包 $zip->close(); } //產生ZIP檔後讓瀏覽器執行下載動作 header('Location: my_zip_folder/myzip.zip'); //固定的function 不用改 function addFileToZip($path,$zip){ $handler = opendir($path); //開啟當前資料夾由$path指定。 while (($filename = readdir($handler)) !== false) { if ($filename != "." && $filename != "..") { //資料夾檔名字為'.'和'..',不要對他們進行操作 if (is_dir($path."/".$filename)) { // 如果讀取的某個物件是資料夾,則遞迴 addFileToZip($path."/".$filename, $zip); } else { //將檔案加入zip物件 $zip->addFile($path."/".$filename); } ...