php - 如果我搜索 csv 文件,输出会出现几次

标签 php html csv

如果我在表单中输入 Test1,输出将是 Test1 的 5x,如果我在表单中输入 Test2,输出将是 4x Test2,等等。我该如何解决这个问题?

这是我的 csv 文件:

“纳姆”

“测试1”

“测试2”

“测试3”

“测试4”

这是我的搜索表单:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="test.css">
<title>test</title>
</head>
<body>
    <div id="container">
        <div id="logo"></div>
        <div id="header">
            <h1>Test Test Test</h1>
        </div>
        <div id="menu"></div>
        <div id="content">
            <form action="csv.php" method="post">
                <h3>Voer je naam in:</h3>
                <pre>
                    Naam:           <input type="text" name="Naam"><br>
                                    <input type= submit name="submit" value="Verzenden">
                </pre>
            </form>
        </div>
    </div>
    <div id="footer"></div>
</div>
</body>
</html>

这是输出页面:

<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="test.css">
<title>test</title>
</head>
<body>
    <div id="container">
        <div id="logo"></div>
        <div id="header">
            <h1>Test Test Test</h1>
        </div>
        <div id="menu"></div>
        <div id="content">
            <form method="get">
            <?php
            if ( !empty ( $_POST['Naam']) ) {
                $naam = $_POST['Naam'];      
                $file_handle = fopen("Test.csv", "rb");
                $found = false;
                while (!feof($file_handle) ) {
                    $parts = fgetcsv($file_handle,4096,",");
                    $file_arr = preg_split ( "/\n/" , $file_content );
                    foreach ( $file_arr as $item ) {
                        if ( $parts[0] == $naam ) {
                            $found = true;                  
                            $resultaat = $parts[0];
                            }
                        }
                    $parts[0] = ucwords(strtolower($parts[0]));
                    if ( $found ) {
                        Print "Naam: ". $resultaat; echo "<br>";
                        }
                    }
                if ( !$found ) {
                    print "Not found";
                    }
                fclose($file_handle);
                }  
            ?>
        </div>
        <div id="footer"></div>
    </div>
</body>
</html> 

最佳答案

如果您发现它,请添加 break; (循环中止)因为您继续处理文件并且 $found仍然如此。

E:

if ( $found ) {

Print "Naam: ". $resultaat; echo "<br>";

break;

}

您设置了 $found = true 并且从未重置它。所以它会保持正确,因为文件不会通过每个进一步的循环都会遇到 if($found)国家声明

关于php - 如果我搜索 csv 文件,输出会出现几次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15131111/

相关文章:

php在html中显示mysql表

html - 邮件客户端支持负 margin 值吗?

javascript - 如何为动态表创建弹出窗口

csv - 如何使用 dc.js 创建饼图

php - 从一页浏览文件并将其内容显示到另一页

php - CodeIgniter - 在网页上创建 "block"元素的正确方法

php - Mysql连接两个表并根据主键统计总记录

html - 并排居中的盒子

python - 无法解析使用 Flask 上传的 .csv 文件

java - 将数据库查询导出到 CSV 文件、PostgreSQL 和 Java