一、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-hant/n/246044.html
微信掃一掃
支付寶掃一掃