2

如果我在我的表单中输入 Test1 输出是 5x Test1,如果我在我的表单中输入 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> 
4

2 回答 2

2

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

E:

if ( $found ) {

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

break;

}

您设置了 $found = true 并且从不重置它。所以它会保持真实,因为文件没有通过每个进一步的循环都会运行到那个if($found)statemanet

于 2013-02-28T08:50:25.190 回答
0

我不明白 "$file_arr = preg_split ( "/\n/" , $file_content ); foreach ( $file_arr as $item ) {" 部分的含义

这似乎是以前没有 fgetcsv 的代码实现的一些残留物。

于 2013-02-28T08:56:28.307 回答