回答編集履歴

1 その後確かめたことを追記しました。

MakotoIshizawa

MakotoIshizawa score 32

2019/09/24 12:34  投稿

うまく表示できていたときのコードを以前の質問からコピペして、色々試してみました。
結論を言うと、うまくいっていたコードの表示部分の頭に$filname="keijiban";がありました。
冒頭でも同じ定義をしていたために、余計なものと思い削除しました。
恐らくそれがいけなかったようです。
header( 'Location: keijiban.php' );
 exit;
が邪魔したのでしょうか?
(その後 header( 'Location: keijiban.php' );  
 exit;を削除し、該当箇所の$filename = "keijiban.txt";を削除してみたところうまくいきました。  
同時に、更新で空投稿されるようにもなりましたが)  
よくわかりませんが結果的には、$filname="keijiban";を再定義することでうまくいきました。
未定義の$filenameをforeachしたためにNULLだったのかもしれません。
うまくいったコード
```php
$filename = "keijiban.txt";
if ( is_file( $filename ) ) {
 $ret_array = file( $filename );
 foreach ( $ret_array as $value ) {
   $bunkatu = explode( "<>", $value );
   foreach ( $bunkatu as $value2 ) {
     echo str_replace($search , $replace, $value2 )."<br>\n";
   }
 }
}else{
   echo "まだ投稿はありません";
}
```
質問文の中の該当箇所
```php
<?php
   var_dump($filename);
if ( file_exists( $filename ) ) {
foreach ( $ret_array as $value ) {
 $bunkatu = explode( "<>", $value );
 foreach ( $bunkatu as $value2 ) {
   echo $value2 . "<br>\n";
 }
}
} else {
 echo "まだ投稿はありません";
}
?>
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る