PHP逐行读取和检索数据


php read line by line and retrieving data

我有一个列表(data1.php),其中包含如下数据:

06/26/2015,33.51718,-81.71856,0.0,4001,15:39:57,39256,1,0.0,13.6,
06/26/2015,33.51721,-81.71858,0.0,4001,15:40:57,39256,1,0.0,13.7,
06/26/2015,33.51720,-81.71860,0.0,4001,15:41:57,39256,1,0.0,13.6,
06/26/2015,33.51719,-81.71858,0.0,4001,15:42:58,39256,1,0.0,13.7,
06/26/2015,33.51720,-81.71860,0.0,4001,15:43:58,39256,1,0.0,13.6,

我试图检索只有第二和第三个数据(后期和长)。输出文件的结果如下:

Lat:33.51718
Long:-81.71856
Lat:33.51720
Long:-81.71860
Lat:33.51720
Long:-81.71860

每隔一行就跳过。这是我的代码。请帮助。

<?php
    $fn = fopen("data1.php",'r') or die("fail to open file");
    $fp = fopen('output.php', 'w') or die('fail to open output file');
    while($row = fgets($fn)) {
      echo fgets($fn). "<br";
      $num = explode(",", $row);
      $lat = $num[1];
      $long =  $num[2];
       echo "<p>Lat: {$lat}</p>";
      echo "<p>Long: {$long}</p>";
      fwrite($fp, "Lat:$lat'n");
      fwrite($fp, "Long:$long'n");
    }
    fclose($fn);
    fclose($fp);
?>

你的问题就在这里:

 while($row = fgets($fn)) {
echo fgets($fn). "<br";

从文件中读取一行,然后立即读取并回显另一行,而不实际处理它。去掉echo,就可以了

试试这个:

<?php
$fn = fopen("data1.php",'r') or die("fail to open file");
$fp = fopen('output.php', 'w') or die('fail to open output file');
$stop = "0";
while($row = fgets($fn)) {

$num = explode(",", $row);

$lat = $num[1];
$long =  $num[2];
if($stop == "1" or $stop == "2"){
echo "<p>Lat: {$lat}</p>";
echo "<p>Long: {$long}</p>";
fwrite($fp, "Lat:$lat'n");
fwrite($fp, "Long:$long'n");
}else{}
$stop++;
   }
fclose($fn);
fclose($fp);
  ?>