这是我的代码,用于检查我的.csv文件的一行是否包含特定名称,但它不起作用.
我认为它与if语句有关.
$file_handle = fopen("sources.csv", "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
if ($line_of_text[0] = 'paul') {
echo 'Found';
}
}
fclose($file_handle);
我正在尝试检查sources.csv文件,名称为“Paul”.
出于技术原因,我无法使用像MySQL这样的数据库.
解决方法:
由于您尚未提供文件样本,因此我提交以下内容作为替代方案.
请注意,在您目前的代码中,您使用单个等号=分配而不是使用==或===进行比较,只是说作为FYI.
if($line_of_text [0] =’paul’)应该好像读($line_of_text [0] ==’paul’)
假设以下.csv格式(即使没有逗号也可以工作)并且区分大小写,请参阅有关不区分大小写搜索的脚注.
Paul, Larry, Robert
码:
<?php
$search = "Paul";
$lines = file('sources.csv');
$line_number = false;
while (list($key, $line) = each($lines) and !$line_number) {
$line_number = (strpos($line, $search) !== FALSE);
}
if($line_number){
echo "Results found for " .$search;
}
else{
echo "No results found for $search";
}
脚注:
对于不区分大小写的搜索,请使用stripos()
$line_number = (stripos($line, $search) !== FALSE);
在…上找到行号
为了给你找到它的行号:
$line_number = (strpos($line, $search) !== FALSE) ? $count : $line_number;
或(不区分大小写)
$line_number = (stripos($line, $search) !== FALSE) ? $count : $line_number;
然后只需回显$line_number;