我是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
这可能吗? 感谢所有答案
答案 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行似乎在这个配置中有效。任何线索,我怎么能实现这一目标?干杯:)