PHP Build-in Functions

PHP內建函式

說明:

  • 函式內參數如果是用中括號「[」、「]」包圍住,代表選用,可傳也可沒有傳入。
  • 參數內mixed型別並不是真正型別,而是代表其該參數支援多種型別。

快速檢索

一般函式:

var_dump()header()exit()die()sleep()isset()unset()function_exists()mt_rand()mt_srand()

陣列函式:

count()sizeof()

字串輸出與調整:

字串分割與合併:

字串查詢:

字串取代與截取:

字串格式化:

字串分析:

字串轉換:

字串比對:

字串比對結果值:

條件回傳值
字串1< 字串2-1
字串1> 字串21
字串1== 字串20

何謂自然順序:

一般在比較字串時,都是由左到右一個字元一個字元來比,所以當遇到img2.jpg和img10.jpg,會出現1的結果(也就是img2.jpg大於img10.jpg),但實際上應該是img10.jpg大於img2.jpg;而自然順序演算法會將數字整個一起做比較,因此用自然順序比較的情況下,會得到—1的結果(也就是img2.jpg小於img10.jpg)。

字串加密:


header()

在HTTP通訊協定當中,header的部分定義網頁的相關資訊(如:文件類型、語言等等),header()函式可以用來自行定義這些資訊。

header(要定義的屬性字串 [, 是否取代原本設定 [, HTTP回應碼]]);
備註:header()必須放在網頁輸出任何內容之前(也就是在所有的echo之前,甚至<html>標籤之前),否則會導致錯誤,你可以將它放在程式碼的第一行。

範例:

    // 頁面重新導向(Location):讓瀏覽器前往指定的網址
    header("Location: http://www.aaronlife.com");

    // 重新整理網頁(Refresh),透過程式來自動重新整理網頁,也可以設定要重新整理的時間間隔
    header("Refresh: 5"); // 每5秒就重新整理一次網頁
    header("Refresh: 3; URL=http://www.aaronlife.com"); // 3秒後重新更新網頁,並前往網址:http://www.aaronlife.com

    // 定義網頁編碼(Content-type),用Content-type定義網頁編碼
    header("Content-type: text/html; charset=utf-8"); // UTF-8編碼
    header("Content-type: text/html; charset=big5");  // BIG5編碼

    // 用Content-type定義輸出的檔案格式(MIME Type)
    header("Content-type: application/pdf;");  // PDF檔
    header("Content-type: application/zip;");  // ZIP壓縮檔
    header("Content-type: video/mov;");        // MOV影片檔
    header("Content-type: video/avi;");        // AVI影片檔
    header("Content-type: audio/mpeg3;");      // MP3聲音檔
    header("Content-type: audio/x-wav;");      // WAV聲音檔
    header("Content-type: image/jpg;");        // JPG圖片
    header("Content-type: image/png;");        // PNG圖片
    header("Content-type: image/gif;");        // GIF圖片
關於網際網路的檔案格式(MIME Type)定義,可以參考維基百科:MIME(多用途網際網路郵件擴展)

exit()、die()

在某些情況下,如果自行停止程式的執行,可以呼叫die()或exit()函式並輸出錯誤訊息,這兩個函式功能是一樣的。

void die([string $status]);
void die(int $status);
void exit([string $status]);
void exit(int $status);

範例:

die('無法連接資料庫!');
exit('檔案開啟失敗!');

sleep()

延遲一段時間後再繼續執行程式。

int sleep(int $seconds);

範例:

<?php
// 顯示目前系統時間
echo date('h:i:s').'<br/>';

// 延遲5秒
sleep(5);

// 再次顯示目前系統時間
echo date('h:i:s').'<br/>';
?>

isset()

判斷變數是否有定義並且其值不是空值(NULL)。

bool isset (mixed $var [, mixed $... ]);

範例:

echo isset($a);
echo isset($a, $b);

unset()

描述:刪除已經定義的變數,可以ㄧ次刪除多個。

unset(變數 [, 變數 ...]);

範例:

unset($a);
unset($b, $c);

count()

取得陣列內元素的數量。

int count(mixed $array_or_countable [, int $mode = COUNT_NORMAL]);

sizeof()

取得陣列內元素的數量。

int sizeof(mixed $array_or_countable [, int $mode = COUNT_NORMAL]);

function_exists()

檢查函式是否存在。

bool function_exists(string $function_name);

mt_rand()

產生更好的亂數。

int mt_rand(void);
int mt_rand(int $min, int $max);

mt_srand()

設定亂數種子,用來取得更隨機的亂數。

void mt_srand([int $seed]);

範例:

mt_srand((double)microtime() * 1000000); // 設定亂數種子,用來取得更隨機的亂數

$val = mt_rand(1, 5); // 產生1~5之間亂數

var_dump()

將變數的資訊詳細顯示出來。

void var_dump(mixed $expression [, mixed $... ]);

通常用在開發中將變數或陣列內的資訊詳細的顯示出來,方便程式除錯。