1

誰かが私のコードが私が宣言した2つの値だけではなく配列全体をエコーし​​ている理由を教えてもらえますか?私は$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;
}

編集:

これにより、ファイルが1行ずつ読み込まれ、配列が作成されます。

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

情報をエコーアウトしたいNex:

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

注:file_put_contentsを調べてください

于 2013-03-21T13:50:45.067 に答える
1

1つの変数のエコーを与える代わりに:

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

この行:

fwrite($fh, $data);

前にすべての配列要素をファイルに書き込みます。そのはず

fwrite($fh, $list);

編集 :

2つしかない場合は、要素に直接アクセスするだけです。

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

または、 array_slice()を使用できます;

于 2013-03-21T13:50:00.940 に答える
0

この行:

fwrite($ fh、$ data);

前にすべての配列要素をファイルに書き込みます。そのはず

fwrite($ fh、$ list);

編集 :

2つしかない場合は、要素に直接アクセスするだけです。

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

または、array_slice();を使用できます。

于 2013-09-05T15:28:02.413 に答える