【问题标题】:how can I get php to read 5 lines instead of the whole .csv file?如何让 php 读取 5 行而不是整个 .csv 文件?
【发布时间】:2012-02-21 16:16:41
【问题描述】:
$file_handle = fopen("ticker.csv", "r");  while (!feof($file_handle) ) {

  $line_of_text = fgetcsv($file_handle, 1024);

  print '<div class="ticker_price">'. $line_of_text[7] . "</div>";
                                                                                                       }
fclose($file_handle);

如何从 .csv 文件中的第 7 列读取有限数量的行

【问题讨论】:

标签: php


【解决方案1】:

对代码的小改动最多应为五行:

$maxLines = 5;
$file_handle = fopen("ticker.csv", "r");

for ($i = 0; $i < $maxLines && !feof($file_handle); $i++)
{
    $line_of_text = fgetcsv($file_handle, 1024);
    print '<div class="ticker_price">'. $line_of_text[7] . "</div>";
}
fclose($file_handle);

【讨论】:

    【解决方案2】:

    看看fgets()

    http://www.php.net/manual/en/function.fgets.php

    它应该正是你所需要的。

    【讨论】:

      【解决方案3】:

      您可以使用 fgets 逐行读取文件并使用 str_getcsv 解析每一行

      http://php.net/manual/en/function.fgets.php

      http://uk.php.net/manual/en/function.str-getcsv.php

      【讨论】:

        【解决方案4】:

        fgetcsv 函数将为您提供一个代表一行的数组。因此,要到达第 n 列,您必须遍历行并获取第 n 个值。

        所以如果你想要第 7 列到第 10 行,你可以这样做

        $row_from = 0;
        $row_to = 10;
        $row_counter = 0;
        $7th_array = array();
        while ($line = fgetcsv($file_handle, 1024)) {
           if ($row_from <= $row_counter && $row_to >= $row_counter)
              $7th_array[] = $line[6];
           $row_counter++;
        }
        

        您将拥有 $7th_array 中第 7 列的所有值。

        【讨论】:

          【解决方案5】:

          您可以使用 'file' 将文件读入一个数组,然后只需抓取每一行,将其分解为另一个数组,然后抓取您想要的索引。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-17
            相关资源
            最近更新 更多