有人可以告诉我为什么我的代码回显整个数组而不是我在$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;
}
}
}
答案 0 :(得分: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
答案 1 :(得分:1)
而不是给出一个变量的回声:
print_r($list);
答案 2 :(得分:1)
这一行:
fwrite($fh, $data);
将所有数组元素写入文件之前;它应该是
fwrite($fh, $list);
编辑:
只需直接访问元素,如果它只是两个;
$fileinfo_array[0];
$fileinfo_array[1];
或者您可以使用array_slice();
答案 3 :(得分:0)
这一行:
fwrite($ fh,$ data);
将所有数组元素写入文件之前;它应该是
fwrite($ fh,$ list);
编辑:
只需直接访问元素,如果它只是两个;
$ fileinfo_array [0]; $ fileinfo_array [1];
或者您可以使用array_slice();