我正在使用ua解析器库来识别电子表格列中许多用户代理字符串的设备系列。我遇到的问题是,我的函数似乎并没有真正运行。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);
}
?>
$data[2] = detectAgent($data[2]);
中的列。
如果其他人遇到同样的问题,代码现在可以工作了,我在这里发布了一个例子。