一、fscanf函數概述
fscanf函數是PHP中經常用到的函數之一,可以將指定格式的數據由文件中讀取,並將讀取到的數據賦值給指定的變數。由於fscanf函數可以根據指定格式讀取數據,所以在讀取格式化數據時非常方便。
該函數的語法如下:
fscanf (resource $handle , string $format [, mixed &$... ] ) : mixed
其中,參數$handle指定要從中讀取數據的文件指針,參數$format指定格式字元串,可以由百分號(%)開頭的格式說明符和普通字元組成,表示讀取數據的類型及其順序。例如,%d表示讀取整數類型的數據,%f表示讀取浮點型數據。
fscanf函數返回的是讀取到的數據,如果讀取數據失敗或文件指針到達文件末尾,函數會返回false。
二、使用示例1:
以下示例展示了如何從文件中讀取一個整數和一個字元串,並將讀取到的數據賦值給對應的變數。
$file = fopen("data.txt", "r"); if ($file) { // 讀取一個整數和一個字元串 fscanf($file, "%d,%s", $int, $str); // 輸出讀取到的數據 echo "整數:".$int."
"; echo "字元串:".$str."
"; fclose($file); }
以上代碼會讀取data.txt文件的第一行數據,該行數據由一個整數和一個字元串組成,兩項數據之間用逗號隔開。讀取到的整數和字元串分別賦值給$int和$str變數,然後輸出變數的值。
三、使用示例2:
以下示例展示了如何從文件中讀取一組數值,並將讀取到的數據存放到數組中。
$file = fopen("data.txt", "r"); if ($file) { // 讀取一組數值 $arr = array(); while (!feof($file)) { fscanf($file, "%f", $value); array_push($arr, $value); } // 輸出讀取到的數據 foreach ($arr as $item) { echo $item."
"; } fclose($file); }
以上代碼會讀取data.txt文件中所有的浮點型數值,並逐個將其存入數組中。最後再將數組中的數據逐一輸出。
四、使用示例3:
以下示例展示了如何從文本文件的每一行讀取一個整數,並將讀取到的數據進行總和、平均數和最大值的計算。
$file = fopen("data.txt", "r"); if ($file) { $sum = 0; $cnt = 0; $max = 0; while (!feof($file)) { // 讀取一行整數 fscanf($file, "%d", $value); $sum += $value; $cnt++; $max = max($max, $value); } // 輸出計算結果 echo "總和:".$sum."
"; echo "平均數:".($sum/$cnt)."
"; echo "最大值:".$max."
"; fclose($file); }
以上代碼會讀取data.txt文件中每一行的整數,並將這些數值進行總和、平均數和最大值的計算。這些計算結果輸出到瀏覽器界面。
五、使用示例4:
以下示例展示了如何從文本文件中讀取一組數據,並將其中的數字進行排序。
$file = fopen("data.txt", "r"); if ($file) { $arr = array(); while (!feof($file)) { // 讀取一組數據 fscanf($file, "%s", $str); $arr = array_merge($arr, explode(",", $str)); } // 對數組中的數值進行排序 sort($arr, SORT_NUMERIC); // 輸出排序結果 foreach ($arr as $item) { echo $item."
"; } fclose($file); }
以上代碼會讀取data.txt文件中一組以逗號隔開的數據,並將其中的數字取出來組成一個數組。然後使用sort函數進行排序,最後將排序結果輸出到瀏覽器界面。
六、使用示例5:
以下示例展示了如何從標準輸入中讀取一組數據,並將其中的字元串進行格式化輸出。
// 從標準輸入中讀取一組數據 fscanf(STDIN, "%d %s", $id, $name); // 對字元串進行格式化輸出 printf("ID:%05d, 姓名:%-10s", $id, $name);
以上代碼會從標準輸入中讀取一組數據,其中包含一個整數和一個字元串。然後使用printf函數將字元串進行格式化輸出,格式化字元串中的%-10s表示輸出字元串時寬度為10,左對齊。
七、總結
fscanf函數在PHP中是一個非常有用的函數,可以方便地讀取各種格式的數據。通過本文的示例,我們可以掌握如何從文件中讀取數據、將數據存儲到數組中、計算數值、排序等操作。希望讀者可以將這些示例應用到自己的實際項目中,提高自己的開發效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/246044.html