加快阅读文件内容的方法

时间:2015-08-14 07:57:59

标签: php file loops

在脚本中,我正在使用ftp从远程服务器中提取csv。我在本地保存此文件,然后打开该文件。我遍历文件中与特定值匹配的所有内容。如果匹配,脚本可以继续。

说够了。让我们看一些代码...

$filename = 'ftp://.....';
$localCsv = '/tmp/'.date('Ymd').'.csv';
if (!file_exists($localCsv)) {
    $content = file_get_contents($filename);
    file_put_contents($localCsv, $content);
}

现在我们已经创建了文件。我们可以继续循环。

$handle = fopen($localCsv, "r");
while(!feof($handle)) {
  $rows[] = fgets($handle);
}
fclose($handle);

$results = array();
foreach ($rows as $rid => $row) {
    $columns = explode("\t", $row);
    $results[$columns[2]] = $columns;
}

if (array_key_exists($searchValue, $results)) {
    ... Continue script ...
}

这种方法只有一个小问题。它太慢了,几乎倒退了。

1 个答案:

答案 0 :(得分:1)

Heres一起烤了,也许那更快?

$handle = fopen($localCsv, "r");
$results = array();
while(!feof($handle)) {
    $columns = explode("\t", fgets($handle));
    $results[$columns[2]] = $columns;
    if ($columns[2] == $searchValue) {
        //SEARCH HIT
    }
}
fclose($handle);

如果那不起作用,你可以试试PHP中的csv-specific methods