PHP Cron从URL读取CSV并转换为数组

时间:2016-02-15 23:51:25

标签: php csv cron

我正在尝试开发每月需要发送的电子邮件系统。所以我需要从php构建cron作业文件。任何人都知道如何从URL读取文件CSV或Excel文件,如:
http://yourdomain.com/cron.php?file=http://google.com/monthly.csv

当我尝试从url读取文件时我被困了。

这是我最近的代码:

<?php

$url = 'http://www1.intranet.com/reportingtool.asp?settings=var&export=ok';
$tmpfname = tempnam(sys_get_temp_dir());
file_put_contents(
    $tmpfname,
    file_get_contents($url)
);
?>

1 个答案:

答案 0 :(得分:1)

如果您正在处理远程文件,则应始终牢记

  • 您和遥控器之间的连接可能会中断,您无法获得完整的文件内容;
  • 文件太大,无法即时阅读。

在这两种情况下,使用file_get_contents()都不是一件好事:你应该考虑cURL functions。但是,如果上述问题可以忽略不计,那么您应该对以下内容感到满意(如example here建议的那样):

$url = 'http://www1.intranet.com/reportingtool.asp?settings=var&export=ok';
$tmpfname = tempnam(sys_get_temp_dir());
file_put_contents(
    $tmpfname,
    file_get_contents($url)
);
if (($handle = fopen($tmpfname, "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        // Do something with $data, which comes in
        // as an array of values from the current CSV line.
    }
}