使用PHP搜索CSV

时间:2012-10-16 20:20:30

标签: php search csv lookup

我有一个大型CSV文件。第一列包含处理器的名称。第二,处理器的基准分数。 EG:

  

Intel Pentium Dual T3400 @ 2.16GHz,1322

使用PHP脚本,我想在第一列搜索一个字符串(EG。奔腾双T3400),并且(假设每次搜索只有一个结果,否则返回错误信息)创建一个包含该字符串的变量第二列的值。

我不知道这是否会有所帮助,但我有点希望看起来有点像这样:

$cpuscore = csvsearch(CSV_file,query_string,column#_to_search,column#_to_return)

其中$ cpuscore将包含与搜索查询匹配的处理器名称的分数。

随意提出可产生类似结果的内容。我有MySQL,但我没有从CSV导入表的权限。

2 个答案:

答案 0 :(得分:1)

您可以使用php函数fgetcsv(),http://php.net/manual/en/function.fgetcsv.php逐行遍历csv文件。例如:

$ch = fopen($path_to_file, "r");
$found = '';

/* If your csv file's first row contains Column Description you can use this to remove the first row in the while */
$header_row = fgetcsv($ch);

/* This will loop through all the rows until it reaches the end */
while(($row = fgetcsv($ch)) !== FALSE) {

    /* $row is an array of columns from that row starting at 0 */
    $first_column = $row[0];

    /* Here you can do your search */
    /* If found $found = $row[1]; */
    /* Now $found will contain the 2nd column value (if found) */

}

答案 1 :(得分:0)

我喜欢遍历csv文件的每一行并找到我正在寻找的单词,并从那里编译结果。这是让你入门的东西:

<?
$file=file('yourfilepath');
$list=array();
foreach($file as $value){
    if(stristr($value,'Intel Pentium Dual')){create your $cpuscore here}
}
print_r($result);
?>