0

PHPについてよく知らず、送信するたびに配列から新しい値を取得するにはどうすればよいか疑問に思います。5つのフィールドを持つフォームがあり、フォームは情報をtxtファイルに送信します。その後、最初の2つの項目のみを取得します。フォームが送信されてリストアイテムに表示されますが、ループがどのように機能するかを理解できないようです。ヒントはありますか?

今のところ私はこれを持っていて、txtファイルの最初のテキストブロックを正常に出力しますが、フォームを再度送信しても何も起こりません、何が問題なのですか?

$myFile = 'demo.txt';
$content = file_get_contents('demo.txt');
$content_array = explode(";", $content);

<div id="info_php">
       <ul id="list_php">
            <?php for($i=count($content_array); $i < 1; $i--);
             echo '<li>'; echo $content_array[0]; echo'</li>';?>
        </ul>       
</div>
4

3 に答える 3

1

構文にエラーがあり、forループはセミコロンで終了し$content_array[0]、ループ変数を使用する代わりに、最初の要素のみをとして出力しています。これを試して:

 <?php 
 for($i=count($content_array); $i < 1; $i--) {
     echo '<li>'; echo $content_array[$i]; echo'</li>'; 
 }
 ?>
于 2013-03-25T15:55:25.073 に答える
1

最初に行う必要があるのは、ループを次のように変更することです。

<?php
    $count = count($content_array); // total rows
    $limit = $count > 2 ? $count - 2 : 0; // at most we want two rows
    for ($i = $count; $i > limit; $i--) {
        echo '<li>' . $content_array[$i - 1] . '</li>';
    }
?>

これにより、txtファイルの最後の2行が取得されます

于 2013-03-25T15:58:36.853 に答える
0

これだよ!

<?php
    $myFile = 'demo.txt';
    $content = file_get_contents($myFile);
    $content_array2 = explode("\n", $content);      
?>


<?php for($i = 0; $i < count($content_array2); $i++):
       $values = explode(';', $content_array2[$i]);?>
       <li><?php echo $values[0].$values[1]; ?></li>
<?php endfor; ?>
于 2013-03-25T22:37:46.967 に答える