PHP sscanf 函式

PHP sscanf 函式可以根據指定的格式來解析一個字串變數,並將解析出來的部分格式化,也就是說可以利用 sscanf 函式,將一個字串中的某些部分解析並讀取出來,然後根據虛要的格式進行處理,最終獲得需要的字串資料,其效果與 printfsprintf 等函式相反,雖然都是透過正規表示式來處理格式化字串的動作,但 printfsprintf 等函式將字符插入字串中,而 sscanf 函式將字符由字串中解析出來。

PHP sscanf 函式基本語法

mixed sscanf ( $string , $format , $args1 , $args2 , $args3 , $args4 ... )


sscanf 函式小括號內第一個參數 $string 為原始字串,也就是即將被解析讀取的字串,第二個參數 $format 是要使用的格式化,sscanf 函式會根據 $format 的格式,將 $string 字串解析,並將解析的結果,透過第三個開始的 $args 來儲存,$format 轉換格式請參考 sprintf 函式上的參數表,需注意的是 sscanf 函式不支援 F、g、G、b 等格式。$string 與 $format 兩個參數是必填項目,後方的 $args 儲存參數則是選擇項目,數量自己決定,但是如果 $format 參數中的百分比(%)數量超過 $args 數目,會出現錯誤訊息。

PHP sscanf 函式範例
<?php
$string = "This is float 3.2 and this is integer 8";
sscanf($string,"This is float %f and this is integer %d",$float,$integer);
var_dump($float,$integer);
?>
以上範例輸出結果如
float(3.2) int(8)
範例中的字串 $string 共有兩個數字,分別為浮點數 3.2 以及整數 8,我們透過 sscanf 函式的格式化功能,將這兩個數字抓出來,要解析出浮點數 3.2,必須在 $format 中,將格式化寫為 %f,要解析出數字 8,則必須在 $format 中,將格式寫為 %d,再透過 var_dump 將解析結果的資料類型與資料內容一次顯示於網頁上,float(3.2) 代表為浮點數 3.2,int(8) 則代表整數 8。

相關主題研究
© Copyright wibibi.com 網頁設計教學百科 基礎的網頁設計規劃、資料庫與程式設計 Since 2012