你能阅读包含关键字的多行CSV吗?

时间:2014-08-21 20:06:15

标签: php csv

我是php的新手。我想知道是否有可能读取包含关键字的多行csv文件并在php中显示它们?

我有一个以下结构的csv文件:

keyword1, data, other data, etc
keyword2, another data, other etc
keyword1, something, something etc

所以我希望在我的php页面中打印出来的是:

keyword1, data, other data, etc
keyword1, something, something etc

这可能吗? 感谢所有答案

3 个答案:

答案 0 :(得分:0)

修改代码以创建html表。 未经测试,如果它不起作用,请告诉我。

<?php

 $output = '<table>';
 $searchFor = "1124";

 $fp = fopen("data.csv", "r");

    // Read file


$matching_rows = array();

 while ( ($row = fgetcsv($fp,1000,",")) !== FALSE ) {

      // Search for keyword
      if ( (array_search( $searchFor,$row,TRUE) ) !== false ) {
           $matching_rows[] = '<tr><td>' . implode('</td><td>',$row) . '</td></tr>';

      }
 }
if(!empty($matching_rows) ) {
  $output = '<table><tbody>' . "\n" . implode("\n\t",$matching_rows) . "\n" . '</tbody></table>';
}

echo '<div class="display">';
echo $output;
 echo '</div>';
?>

答案 1 :(得分:-1)

$results = array();
$handle = fopen("csvFile.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    if( strpos ( $data , 'keyword1' ) !== false){
        $results[] = $data;
    }
}

答案 2 :(得分:-1)

我发现这对我的问题很有效。

<?php

 $output = "";
 $searchFor = "1124";

 $fp = fopen("data.csv", "r");

    // Read file
 $txt = fgets($fp);

 while ( !feof( $fp ) ) {

      // Search for keyword
      if ( strpos( $txt, $searchFor ) !== false ) {


           $output .= $txt.'<br />';

      }

      $txt = fgets($fp);
 }
echo '<div class="display">';
 echo $output;
 echo '</div>';
?>

但是如果不是昏迷分隔值,我会非常高兴我可以将它们加载到html表中,这样它们看起来会更好一些。我尝试将$ output。= $ txt与表标签连接起来,但只有break行似乎在这个配置中有效。任何线索,我怎么能实现这一目标?干杯:)