PHP 教學 - 運算子 (Operators) - 上
介紹 PHP 中運算子的用法,包含種類、優先順序、算術運算子 (Arithmetic Operator)、指派運算子 (Assignment Operator)、位元運算子 (Bitwise Operator)、比較運算子 (Comparison Operator)、三元運算子 (Ternary Operator)和錯誤控制運算子 (Error Control Operator)。 簡介種類透過提供一些數值給運算子 (Operator,或運算符) 進行運算,進而得到一個運算結果,可以想成類似函式的回傳,另外被運算的數值稱為運算元 (Operand)。 依據運算元的個數,運算子可以分為三種: 一元運算子,只有一個運算元,例如:!, ++ 等。 二元運算子,包含兩個運算元,大部分都屬於這類。 三元運算子,包含三個運算元,只有 ? : 運算子屬於此類。 而依據性質,可以分為: 算術運算子 (Arithmetic Operator) 指派運算子 (Assignment Operator) 位元運算子 (Bitwise Operator) 比較運算子 (Comparison Operato ...
Maximum execution time of 30 seconds exceeded
問題PHP程式執行一段時間,最後出現以下錯誤訊息: 1Fatal error: Maximum execution time of 30 seconds exceeded in ....php on line ... 原因這表示 PHP 程式執行的時間已經超過 PHP 設定 (max_execution_time) 的最大限制。 解決方案方法一:修改 php.ini 設定找到 1max_execution_time 30 預設為 30 秒,改為較大的值,例如: 1max_execution_time 300 儲存後重新啟動 Apache 即可。 方法二:使用 ini_set() 函式在程式開頭加上 ini_set() 函式去更改本次執行的 max_execution_time,例如: 1ini_set("max_execution_time", "300");
PHP 教學 - 常數 (Constants)
介紹PHP中常術的用法,包含語法、命名規則和魔術常數 (Magic constant)。 語法變數的值會改變而稱為變數,那相對於變數的常數,則是恆常不變的值而稱作常數 (Constant)。常數在宣告之後,就無法再改變它的值,除了魔術常數 (magic constant) 有可能會改變,因為他並非是真正的常數。常數是有大小寫之分,而常數的命名規則和變數一樣,以正規表示法表示如下: 1[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* 常數的使用和特性如下: 使用 define() 函式或 const 關鍵字宣告常數 (PHP 5.3.0 之後),但 const 關鍵字無法用在函式中,且和 static 類似,必須直接指定值,不可運算。 常數只能是數值的值,包括布林、整數、浮點數和字串,雖然也可以設為資源,但有可能會出現問題。 使用常數未定義時,會視為字串使用。可以使用 defined() 函式來判斷是否已定義。 和變數不一樣,常數不需要使用錢號 ($) 做開頭。除直接使用外,也可以用 constant() 函式取得常數值。 常數沒有範圍 (或當作是全域) ...
PHP 教學 - 變數 (Variables)
介紹 PHP 變數的用法,包含命名、指派 (assign)、宣告、變數範圍、預定義變數、全域變數、可變變數 (Variable variables)、POST、GET、REQUEST 和 COOKIE。 基礎命名規則變數是由錢號 ($) 開始,後面接著變數名稱,變數名稱有大小寫之分。變數名稱可以是英文字母、數字、底線和十六進位制為 0x7f - 0xff 的字元所組成,但是第一個字元不能是以數字開頭。正規表示法如下: 1[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* 一些宣告範例如下: 1234567$User = 'dindin';$user = 'lala';echo "$User, $user"; // 大小寫不同: dindin, lala//$3m = '300cm'; // parse error, 不能是數字開頭$_55 = 66; // 有效的$lälä = '偽物'; // 有效的, 但必須存檔為 ...
PHP 教學 - 資料型態 (Data Type) - 下
介紹 PHP 中的資料型態 (型別),包含字串 (String)、陣列 (Array)、物件 (Object)、資源 (Resource)、NULL,型別的判斷與轉型。 字串 (String)語法字串有四種使用的方式: 單引號 雙引號 Heredoc Nowdoc 以下逐一進行介紹。 單引號以兩個單引號包夾一段文字,表示字串內容,使用單引號的字串有一些特徵如下 (與雙引號比較): 逸出字元 (Escape characters) 只有兩種。 逸出字元 \\ 可省略寫作 \,但不可為最後一個字元 (不建議省略)。 不會對字串中的變數進行解析。 所謂逸出字元是為了某些特別的用途或能以此輸入打不出來的字,而定義的一種使用方式,在此的逸出字元以反斜線 (backslash) 開頭。例如,我們使用單引號做包夾,但字串中如果出現單引號,將會誤判為字串結束單引號,所以使用 \' 來表示字串中的單引號。使用單引號的字串可用的逸出字元如下: 符號 說明 ' 單引號字元。 \ 反斜線字元。 一些使用範例如下: 12345678910echo '基本用法 ...
PHP 教學 - 資料型態 (Data Type) - 上
介紹 PHP 中的資料型態 (型別),包含布林 (Boolean)、整數 (Integer)、浮點數 (Float),型別的判斷與轉型。 簡介型別的種類PHP 有 8 種基本的資料型態 (Data Type) 或簡稱型別 (Type):4種數值 (scalar) 的型別: 布林 (boolean) 整數 (integer) 浮點數 (float 或 double) 字串 (string) 2種複合 (compound) 的型別: 陣列 (array) 物件 (object) 另外兩種特別的型別: 資源 (resource) 空值 (NULL) 為了方便閱讀另外也有幾種虛擬的型別: 混合 (mixed) 數字 (number) 回呼 (callback) 型別的判斷可利用 get_type() 函式取得型別種類或利用 is_xxx() 函式判斷變數是否為此型別( is_xxx() 的 xxx 替換為要判斷的型別,例如:is_integer)。比較特別的是 is_numeric() 函式,當傳入的參數為整數、浮點數或是純數字內容的字串,都回傳 TRUE。 123456789 ...
PHP 教學 - 基本語法 (Syntax)
介紹 PHP 基本的語法和使用方式,包含如何執行 PHP、在 HTML 嵌入 PHP 與註解。 如何執行PHP在網站目錄下建立一個文字檔副檔名存為.php,例如:hello.php,寫入: 123<?phpecho "Hello world";?> 假設你已經架設好環境,接著用瀏覽器輸入網頁路徑即可,其中 echo 表示輸出顯示的意思。 在HTML嵌入PHP程式嵌入方式使用123<p>這裡不會處理 exit(); </p><?php echo "只會處理這裡"; ?><p>這裡也不會處理 phpinfo(); </p> 結果: 12345這裡不會處理 exit();只會處理這裡這裡也不會處理 phpinfo(); exit() 和 phpinfo()的 PHP 指令不會執行到。 使用...123<script language="php"> echo "但編輯器上色可能會有問題";</script> 使用12 ...
解決 PHP Startup: Unable to load dynamic library php_exif.dll
PHP 無法啟用 exif 模組 問題將 php.ini 的 exif 開啟如下 1extension=php_exif.dll apache error.log 出現以下錯誤而無法開啟 1PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\php5\\ext\\php_exif.dll' - \xa7\xe4\xa4\xa3\xa8\xec\xab\xfc\xa9w\xaa\xba\xbc\xd2\xb2\xd5\xa1C\r\n in Unknown on line 0 原因他必須開啟 mbstring 功能來支援且必須在 exif 之前載入,而 php.ini 預設順序卻是 exif 在前。 解決方案將 php.ini 開啟 mbstring 並將順序置於 exif 之前。 12extension=php_mbstring.dllextension=php_exif.dll