在此記錄一些經常使用庫函數和經常使用語法以便查閱php
1、PHP手冊正則表達式
php手冊中文地址 http://php.net/manual/zhjson
2、一些經常使用操做數組
2.1字符串操做安全
2.1.1 strpos — 查找字符串首次出現的位置ide
mixed strpos ( string $haystack
, mixed $needle
[, int $offset
= 0 ] )函數
返回 needle
在 haystack
中首次出現的數字位置。性能
haystack
ui
在該字符串中進行查找。編碼
needle
若是 needle
不是一個字符串,那麼它將被轉換爲整型並被視爲字符的順序值。
offset
若是提供了此參數,搜索會從字符串該字符數的起始位置開始統計。和 strrpos()、 strripos()不同,這個偏移量不能是負數。
2.1.2 substr — 返回字符串的子串
$string
, int $start
[, int $length
] )
string
由 start
和 length
參數指定的子字符串。
string
start
若是
start
是非負數,返回的字符串將從 string
的 start
位置開始,從 0 開始計算。例如,在字符串 「abcdef」 中,在位置 0 的字符是 「a」,位置 2 的字符串是 「c」 等等。
返回值:
若是 start
是負數,返回的字符串將從 string
結尾處向前數第 start
個字符開始。
若是 string
的長度小於或等於 start
,將返回 FALSE
。
2.1.3 str_split — 將字符串轉換爲數組
array split ( string $pattern
, string $string
[, int $limit
] )
將一個字符串轉換爲數組。
string
split_length
返回值:
若是指定了可選的 split_length
參數,返回數組中的每一個元素均爲一個長度爲 split_length
的字符塊,不然每一個字符塊爲單個字符。
若是 split_length
小於 1,返回 FALSE
。若是 split_length
參數超過了 string
超過了字符串 string
的長度,整個字符串將做爲數組僅有的一個元素返回。
2.1.4 explode — 使用一個字符串分割另外一個字符串
array explode ( string $delimiter
, string $string
[, int $limit
] )
此函數返回由字符串組成的數組,每一個元素都是 string
的一個子串,它們被字符串 delimiter
做爲邊界點分割出來。
delimiter
邊界上的分隔字符。
string
輸入的字符串。
limit
若是設置了 limit
參數而且是正數,則返回的數組包含最多 limit
個元素,而最後那個元素將包含 string
的剩餘部分。
若是 limit
參數是負數,則返回除了最後的 -limit
個元素外的全部元素。
若是 limit
是 0,則會被當作 1。
此函數返回由字符串組成的 array,每一個元素都是 string
的一個子串,它們被字符串 delimiter
做爲邊界點分割出來。
返回值:若是 delimiter
爲空字符串(""),explode() 將返回 FALSE
。 若是 delimiter
所包含的值在 string
中找不到,而且使用了負數的 limit
, 那麼會返回空的 array, 不然返回包含 string
單個元素的數組。
2.1.5 preg_split — 經過一個正則表達式分隔字符串
array preg_split ( string $pattern
, string $subject
[, int $limit
= -1 [, int $flags
= 0 ]] )
經過一個正則表達式分隔給定字符串.
pattern
用於搜索的模式,字符串形式。
subject
輸入字符串
limit
若是指定,將限制分隔獲得的子串最多隻有limit
個,返回的最後一個 子串將包含全部剩餘部分。limit
值爲-1, 0或null時都表明"不限制", 做爲php的標準,你可使用null跳過對flags
的設置。
flags
flags
能夠是任何下面標記的組合(以位或運算 | 組合):
PREG_SPLIT_NO_EMPTY
PREG_SPLIT_DELIM_CAPTURE
PREG_SPLIT_OFFSET_CAPTURE
subject
中的偏移量組成的數組。
pattern
邊界分隔 subject
後獲得 的子串組成的數組。
2.2 數組操做
2.2.1 array — 新建一個數組
array array ([ mixed $...
] )
建立一個數組。
語法「index => values」,用逗號分開,定義了索引和值。索引能夠是字符串或數字。若是省略了索引,會自動產生從 0 開始的整數索引。若是索引是整數,則下一個產生的索引將是目前最大的整數索引 + 1。注意若是定義了兩個徹底同樣的索引,則後面一個會覆蓋前一個。
返回值:返回根據參數創建的數組。參數能夠用 => 運算符給出索引。
2.2.2 array_push — 將一個或多個單元壓入數組的末尾(入棧)
int array_push ( array &$array
, mixed $var
[, mixed $...
] )
array_push() 將 array
當成一個棧,並將傳入的變量壓入 array
的末尾。array
的長度將根據入棧變量的數目增長。
array
var
若是定義了路徑——不論是絕對路徑(在 Windows 下以盤符或者 \ 開頭,在 Unix/Linux 下以 / 開頭)仍是當前目錄的相對路徑(以 . 或者 .. 開頭)——include_path 都會被徹底忽略。例如一個文件以 ../ 開頭,則解析器會在當前目錄的父目錄下尋找該文件。
當一個文件被包含時,其中所包含的代碼繼承了 include 所在行的變量範圍。從該處開始,調用文件在該行處可用的任何變量在被調用的文件中也均可用。不過全部在包含文件中定義的函數和類都具備全局做用域。
2.3.2 require 語句包含並運行指定文件
require 和 include 幾乎徹底同樣,除了處理失敗的方式不一樣以外。require 在出錯時產生 E_COMPILE_ERROR
級別的錯誤。換句話說將致使腳本停止而 include 只產生警告(E_WARNING
),腳本會繼續運行。
3、經常使用庫函數
3.1 時間
3.1.1 time — 返回當前的 Unix 時間戳
int time ( void )
返回自從 Unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到當前時間的秒數。
3.1.2 date — 格式化一個本地時間/日期
string date ( string $format
[, int $timestamp
] )
返回將整數 timestamp
按照給定的格式字串而產生的字符串。若是沒有給出時間戳則使用本地當前時間。換句話說,timestamp
是可選的,默認值爲 time()。
format
具體格式:http://php.net/manual/zh/function.date.php
3.1.3 date_default_timezone_get — 取得一個腳本中全部日期時間函數所使用的默認時區
string date_default_timezone_get ( void )
本函數返回默認時區
3.1.4 date_default_timezone_set — 設定用於一個腳本中全部日期時間函數的默認時區
bool date_default_timezone_set ( string $timezone_identifier
)
設定用於全部日期時間函數的默認時區。
timezone_identifier
時區標識符,例如 UTC 或 Asia/Shanghai(中國大陸選這個)。合法標識符列表見http://php.net/manual/zh/timezones.php
返回值:若是 timezone_identifier
參數無效則返回 FALSE
,不然返回 TRUE
。
3.2 JSON格式操做
3.2.1 json_encode — 對變量進行 JSON 編碼
string json_encode ( mixed $value
[, int $options
= 0 [, int $depth
= 512 ]] )
返回 value
值的 JSON 形式
value
待編碼的 value
,除了resource 類型以外,能夠爲任何數據類型。該函數只能接受 UTF-8 編碼的數據
options
二進制掩碼常量。具體見http://php.net/manual/zh/json.constants.php
depth
設置最大深度。 必須大於0。
返回值:成功則返回 JSON 編碼的 string 或者在失敗時返回 FALSE
。
$json
[, bool $assoc
= false [, int $depth
= 512 [, int $options
= 0]]] )
3.3文件操做
3.3.1 fopen — 打開文件或者 URL
resource fopen ( string $filename
, string $mode
[, bool $use_include_path
= false [, resource$context
]] )
fopen() 將 filename
指定的名字資源綁定到一個流上。
filename
若是 filename
是 "scheme://..." 的格式,則被當成一個 URL,PHP 將搜索協議處理器(也被稱爲封裝協議)來處理此模式。若是該協議還沒有註冊封裝協議,PHP 將發出一條消息來幫助檢查腳本中潛在的問題並將filename
當成一個普通的文件名繼續執行下去。
若是 PHP 認爲 filename
指定的是一個本地文件,將嘗試在該文件上打開一個流。該文件必須是 PHP 能夠訪問的,所以須要確認文件訪問權限容許該訪問。若是激活了安全模式或者 open_basedir 則會應用進一步的限制。
mode
mode
參數指定了所要求到該流的訪問類型。能夠是如下:
mode |
說明 |
---|---|
'r' | 只讀方式打開,將文件指針指向文件頭。 |
'r+' | 讀寫方式打開,將文件指針指向文件頭。 |
'w' | 寫入方式打開,將文件指針指向文件頭並將文件大小截爲零。若是文件不存在則嘗試建立之。 |
'w+' | 讀寫方式打開,將文件指針指向文件頭並將文件大小截爲零。若是文件不存在則嘗試建立之。 |
'a' | 寫入方式打開,將文件指針指向文件末尾。若是文件不存在則嘗試建立之。 |
'a+' | 讀寫方式打開,將文件指針指向文件末尾。若是文件不存在則嘗試建立之。 |
'x' | 建立並以寫入方式打開,將文件指針指向文件頭。若是文件已存在,則 fopen() 調用失敗並返回FALSE ,並生成一條 E_WARNING 級別的錯誤信息。若是文件不存在則嘗試建立之。這和給 底層的open(2) 系統調用指定 O_EXCL|O_CREAT 標記是等價的。 |
'x+' | 建立並以讀寫方式打開,其餘的行爲和 'x' 同樣。 |
use_include_path
若是也須要在 include_path 中搜尋文件的話,能夠將可選的第三個參數 use_include_path
設爲 '1' 或TRUE
。
context
上下文
返回值:
成功時返回文件指針資源,若是打開失敗,本函數返回 FALSE
。
錯誤提示:若是打開失敗,會產生一個 E_WARNING
錯誤。能夠經過 @ 來屏蔽錯誤。
3.3.2 fgets — 從文件指針中讀取一行
string fgets ( resource $handle
[, int $length
] )
從文件指針中讀取一行。
handle
文件指針必須是有效的,必須指向由 fopen() 或 fsockopen() 成功打開的文件(並還未由 fclose() 關閉)。
length
從 handle
指向的文件中讀取一行並返回長度最多爲 length
- 1 字節的字符串。碰到換行符(包括在返回值中)、EOF 或者已經讀取了 length - 1 字節後中止(看先碰到那一種狀況)。若是沒有指定 length
,則默認爲 1K,或者說 1024 字節。
返回值:
從指針 handle
指向的文件中讀取了 length
- 1 字節後返回字符串。 若是文件指針中沒有更多的數據了則返回FALSE
。
錯誤發生時返回 FALSE
。
3.3.3 fread — 讀取文件(可安全用於二進制文件)
$handle
, int $length
)
fread() 從文件指針 handle
讀取最多 length
個字節。 該函數在趕上如下幾種狀況時中止讀取文件:
length
個字節 handle
文件系統指針,是典型地由 fopen() 建立的 resource(資源)。
length
最多讀取 length
個字節。
返回值:返回所讀取的字符串, 或者在失敗時返回 FALSE
。
3.3.4 fwrite — 寫入文件(可安全用於二進制文件)
$handle
, string $string
[, int $length
] )
fwrite() 把 string
的內容寫入 文件指針 handle
處。
handle
文件系統指針,是典型地由 fopen() 建立的 resource(資源)。
string
將要寫入的字符串
ength
若是指定了 length
,當寫入了 length
個字節或者寫完了 string
之後,寫入就會中止,視乎先碰到哪一種狀況。
返回值:fwrite() 返回寫入的字符數,出現錯誤時則返回 FALSE
。
3.3.5 fclose — 關閉一個已打開的文件指針
bool fclose ( resource $handle
)
將 handle
指向的文件關閉。
handle
文件指針必須有效,而且是經過 fopen() 或 fsockopen() 成功打開的。
返回值:成功時返回 TRUE
, 或者在失敗時返回 FALSE
。
$filename
[, bool $use_include_path
= false [, resource$context
[, int $offset
= -1 [, int $maxlen
]]]] )offset
所指定的位置開始讀取長度爲maxlen
的內容。若是失敗,file_get_contents() 將返回 FALSE
。
參數 | 描述 |
---|---|
path | 必需。規定要讀取的文件。 |
include_path | 可選。若是也想在 include_path 中搜尋文件的話,能夠將該參數設爲 "1"。 |
context | 可選。規定文件句柄的環境。 context 是一套能夠修改流的行爲的選項。若使用 null,則忽略。 |
start | 可選。規定在文件中開始讀取的位置。該參數是 PHP 5.1 新加的。 |
max_length | 可選。規定讀取的字節數。該參數是 PHP 5.1 新加的。 |
例子:
<?php echo file_get_contents("test.txt"); ?>
<?php$homepage = file_get_contents('http://www.example.com/');echo $homepage;?>