timezone_identifiers_list()
作用
返回帶有所有時區識別符號的數值陣列。
用法
timezone_identifiers_list(what,country);
what 可選。規定一個 DateTimeZone 類常量
1 = AFRICA
2 = AMERICA
4 = ANTARCTICA
8 = ARCTIC
16 = ASIA
32 = ATLANTIC
64 = AUSTRALIA
128 = EUROPE
256 = INDIAN
512 = PACIFIC
1024 = UTC
2047 = ALL
4095 = ALL_WITH_BC
4096 = PER_COUNTRY
測試案例
print_r(timezone_identifiers_list(1));
結果
Array
(
[0] => Africa/Abidjan
[1] => Africa/Accra
[2] => Africa/Addis_Ababa
[3] => Africa/Algiers
[4] => Africa/Asmara
[5] => Africa/Bamako
[6] => Africa/Bangui
[7] => Africa/Banjul
[8] => Africa/Bissau
[9] => Africa/Blantyre
[10] => Africa/Brazzaville
[11] => Africa/Bujumbura
[12] => Africa/Cairo
[13] => Africa/Casablanca
[14] => Africa/Ceuta
[15] => Africa/Conakry
[16] => Africa/Dakar
[17] => Africa/Dar_es_Salaam
[18] => Africa/Djibouti
[19] => Africa/Douala
[20] => Africa/El_Aaiun
[21] => Africa/Freetown
[22] => Africa/Gaborone
[23] => Africa/Harare
[24] => Africa/Johannesburg
[25] => Africa/Juba
[26] => Africa/Kampala
[27] => Africa/Khartoum
[28] => Africa/Kigali
[29] => Africa/Kinshasa
[30] => Africa/Lagos
[31] => Africa/Libreville
[32] => Africa/Lome
[33] => Africa/Luanda
[34] => Africa/Lubumbashi
[35] => Africa/Lusaka
[36] => Africa/Malabo
[37] => Africa/Maputo
[38] => Africa/Maseru
[39] => Africa/Mbabane
[40] => Africa/Mogadishu
[41] => Africa/Monrovia
[42] => Africa/Nairobi
[43] => Africa/Ndjamena
[44] => Africa/Niamey
[45] => Africa/Nouakchott
[46] => Africa/Ouagadougou
[47] => Africa/Porto-Novo
[48] => Africa/Sao_Tome
[49] => Africa/Tripoli
[50] => Africa/Tunis
[51] => Africa/Windhoek
)
timezone_location_get()
作用
返回指定時區的位置資訊
用法
timezone_location_get(object);
測試案例
$tz=timezone_open("Asia/Taipei");
print_r(timezone_location_get($tz));
結果
Array (
[country_code] => TW
[latitude] => 25.05
[longitude] => 121.5
[comments] =>
)
timezone_name_from_abbr()
作用
根據時區縮略語返回時區名稱
用法
timezone_name_from_abbr(abbr,gmtoffset,isdst);
abbr 必需。規定時區縮略語。
gmtoffset 可選。規定相對於 GMT 的以秒為單位的偏移量。預設為 -1,表示返回第一個被找到的匹配縮略語的時區。否則搜尋精確的偏移量。如果沒有找到,則返回任意偏移量的第一個時區。
isdst 可選。規定夏令時指示器。
-1 = 預設。搜尋時是否考慮時區的夏令時
1 = 表示 gmtoffset 是受夏令時影響的一個偏移量
0 = 表示 gmtoffset 是不受夏令時影響的一個偏移量
測試案例
echo timezone_name_from_abbr("EST") . "<br>";
echo timezone_name_from_abbr("",7200,0);
結果
America/New_York
Europe/Helsinki
timezone_name_get()
作用
返回時區的名稱
用法
timezone_name_get(object);
object 必需。規定一個 DateTimeZone 物件。
測試案例
$tz=timezone_open("Europe/Paris");
echo timezone_name_get($tz);
結果
Europe/Paris
timezone_offset_get()
作用
返回相對於 GMT 的時區偏移
用法
timezone_offset_get(object,datetime);
測試案例
$tz=timezone_open("Asia/Taipei");
$dateTimeOslo=date_create("now",timezone_open("Europe/Oslo"));
echo timezone_offset_get($tz,$dateTimeOslo);
結果
28800
timezone_open()
作用
建立一個新的 DateTimeZone 物件
用法
timezone_open(timezone);
測試案例
$tz=timezone_open("Europe/Paris");
echo timezone_name_get($tz);
結果
Europe/Paris
timezone_version_get()
作用
函式返回時區資料庫的版本。
用法
timezone_open(timezone);
測試案例
echo timezone_version_get();
結果
2012.2
chdir()
作用
函式改變當前的目錄。
用法
chdir(directory);
測試案例
// Get current directory
echo getcwd() . "<br>";
// Change directory
chdir("images");
// Get current directory
echo getcwd();
結果
/home/php
/home/php/images
chroot()
作用
函式改變當前程式的根目錄為 directory,並把當前工作目錄改為 "/"。
注意:該函式需要 root 許可權,且僅在 GNU 和 BSD 系統上僅當使用 CLI、CGI、嵌入式 SAPI 時可用。該函式沒有在 Windows 平臺上實現。
用法
chroot(directory);
測試案例
// Change root directory
chroot("/path/to/chroot/");
// Get current directory
echo getcwd();
結果
/
closedir()
作用
函式關閉目錄控制程式碼
用法
closedir(dir_handle);
測試案例
$dir = "/images/";
// Open a directory, and read its contents
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
echo "filename:" . $file . "<br>";
}
closedir($dh);
}
}
結果
filename: cat.gif
filename: dog.gif
filename: horse.gif
dir()
作用
dir() 函式返回 Directory 類的例項。該函式用於讀取一個目錄,包含如下:
給定的要開啟的目錄
dir() 的 handle 和 path 兩個屬性是可用的
handle 和 path 屬性有三個方法:read()、rewind() 和 close()
用法
dir(directory,context);
測試案例
$d = dir(getcwd());
echo "Handle: " . $d->handle . "<br>";
echo "Path: " . $d->path . "<br>";
while (($file = $d->read()) !== false){
echo "filename: " . $file . "<br>";
}
$d->close();
結果
Handle: Resource id #2
Path: /etc/php
filename: .
filename: ..
filename: ajax.gif
filename: books.xml
filename: cdcatalog.xml
filename: cd_catalog.xml
filename: default.html
filename: demo_array.html
filename: demo_array.htm
...
...
...
getcwd()
作用
函式返回當前工作目錄。
用法
getcwd();
測試案例
echo getcwd()
結果
/home/php
opendir()
作用
函式開啟目錄控制程式碼。
用法
opendir(path,context);
測試案例
$dir = "/images/";
// Open a directory, and read its contents
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
echo "filename:" . $file . "<br>";
}
closedir($dh);
}
}
結果
filename: cat.gif
filename: dog.gif
filename: horse.gif
readdir()
作用
函式返回目錄中下一個檔案的檔名。
用法
readdir(dir_handle);
測試案例
$dir = "/images/";
// Open a directory, and read its contents
if (is_dir($dir)){
if ($dh = opendir($dir)){
while (($file = readdir($dh)) !== false){
echo "filename:" . $file . "<br>";
}
closedir($dh);
}
}
結果
filename: cat.gif
filename: dog.gif
filename: horse.gif
rewinddir()
作用
函式重置由 opendir() 建立的目錄控制程式碼。
用法
rewinddir(dir_handle);
測試案例
$dir = "/images/";
// Open a directory, and read its contents
if (is_dir($dir)){
if ($dh = opendir($dir)){
// List files in images directory
while (($file = readdir($dh)) !== false){
echo "filename:" . $file . "<br>";
}
rewinddir();
// List once again files in images directory
while (($file = readdir($dh)) !== false){
echo "filename:" . $file . "<br>";
}
closedir($dh);
}
}
結果
filename: cat.gif
filename: dog.gif
filename: horse.gif
filename: cat.gif
filename: dog.gif
filename: horse.gif
scandir()
作用
函式返回指定目錄中的檔案和目錄的陣列。
用法
scandir(directory,sorting_order,context);
directory 必需。規定要掃描的目錄。
sorting_order 可選。規定排列順序。預設是 0,表示按字母升序排列。如果設定為 SCANDIR_SORT_DESCENDING 或者 1,則表示按字母降序排列。如果設定為 SCANDIR_SORT_NONE,則返回未排列的結果。
context 可選。規定目錄控制程式碼的環境。context 是可修改目錄流的行為的一套選項。
測試案例
$dir = "/images/";
// Sort in ascending order - this is default
$a = scandir($dir);
// Sort in descending order
$b = scandir($dir,1);
print_r($a);
print_r($b);
結果
Array
(
[0] => .
[1] => ..
[2] => cat.gif
[3] => dog.gif
[4] => horse.gif
[5] => myimages
)
Array
(
[0] => myimages
[1] => horse.gif
[2] => dog.gif
[3] => cat.gif
[4] => ..
[5] => .
)
debug_backtrace()
作用
debug_backtrace() 函式生成 backtrace。
該函式顯示由 debug_backtrace() 函式程式碼生成的資料。
返回一個關聯陣列。下面是可能返回的元素:
|名稱|型別|描述|
|—-|—-|—-|
|function| string| 當前的函式名。|
|line| integer |當前的行號。|
|file| string| 當前的檔名。|
|class| string| 當前的類名。|
|object| object |當前物件。|
|type|string|當前的呼叫型別,可能的呼叫:
返回:”->” - 方法呼叫
返回:”::” - 靜態方法呼叫
返回 nothing - 函式呼叫
|
|args| array| 如果在函式中,列出函式引數。如果在被引用的檔案中,列出被引用的檔名|
用法
debug_backtrace()
測試案例
<?php
function one($str1, $str2)
{
two("Glenn", "Quagmire");
}
function two($str1, $str2)
{
three("Cleveland", "Brown");
}
function three($str1, $str2)
{
print_r(debug_backtrace());
}
one("Peter", "Griffin");
?>
結果
Array
(
[0] => Array
(
[file] => C:webfoldertest.php
[line] => 7
[function] => three
[args] => Array
(
[0] => Cleveland
[1] => Brown
)
)
[1] => Array
(
[file] => C:webfoldertest.php
[line] => 3
[function] => two
[args] => Array
(
[0] => Glenn
[1] => Quagmire
)
)
[2] => Array
(
[file] => C:webfoldertest.php
[line] => 14
[function] => one
[args] => Array
(
[0] => Peter
[1] => Griffin
)
)
)
debug_print_backtrace()
作用
debug_print_backtrace() 函式列印 backtrace。
該函式顯示由 debug_print_backtrace() 函式程式碼生成的資料。
用法
debug_print_backtrace()
測試案例
<?php
function one($str1, $str2)
{
two("Glenn", "Quagmire");
}
function two($str1, $str2)
{
three("Cleveland", "Brown");
}
function three($str1, $str2)
{
debug_print_backtrace();
}
one("Peter", "Griffin");
?>
結果
#0 three(Cleveland, Brown) called at [C:webfoldertest.php:8]
#1 two(Glenn, Quagmire) called at [C:webfoldertest.php:4]
#2 one(Peter, Griffin) called at [C:webfoldertest.php:15]
error_get_last()
作用
error_get_last() 函式獲得最後發生的錯誤。
該函式以陣列的形式返回最後發生的錯誤。如果沒有錯誤發生則返回 NULL。
返回的錯誤陣列包含 4 個鍵名和鍵值:
- [type] - 錯誤型別
- [message] - 錯誤訊息
- [file] - 發生錯誤所在的檔案
- [line] - 發生錯誤所在的行
用法
debug_print_backtrace()
測試案例
<?php
echo $test;
print_r(error_get_last());
?>
結果
Array
(
[type] => 8
[message] => Undefined variable: test
[file] => C:webfoldertest.php
[line] => 2
)
error_log()
作用
error_log() 函式向伺服器錯誤記錄、檔案或遠端目標傳送一個錯誤。
如果成功該函式返回 TRUE,如果失敗該函式返回 FALSE。
返回的錯誤陣列包含 4 個鍵名和鍵值:
- [type] - 錯誤型別
- [message] - 錯誤訊息
- [file] - 發生錯誤所在的檔案
- [line] - 發生錯誤所在的行
用法
error_log(error,type,destination,headers)
引數 | 描述 |
---|---|
error | 必需。要記錄的錯誤訊息。 |
type | 可選。規定錯誤記錄的型別。 可能的記錄型別:
|
destination | 可選。規定向何處傳送錯誤訊息。該引數的值依賴於 "type" 引數的值。 |
headers | 可選。只在 "type" 引數為 1 時使用。規定附加的頭部,比如 From, Cc 以及 Bcc。附加頭部由 CRLF (\r\n) 分隔。 注意:在傳送電子郵件時,必須包含 From 頭部。可以在 php.ini 檔案中或者通過此引數設定。 |
測試案例
// 下面的例項傳送一封帶有自定義錯誤的電子郵件:
$test=2;
if ($test>1)
{
error_log("A custom error has been triggered",1,"someone@example.com","From: webmaster@example.com");
}
結果
// 上面程式碼接收到的郵件如下所示:
A custom error has been triggered
error_reporting()
作用
error_reporting() 函式規定報告哪個錯誤。
該函式設定當前指令碼的錯誤報告級別。
該函式返回舊的錯誤報告級別。
用法
error_reporting(report_level)
report_level
值 | 常量 | 描述 |
---|---|---|
1 | E_ERROR | 執行時致命的錯誤。不能修復的錯誤。停止執行指令碼。 |
2 | E_WARNING | 執行時非致命的錯誤。沒有停止執行指令碼。 |
4 | E_PARSE | 編譯時的解析錯誤。解析錯誤應該只由解析器生成。 |
8 | E_NOTICE | 執行時的通知。指令碼發現可能是一個錯誤,但也可能在正常執行指令碼時發生。 |
16 | E_CORE_ERROR | PHP 啟動時的致命錯誤。這就如同 PHP 核心的 E_ERROR。 |
32 | E_CORE_WARNING PHP | 啟動時的非致命錯誤。這就如同 PHP 核心的 E_WARNING。 |
64 | E_COMPILE_ERROR | 編譯時致命的錯誤。這就如同由 Zend 指令碼引擎生成的 E_ERROR。 |
128 | E_COMPILE_WARNING | 編譯時非致命的錯誤。這就如同由 Zend 指令碼引擎生成的 E_WARNING。 |
256 | E_USER_ERROR | 使用者生成的致命錯誤。這就如同由程式設計師使用 PHP 函式 trigger_error() 生成的 E_ERROR。 |
512 | E_USER_WARNING | 使用者生成的非致命錯誤。這就如同由程式設計師使用 PHP 函式 trigger_error() 生成的 E_WARNING。 |
1024 | E_USER_NOTICE | 使用者生成的通知。這就如同由程式設計師使用 PHP 函式 trigger_error() 生成的 E_NOTICE。 |
2048 | E_STRICT | 執行時的通知。PHP 建議您改變程式碼,以提高程式碼的互用性和相容性。 |
4096 | E_RECOVERABLE_ERROR | 可捕獲的致命錯誤。這就如同一個可以由使用者定義的控制程式碼捕獲的 E_ERROR(見 set_error_handler())。 |
8191 | E_ALL | 所有的錯誤和警告的級別,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 將作為 E_ALL的一部分)。 |
測試案例 | ||
``` | ||
//Disable error reporting | ||
error_reporting(0); |
//Report runtime errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);
//Report all errors
error_reporting(E_ALL);
### restore_error_handler()
作用
restore_error_handler() 函式恢復之前的錯誤處理程式。
該函式用於在通過 set_error_handler() 函式改變後恢復之前的錯誤處理程式。
該函式總是返回 TRUE。
用法
restore_error_handler()
測試案例
<?php
//custom error handler function
function customError($errno, $errstr, $errfile, $errline)
{
echo "Custom error: [$errno] $errstr
";
echo " Error on line $errline in $errfile
";
}
//set user-defined error handler set_error_handler("customError");
$test=2;
//trigger error if ($test>1) { trigger_error("A custom error has been triggered"); }
//restore built-in error handler restore_error_handler();
//trigger error again if ($test>1) { trigger_error("A custom error has been triggered"); } ?>
結果
Custom error: [1024] A custom error has been triggered
Error on line 14 in C:webfoldertest.php
Notice: A custom error has been triggered in
C:webfoldertest.php on line 21
### restore_exception_handler()
作用
restore_exception_handler() 函式恢復之前的異常處理程式。
該函式用於在通過 set_exception_handler() 函式改變後恢復之前的異常處理程式。
該函式總是返回 TRUE。
用法
restore_exception_handler()
測試案例
<?php restore_exception_handler();
throw new Exception('Uncaught Exception occured'); ?>
結果
Fatal error: Uncaught exception ‘Exception’ with message
‘Uncaught Exception occured’ in C:webfoldertest.php:4
Stack trace: #0 {main} thrown in C:webfoldertest.php on line 4
### set_error_handler()
作用
set_error_handler() 函式設定使用者自定義的錯誤處理函式。
該函式用於建立執行期間的使用者自己的錯誤處理方法。
該函式返回舊的錯誤處理程式,如果失敗則返回 NULL。
用法
set_error_handler(error_function,error_types)
error_function 必需。規定發生錯誤時執行的函式。
error_types 可選。規定在哪個錯誤報告級別會顯示使用者定義的錯誤。預設是 “E_ALL”。
error_function(error_level, error_message, error_file, error_line, error_context)
error_level 必需的。規定使用者自定義的錯誤的錯誤報告級別。必須是值數字。可能的錯誤報告級別詳見下面的表格。
error_message 必需的。規定使用者自定義的錯誤的錯誤訊息。
error_file 可選。規定發生錯誤的檔名。
error_line 可選。規定發生錯誤的行號。
error_context 可選。規定指向活躍符號表中發生錯誤的陣列。換句話說,error_context 將包含一個說明每個變數引發錯誤的存在範圍的陣列。
E_WARNING 執行時非致命的錯誤。沒有停止執行指令碼。
E_NOTICE 執行時的通知。指令碼發現可能是一個錯誤,但也可能在正常執行指令碼時發生。
E_USER_ERROR 使用者生成的致命錯誤。這就如同由程式設計師使用 PHP 函式 trigger_error() 生成的 E_ERROR。
E_USER_WARNING 使用者生成的非致命錯誤。這就如同由程式設計師使用 PHP 函式 trigger_error() 生成的 E_WARNING。
E_USER_NOTICE 使用者生成的通知。這就如同由程式設計師使用 PHP 函式 trigger_error() 生成的 E_NOTICE。
E_RECOVERABLE_ERROR 可捕獲的致命錯誤。這就如同一個可以由使用者定義的控制程式碼捕獲的 E_ERROR(見 set_error_handler())。
E_ALL 所有的錯誤和警告的級別,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 將作為 E_ALL的一部分)。
測試案例
<?php
//error handler function
function customError($errno, $errstr, $errfile, $errline)
{
echo "Custom error: [$errno] $errstr
";
echo " Error on line $errline in $errfile
";
echo "Ending Script";
die();
}
//set error handler set_error_handler("customError");
$test=2;
//trigger error if ($test>1) { trigger_error("A custom error has been triggered"); } ?>
結果
Custom error: [1024] A custom error has been triggered
Error on line 19 in C:webfoldertest.php
Ending Script
### set_exception_handler()
作用
set_exception_handler() 函式設定使用者自定義的異常處理函式。
該函式用於建立執行期間的使用者自己的異常處理方法。
該函式返回舊的異常處理程式,如果失敗則返回 NULL。
用法
set_exception_handler(exception_function)
exception_function 必需。規定未捕獲的異常發生時呼叫的函式。
該函式必須在呼叫 set_exception_handler() 函式之前定義。這個異常處理函式需要需要一個引數,即丟擲的 exception 物件。
測試案例
<?php <?php function myException($exception) { echo "Exception: " , $exception->getMessage(); }
set_exception_handler('myException');
throw new Exception('Uncaught Exception occurred'); ?>
結果
Exception: Uncaught Exception occurred
```
參考
本作品採用《CC 協議》,轉載必須註明作者和本文連結