# php --- [TOC] --- ## \[1] 什麼是 php? php 是網頁後端的東西。 在寫 HTML 的時候,如果想跟使用者互動,像是寫登入、登出的網頁,可以利用 php 在網頁間互相傳值。 如果之後要將網頁連結資料庫的話也可以使用 php。 在寫 php 時,需要在結尾加「;」,像在寫 C++ 一樣。 ### 在程式中使用 php 的方式 1. ``<?php php程式碼 ?>``  2. ``<script language='php'>php程式碼</script>`` (目前新版本的 php 不支援) --- ## \[2] 基本語法 ### 註解 // 單行註解 /* */ 註解 ### 變數 使用變數時不需要宣告 int、float、bool…… 直接: ``` $變數名稱=內容; ``` #### php 變數常用的資料型態 | 資料型態 | 例子 | | -------- | ------------------ | | int | $var = 10 ; | | float | $var = 1.5 ; | | string | $var = 'rilakkuma' ; | | array | $var[0] = 12 ; | | bool | $var = True ; | ### 運算子 跟 C++ 差不多。 有 +、-、*、/、%、++、--、=、+=、==、!=、>、<、&&、||…… --- ## \[3] 字串 ### 字串連接 ``` 字串.字串; ```  ### 印出字串 #### echo ``` echo 字串; ```  使用 echo 不會有回傳值,因此比較快。 #### print( ) ``` print(字串); ```   使用 print( ) 會有回傳值,因此比 echo 慢一點。 --- ## \[4] 陣列 php 的陣列在使用上跟 C++ 很像,但在建立 php 的陣列時不需要給陣列長度。 ### 用 php 建陣列的方式 1. ``` $var = array('501','lala','bear') ; ``` 2. ``` $var[0] = '501' ; $var[1] = 'lala' ; $var[2] = 'bear' ; ``` ### count( ) 計算元素個數。  ### array_sum( ) 將陣列的元素加總。  ### sort( ) 將陣列的元素進行排序。  除此之外還有很多,這裡只是把比較常用的列出來。 --- ## \[5] 判斷式與迴圈 ### if、else 判斷式  ### while 迴圈  ### for 迴圈  --- ## \[6] 函式 ### function  ### 常用函式 #### empty( ) 檢查變數是否為零或尚未指定。 例 1.  例 2.  例 3.  #### unset( ) 清除變數,讓變數尚未指定數值。  #### 檢查變數型態 | 函數 | 意思 | | ----------- | ---------------------------- | | is_bool( ) | 檢查變數是否為布林值 | | is_int( ) | 檢查變數是否為整數 | | is_float( ) | 檢查變數是否為浮點數 | | is_string( ) | 檢查變數是否為字串 | | is_numeric( ) | 檢查變數是否為數字或數字字串 | | is_array( ) | 檢查變數是否為陣列 | #### 變數型態轉換(好用!) | 函數 | 意思 | | -------- | -------- | | intval( ) | 將 string 轉成 int | | strval( ) | 將 int 轉成 string |  #### 字串相關函數(好用!) | 函數 | 意思 | | -------- | -------- | | strlen( ) |取得字串長度| |trim( )|清除字串前後空白字元| |strpos(字串, 搜尋的字串或字元)|取得搜尋的字串或字元在字串裡的位置,可帶入第三個參數設定開始搜尋的位置| |strchr(字串, 搜尋的字串或字元)|從**字串開頭**搜尋字串並印出搜尋字串或字元之後的字串(包含搜尋的字串或字元)| |strrchr(字串, 搜尋的字串或字元)|從**字串結尾**搜尋字串並印出搜尋字串或字元之後的字串(包含搜尋的字串或字元)| |substr(字串, 字元開始位置)|取得部分字串內容,可代入第三參數設定取得字串長度| |explode(字串1, 字串2)|根據字串 1 將字串 2 分割成陣列,可代入第三參數設定分割陣列元素| |implode(字串, 陣列)|根據字串將陣列串接|   --- ## \[7] php 與 HTML 如果想製作可互動的網頁,像是登入頁面、購物網站等等需要多個頁面可以相傳遞資料的話,php 會是一個很好的選擇。 在 .php 檔中,可以直接寫入: ``` <html>HTML語法</html> ``` ### php 與 HTML 互相嵌入 1. php 中使用 HTML 最簡單的方式就是把 HTML 包成字串,再利用 echo 印出來。  2. HTML 中使用 php 同上,最簡單的方式也是把 php 包成字串,再利用 echo 印出來,只是要記得一定要把 ``<?php ?>`` 也跟著一起包起來。  ### HTML 透過 php 傳值 個人覺得 php 最好用的地方就在這裡,利用 HTML 語法中的 form 表單,就可以簡單方便地把資料傳送出去。  #### 傳送資料的方式: 1. get 在傳送資料時,使用網址傳送資料,傳送的資料量有限,一共只能傳輸 255 個字元(包含網址的字元)。 接收資料時用: ``` $_GET['資料名稱']; ```     2. post 利用通訊協定的標頭傳送資料,資料不會顯示在網址上,也可以傳大量的資料(個人覺得比較好用)。 接收資料時用: ``` $_POST['資料名稱']; ```     #### 比對資料格式 -preg_match( ) 在設定帳號、密碼或是填寫 e-mail 的時候,會要求用特定的資料格式,如果不符會出現警告要求修改,這個可以用 php 寫出來。 1. 若資料符合格式,回傳 1,反之回傳 0。 ``` preg_match(格式, 字串) ``` 2. 將符合格式的資料存入陣列中。 ``` preg_match(格式, 字串, 儲存陣列) ``` 格式的寫法: ``` 格式 = '/寫法/' ``` | 寫法|意思| | -------- | -------- | | [ ] |在列舉的範圍內,填入想要比對的資料格式| |[^ ]|不在列舉的範圍內,填入想要比對的資料格式| |\w|字詞字元,即 [a-zA-Z0-9_]| |\W|非字詞字元,即 [^a-zA-Z0-9_]| |\d|數字,即 [0-9]| 在寫格式時,也可以直接寫 /[a-z]/,依需求填入 [ ] 內就可以了,在比對時只要都是在 [ ] 內有出現的字元就算符合,跟順序無關。 如果要將比對後的資料存數陣列中,則要寫成: ``` /(格式1+)(格式2+)/ ``` 像是: ``` /([0-9]+)([a-zA-Z]+)/ ```     這個網站可以協助我們摸索格式的寫法: https://regex101.com/ 期待大家用 php 寫出好看的網頁~ --- ###### tags: `ckefgisc23rd`
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.