使用UA-Parser库更新CSV列值

时间:2015-02-20 20:22:33

标签: php csv

我使用ua-parser library为电子表格列中的多个用户代理字符串标识设备系列。我遇到的问题是,我的功能似乎并没有真正运行。 detectAgent($ data [2])的值输出并不总是准确的。

这是一个代码示例。我觉得我必须遗漏一些与一次又一次创建对象的限制有关的事情。

提前感谢您的帮助。

<?php
require_once 'vendor/autoload.php';
use UAParser\Parser;

function detectAgent($ua) {
    $parser = Parser::create();
    $result = $parser->parse($ua);
    return $result->os->family;
}

$input_file = "input.csv";
$output_file = "output.csv";

if (($handle1 = fopen($input_file, "r")) !== FALSE) {
    if (($handle2 = fopen($output_file, "w")) !== FALSE) {
        while (($data = fgetcsv($handle1, 5000000, ",")) !== FALSE) {
           // Alter your data
            #print $data . "<br />";
           $data[2] = detectAgent($data[2]); //identify browser family

           // Write back to CSV format
           fputcsv($handle2, $data);
        }
        fclose($handle2);
    }
    fclose($handle1);
}
?>

1 个答案:

答案 0 :(得分:0)

这是一个愚蠢的错误。我在$data[2] = detectAgent($data[2]);写了错误的专栏。

如果其他人遇到同样的问题,代码现在正在运行,我发布了一个示例here