程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 初識PHP(二)常用函數,初識php函數

初識PHP(二)常用函數,初識php函數

編輯:關於PHP編程

初識PHP(二)常用函數,初識php函數


在此記錄一些常用庫函數和常用語法以便查閱

一、PHP手冊

   php手冊中文地址 http://php.net/manual/zh

二、一些常用操作

  2.1字符串操作

  2.1.1 strpos — 查找字符串首次出現的位置

  mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

  返回 needle 在 haystack 中首次出現的數字位置。

  haystack

  在該字符串中進行查找。

  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.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;
?>

  


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved