線上書籍

Home

[1062] PHP7入門

一、 Git總整理
  1. 安裝git:如此VSCode的原始檔控制就有作用(本地端git,自己做版本控制)
  2. 申請github帳號:進一步備份並進行多人開發
  3. 安裝gitkrakengithub desktop有圖形直覺界面可用,和GitHub互動更簡單。
  4. 自己尚無Git專案,想要建個專案到GitHub上:
    • (1) 海怪→File→Init Repo→Local Only,在自己電腦上弄個git專案
    • (2) 到GitHub.com去開一個新的儲存庫new repository,然後複製畫面上的「git remote add origin https://github.com/tadlearn/xxx.git」指令
    • (3) 海怪→File→Open Terminal,然後在終端機貼上剛剛的指令,以串連 github
    • (4) 海怪→Stage all changes→輸入摘要→commit提交→push上自己的github
    • (5) 1~3只要做一次,以後都是進行4而已。
  5. GitHub上已有自己的專案,但自己電腦中沒有(換不同電腦時):
    • (1) 海怪→File→Clone Repo→GitHub.com→設好路徑→選要複製的專案→送出即可。
    • (2) 海怪→Stage all changes→輸入摘要→commit提交→push上自己的github
    • (3) 1只要做一次,以後都是進行2而已。
  6. Fork他人專案(算是專案貢獻者):
    • (1) 到GitHub.com去找到心儀的專案→按Fork
    • (2) 海怪→File→Clone Repo→GitHub.com→設好路徑→選要複製的專案→送出即可。
    • (3) 海怪→Stage all changes→輸入摘要→commit提交→push上自己的github
    • (4) 海怪→PULL REQUESTS→從自己到原專案→送出合併請求,等原專案管理員合併。
    • (5) 1-2只要做一次,以後都是進行3-4而已。
  7. Fork他人的專案,當主專案有異動時,想同步主專案:
    • (1) 到自己的GitHub.com找到該Fork專案→Pull request→switching the base 切換比對方向(比對主專案到底和我Fork的專案的差異有哪些)
    • (2) Create pull request建立下載請求→Merge pull request如此便合併完成
    • (3) 海怪→Pull下載到自己電腦專案中,日後就不斷重複上面的3-4或者這裡的1-2
  8. 他人專案的共同開發者(通常是被邀請或一起開發):
    • (1) 海怪→File→Clone Repo→GitHub.com→設好路徑→選要複製的專案→送出即可。
    • (2) 海怪→Stage all changes→輸入摘要→commit提交→push上自己的github
    • (3) 海怪→Pull下載異動到自己電腦專案中
    • (4) 1只要做一次,以後都是進行2-3而已。
二、 發布到學生練習主機空間(http://stu.tncomu.tn.edu.tw
  1. 申請後,您的網站網址為:「http://stu.tncomu.tn.edu.tw/~帳號」
  2. 資料庫和FTP帳號、密碼是一樣的!上傳時建議用 22 port
  3. http://stu.tncomu.tn.edu.tw/adminer.php可登入進行資料庫管理,匯入sql檔
  4. 修改template_c、uploads、elFinder/files的權限為777(瀏覽器可寫入)
  5. 上傳後,修改setup.php的設定即可。
三、 關於錯誤訊息
  1. error_reporting(0); 可以關閉所有錯誤訊習。
  2. error_reporting(E_ERROR | E_WARNING | E_PARSE); //notice訊息不要出現
  3. 詳細可見:http://php.net/manual/zh/errorfunc.constants.php
四、 分頁工具
  1. 分頁class檔PageBar.php放到專案目錄下,將底下語法放在原有的 $sql 和 $result 之間!
  2. 原始的$sql不可加limit語法!$bar(分頁工具列)和$total(總數量)可自行套到樣板。 include_once "PageBar.php"; $PageBar = getPageBar($db, $sql, 5, 10); $bar = $PageBar['bar']; $sql = $PageBar['sql']; $total = $PageBar['total'];
  3. getPageBar($資料庫物件, $sql語法, $顯示資料數 = 20, $工具列呈現的頁數 = 10, $要連結頁面 = "", $額外的連結參數 = "");
五、 上下頁的作法
  1. 先確定排序方式,例如:依update_time日期排序,從大到小(新到舊)
  2. 第一筆定義:最大(新)日期的文章
  3. 下一筆定義:比現有文章日期小一點的文章,即:抓出「文章日期<目前文章日期」的資料,故先找出<目前文章日期的所有文章,抓日期最大的那一筆(大→小排序抓一筆)。如: SELECT * FROM `article` WHERE `update_time` < '{$data['update_time']}' ORDER BY `update_time` DESC LIMIT 0,1
  4. 上一筆定義:比現有文章日期大一點的文章,即:抓出「文章日期>目前文章日期」的資料,故先找出>目前文章日期的所有文章,抓日期最小的那一筆(小→大排序抓一筆)。如: SELECT * FROM `article` WHERE `update_time` > '{$data['update_time']}' ORDER BY `update_time` LIMIT 0,1

     

六、 安裝ckeditor外掛
  1. https://ckeditor.com/cke4/addon/autogrow
  2. 下載,解壓,將autogrow資料夾放到ckeditor/plugins下
  3. 編輯ckeditor\config.js,加入:config.extraPlugins = 'autogrow'; 即可
七、 多重搜尋
  1. 搜尋一般用like語法,%是萬用字元,代表任何字,如: $sql = "SELECT * FROM `article` WHERE `title` LIKE '%{$keyword}%' OR `content` LIKE '%{$keyword}%' ORDER BY `update_time` DESC";
  2. 多重搜尋在於關鍵字的處理,例如空白、and或or要如何抓出套用。在此,我們僅用空白,代表or,以簡化流程。 explode()用來拆解,implode()用來合併。 $keyword_arr = explode(' ', $keyword); $key_arr = array(); foreach ($keyword_arr as $word) { if (!empty($word)) { $key_arr[] = "(`title` LIKE '%{$word}%' OR `content` LIKE '%{$word}%')"; } } $query = implode(' OR ', $key_arr);
  3. 此外,表單一般都用get方法來傳遞變數居多
  4. 若想將font-awsome用到placeholder中,可以套用其編碼及字型,編碼請參見:http://fontawesome.io/cheatsheet/ <input type="text" class="form-control form-control-sm" name="keyword" placeholder="&#xf002; 搜尋關鍵字以空白隔開" style="font-family: 微軟正黑體, FontAwesome">