首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从输入文本文件回显到li表

问从输入文本文件回显到li表
EN

Stack Overflow用户
提问于 2015-07-13 15:51:21
回答 1查看 650关注 0票数 1

我有来自用户的输入,这是我从方法Post获得的,我把输入放到文本文件中。用分号(;)分隔。每个新输入在文本文件中形成一个新行。现在,我想从文本文件中读取输入,并在HTML中将其回显给li。我有问题要用正确的方式来回应。

下面是输入PHP代码:

代码语言:javascript
复制
    <?php
    if (isset($_POST["submit"])) {
        $title = $_POST['movieTitle'];
        $rating = $_POST['movieRatings'];
        $plot = $_POST['plot']; 
    $handle = fopen('movies.txt', 'a');
    $names_array = array("$title","$rating","$plot");
    $string = implode(';', $names_array);
    fwrite($handle, $string."\n");          
    fclose($handle);
    }   
    ?>

上面的代码工作得很好,现在我从文本文件读取时会在下面提到这个问题。

代码语言:javascript
复制
 <ul class="movies" id="Movies">
  $filename = 'movies.txt';

    $handle = fopen($filename, 'r');

    $datain = fread($handle, filesize($filename)); 

    $names_array = explode(';', $datain);

    foreach($names_array as $name)
    {
    echo '<li>'.$name.'</li>';
    }
    ?>
    </ul>

这个回声是从新行中读取的所有文件中删除的。如下所示:

代码语言:javascript
复制
<li>Movie Title1</li>
<li>Movie Ratings1</li>
<li>Plot 1</li>
<li>Movie Title2</li>
<li>Movie Ratings2</li>
<li>Plot 2</li>
<li>Movie Title3</li>
<li>Movie Ratings3</li>
<li>Plot 3</li>

我希望文本文件中的每一行都有相同的li行,如下所示:

代码语言:javascript
复制
<li>Movie Title1, MovieRatings1, Plot1</li>
<li>Movie Title2, MovieRatings2, Plot2</li>
<li>Movie Title3, MovieRatings3, Plot3</li>

等等,我对PHP很陌生,所以我不太擅长PHP中的数组和循环。提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-13 15:56:29

您应该首先在换行符上explode() "\n"文件。循环遍历该数组,并在内循环中对分号进行explode()。如下所示:

代码语言:javascript
复制
$lines = explode("\n", $datain);
foreach($lines as $line){
    list($title,$ratings,$plot) = explode(";", $line, 3);
    // echo <li>s with $title,$ratings,$plot here
}

有必要研究一下PHP的fgetcsv()和fputcsv()函数,它们的设计正是为了完成您手动执行的任务。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31387920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档