初識PHP(二)經常使用函數

在此記錄一些經常使用庫函數和經常使用語法以便查閱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 中首次出現的數字位置。性能

  haystackui

  在該字符串中進行查找。編碼

  needle

  若是 needle 不是一個字符串,那麼它將被轉換爲整型並被視爲字符的順序值。

  offset

  若是提供了此參數,搜索會從字符串該字符數的起始位置開始統計。和 strrpos() strripos()不同,這個偏移量不能是負數。

 

  2.1.2 substr — 返回字符串的子串

   string substr ( string $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() 將進返回分隔後的非空部分。
  PREG_SPLIT_DELIM_CAPTURE
  若是這個標記設置了,用於分隔的模式中的括號表達式將被捕獲並返回。
  PREG_SPLIT_OFFSET_CAPTURE
  若是這個標記被設置, 對於每個出現的匹配返回時將會附加字符串偏移量. 注意:這將會改變返回數組中的每個元素, 使其每一個元素成爲一個由第 0  個元素爲分隔後的子串,第1個元素爲該子串在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
  要壓入的值。
  返回值:返回處理以後數組的元素個數。
   2.3  索引制定文件/添加頭文件
  
  2.3.1 include 語句包含並運行指定文件
  被包含文件先按參數給出的路徑尋找,若是沒有給出目錄(只有文件名)時則按照  include_path 指定的目錄尋找。若是在 include_path 下沒找到該文件則 include 最後纔在調用腳本文件所在的目錄和當前工做目錄下尋找。若是最後仍未找到文件則 include 結構會發出一條警告;這一點和 require 不一樣,後者會發出一個致命錯誤

  若是定義了路徑——不論是絕對路徑(在 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 。

   
  3.2.2  json_decode — 對 JSON 格式的字符串進行解碼
   mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0]]] )
  接受一個 JSON 格式的字符串而且把它轉換爲 PHP 變量 
  json
  待解碼的  json string 格式的字符串。該函數只能接受 UTF-8 編碼的數據
  assoc
  當該參數爲  TRUE 時,將返回 array 而非 object 。
  depth
  設置最大深度。 必須大於0。
  options
  二進制掩碼常量。只支持JSON_BIGINT_AS_STRING
 

  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 參數指定了所要求到該流的訪問類型。能夠是如下:

fopen() 中 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 — 讀取文件(可安全用於二進制文件)

    string fread ( resource $handle , int $length )

  fread() 從文件指針 handle 讀取最多 length 個字節。 該函數在趕上如下幾種狀況時中止讀取文件:

  • 讀取了 length 個字節
  • 到達了文件末尾(EOF)

  handle

  文件系統指針,是典型地由 fopen() 建立的 resource(資源)。

  length

  最多讀取 length 個字節。

  返回值:返回所讀取的字符串, 或者在失敗時返回 FALSE

  

  3.3.4   fwrite — 寫入文件(可安全用於二進制文件)

    int fwrite ( resource $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

  

   3.3.6  file_get_contents —  將整個文件讀入一個字符串
   string file_get_contents ( string $filename [, bool $use_include_path = false [, resource$context [, int $offset = -1 [, int $maxlen ]]]] )
  和  file() 同樣,只除了 file_get_contents() 把文件讀入一個字符串。將在參數 offset 所指定的位置開始讀取長度爲maxlen 的內容。若是失敗,file_get_contents() 將返回 FALSE
  該函數無需打開文件和關閉文件流!很是方便。
   file_get_contents() 函數是用來將文件的內容讀入到一個字符串中的首選方法。若是操做系統支持還會使用內存映射技術來加強性能。 
  若是要打開有特殊字符的 URL (好比說有空格),就須要使用  urlencode() 進行 URL 編碼。
 
  
參數 描述
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;?>

相關文章
相關標籤/搜索