1

有人可以告诉我为什么我的代码回显整个数组,而不是我在$list几乎不知道任何 php 中声明的两个值,所以有人可以告诉我有什么问题吗?

if(isset($_POST['button'])) {
    if( $_POST['filmnamn'] != "" && $_POST['betyg'] != "" && $_POST['link'] != "" && $_POST['photo'] != "" && $_POST['description'] != "") {
        $myFile = 'demo.txt';
        $titel = $_POST['filmnamn'] . ";" ;
        $betyg = $_POST['betyg'] . ";" ;
        $link = $_POST['link'] . ";" ;
        $photo = $_POST['photo'] . ";" ;
        $desc = $_POST['description'].PHP_EOL;
        $data = "$titel$betyg$link$photo$desc";
        $list = "$titel$betyg";
        $fh = fopen($myFile, 'a');
        fwrite($fh, $data);

        fclose($fh);

        $handle = fopen($myFile, 'r');
        $fileinfo = fread($handle, filesize($myFile));
        $fileinfo_array = explode(';', $fileinfo);
        foreach($fileinfo_array as $list){
            echo $list;
        }
    }
}
4

4 回答 4

3

您设置$list但随后将其覆盖在foreach.

$list = "$titel$betyg";

然后你做

foreach($fileinfo_array as $list){
    echo $list;
}

它成为数组的每个项目的位置。您可以echo直接$list使用或使用:

$list = explode(";", $list);
array_pop($list); //remove last blank item
foreach($list as $item){
    echo $item;
}

编辑:

这将逐行读取文件并构建一个数组

while (!feof($handle)) {
   $lines[] = fgets($handle);
}
fclose($handle);

接下来,您要回显信息:

foreach($lines as $list){
    //use my above code
}

注意:查看file_put_contents

于 2013-03-21T13:50:45.067 回答
1

而不是给出一个变量的回声:

print_r($list);
于 2013-03-21T13:49:18.787 回答
1

这一行:

fwrite($fh, $data);

您将之前的所有数组元素写入文件;它应该是

fwrite($fh, $list);

编辑 :

如果它只有两个,只需直接访问元素;

$fileinfo_array[0];
$fileinfo_array[1];

或者你可以使用array_slice()

于 2013-03-21T13:50:00.940 回答
0

这一行:

fwrite($fh, $data);

您将之前的所有数组元素写入文件;它应该是

fwrite($fh, $list);

编辑 :

如果它只有两个,只需直接访问元素;

$fileinfo_array[0]; $fileinfo_array[1];

或者你可以使用 array_slice();

于 2013-09-05T15:28:02.413 回答