搜索一个CSV随着PHP(Searching a CSV With PHP)

2019-10-17 08:01发布

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

Intel奔腾双T3400 @ 2.16GHz的,1322

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

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

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

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

随时提出东西会产生类似的结果。 我有MySQL,但是我没有权限从CSV导入表。

Answer 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) */

}


Answer 2:

我想通过一个CSV文件的每一行进行迭代,找到我要找的字,并从那里编译的结果。 这里的东西,让你开始:

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


文章来源: Searching a CSV With PHP