PHP 从 txt 文件中读取数字
PHP read numbers from a txt file
我在尝试从 txt 文件中读取 foat 数字时遇到了一些问题。
txt文件是这样的:
10.4 20.5 30.1 40.33 50.12
60.56
我需要将这些数字存储在数组中,这是我正在使用的 php 代码:
$result = array();
$fp = fopen("./test.txt", "r");
fscanf($fp, "%d\n", $count);
$numbers = explode(" ", trim(fgets($fp)));
foreach ($numbers as &$number)
{
$number = floatval($number);
array_push($result,$number);
echo $php_errormsg;
}
fclose($fp);
但是我只有一个号码,最后一个,我试了很多方法,但我暂时无法自己解决,谁能帮助我?
fscanf 从文件中读取一行,然后 fgets 读取第二行。
尝试注释掉 fscanf 行。
这应该适合你:
(这里我只是将您的文件读取为 csv 文件,其中 fgetcsv()
以 space 作为分隔符)
<?php
$h = fopen("test.txt", "r");
if($h) {
while (($data = fgetcsv($h, 1000, " ")) !== FALSE) {
foreach($data as $num)
$numbers[] = $num;
}
fclose($h);
}
print_r($numbers);
?>
输出:
Array ( [0] => 10.4 [1] => 20.5 [2] => 30.1 [3] => 40.33 [4] => 50.12 [5] => 60.56 )
$result = array();
$fp = fopen("./test.txt", "r");
while (($lineData = fgetcsv($fp, 1000, " ")) !== FALSE) {
$result = array_merge($result, $lineData);
}
fclose($fp)
如果文件只包含数字和换行符,您可以尝试一次全部阅读(当然如果文件不是很大):
$result = explode(" ", str_replace(array(" ", "\n", "\r"), " ", file_get_contents("./test.txt")));
如果您确实需要将它们转换为浮点数:
array_walk($result, 'floatval');
$tok = strtok(file_get_contents("./test.txt"),"\n\r\t ");
for($a=array();$tok!==false;$tok=strtok("\n\r\t ")) $a[] = floatval($tok);
var_dump($a);
我在尝试从 txt 文件中读取 foat 数字时遇到了一些问题。 txt文件是这样的:
10.4 20.5 30.1 40.33 50.12
60.56
我需要将这些数字存储在数组中,这是我正在使用的 php 代码:
$result = array();
$fp = fopen("./test.txt", "r");
fscanf($fp, "%d\n", $count);
$numbers = explode(" ", trim(fgets($fp)));
foreach ($numbers as &$number)
{
$number = floatval($number);
array_push($result,$number);
echo $php_errormsg;
}
fclose($fp);
但是我只有一个号码,最后一个,我试了很多方法,但我暂时无法自己解决,谁能帮助我?
fscanf 从文件中读取一行,然后 fgets 读取第二行。
尝试注释掉 fscanf 行。
这应该适合你:
(这里我只是将您的文件读取为 csv 文件,其中 fgetcsv()
以 space 作为分隔符)
<?php
$h = fopen("test.txt", "r");
if($h) {
while (($data = fgetcsv($h, 1000, " ")) !== FALSE) {
foreach($data as $num)
$numbers[] = $num;
}
fclose($h);
}
print_r($numbers);
?>
输出:
Array ( [0] => 10.4 [1] => 20.5 [2] => 30.1 [3] => 40.33 [4] => 50.12 [5] => 60.56 )
$result = array();
$fp = fopen("./test.txt", "r");
while (($lineData = fgetcsv($fp, 1000, " ")) !== FALSE) {
$result = array_merge($result, $lineData);
}
fclose($fp)
如果文件只包含数字和换行符,您可以尝试一次全部阅读(当然如果文件不是很大):
$result = explode(" ", str_replace(array(" ", "\n", "\r"), " ", file_get_contents("./test.txt")));
如果您确实需要将它们转换为浮点数:
array_walk($result, 'floatval');
$tok = strtok(file_get_contents("./test.txt"),"\n\r\t ");
for($a=array();$tok!==false;$tok=strtok("\n\r\t ")) $a[] = floatval($tok);
var_dump($a);