Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 类似于带有csv文件的WHERE子句_Php_Csv - Fatal编程技术网

Php 类似于带有csv文件的WHERE子句

Php 类似于带有csv文件的WHERE子句,php,csv,Php,Csv,我有一个csv文件(分号分隔)并像这样将其输入php $file_handle = fopen("data.csv", "r"); while (!feof($file_handle) ) { $line_of_text = fgetcsv($file_handle, 0, ";"); print $line_of_text[0] . $line_of_text[1] ((...etc)); } fclose($file_handle); 我想打印/回显包含某个关键字的所有行。我希

我有一个csv文件(分号分隔)并像这样将其输入php

$file_handle = fopen("data.csv", "r");
while (!feof($file_handle) ) {
  $line_of_text = fgetcsv($file_handle, 0, ";");
  print $line_of_text[0] . $line_of_text[1] ((...etc));
  }
fclose($file_handle);
我想打印/回显包含某个关键字的所有行。我希望我能突然出现这样的情况:

"SELECT file_handle WHERE line_of_text[3] LIKE '%keyword'"
但是,据我所知,WHERE子句只是mySQL

因此,任何关于这方面的好建议都是非常受欢迎的:-)

编辑:
我的csv看起来像这样:
身份证件日期;名字;姓氏;值(整数);值(整数)
94; 15-11-14; 厕所;史密斯;329,00; 500

95; 15-11-15; 詹姆斯;琼斯;211,00; 600

尝试使用\u数组中的
功能过滤\u文本的数组$line\u

<?php
$row = 1;
$your_value_to_search = 'your_value';
if (($handle = fopen("data.csv", "r")) !== FALSE) {
   while (($line_of_text = fgetcsv($handle, 1000, ",")) !== FALSE) {
     if (in_array( $your_value_to_search, $line_of_text)) {
         $num = count($line_of_text);
         for ($c=0; $c < $num; $c++) {
            echo $line_of_text[$c] . "<br />\n";
         }
      }

      $row++;

  }
  fclose($handle);
}
?>


您要查找的函数是。@wogsland-“查找字符串中第一个子字符串出现的位置”,但我需要所有出现的位置?也许我应该添加;我需要回显包含关键字(-s)@RyanVincent的所有行-从未听说过SQLite!我似乎有一些阅读要做。然而,我确实担心我会陷入另一场混乱——但我肯定会试一试。看来我的主机只支持有限的SQLite。我必须使用PDO模块。。。一团糟两个新的边界同时出现,都是因为我无法使csv通配符工作(尽管在这个特殊的pickle的另一端可能会出现更多的问题),感谢到目前为止(还没有为我工作)。$c是我的csv集合中我的关键字(-s)所在的特定“列”吗?为什么fopen?1000中的1000值表示“打开”,而指定“最大行长度”仅用于示例。我已经更新了答案。缺少一个片段…更好:-)现在我可以搜索并打印第一个单元格的精确点击数(见上面的csv示例),这样我就可以得到94和该行的其余部分。如果我把那一行打印两次,我会把它打印两次。但我无法从其他细胞中得到信息。搜索“约翰”没有命中?我是否可以使用某种通配符来搜索“9%”会同时得到94和95?对不起。我错过了“空格”,所以我有很多“…;约翰;史密斯;…”。用空格搜索“约翰”让一切变得不同。不过,通配符还是不走运Jo“+”%”只是将所有内容都显示为“Jo%”或“Jo”。“%”如果我的答案有用,请给它打分和/或标记为接受。数组中的macth精确模式没有wildchart。对于wildchart,您可以使用正则表达式和回调函数使用preg_rep。。。