从文件中读取行并输出作为下拉列表的选项

时间:2011-04-16 22:36:27

标签: php forms post transform

我有$ data包含这样的内容并经常更改:

backup 2011-04-15 16:39:18.559965.zip
backup 2011-04-15 16:39:56.289656.zip
backup 2011-04-15 16:41:34.463754.zip
backup 2011-04-15 16:41:54.089134.zip
backup 2011-04-15 16:42:18.742616.zip
backup 2011-04-16 13:12:33.083622.zip
backup 2011-04-16 13:14:53.387308.zip
backup 2011-04-17 00:30:32.591461.zip

我如何才能将其转换为下拉列表,以便人们可以选择,我可以将结果用作$ _POST ['file']?

2 个答案:

答案 0 :(得分:4)

  1. 使用 fopen()
  2. 阅读文字
  3. 使用 explode()
  4. 将文本拆分为数组
  5. 使用 foreach()
  6. 来使用槽阵列 选项标签之间的
  7. echo 元素。
  8. 修改

    我没有提供任何代码,因为您应该能够按照上述步骤自行编写代码。只需使用Google了解这些功能的工作原理。你只能通过自己实现来学习PHP。不要指望人们为你编写完整的脚本。

    无论如何,这应该有效:)

    $path = "files.txt";
    $file = fopen($path, 'r');
    $data = fread($file, filesize($path));
    fclose($file);
    
    $lines =  explode(PHP_EOL,$data);
    echo '<select name="file">';
    foreach($lines as $line) {
      echo '<option value="'. urlencode($line).'">'.$line.'</option>';
    }
    echo '</select>';
    

    您也可以使用file_get_contents()而不是fopen()。

    $data = file_get_contents("files.txt");
    

    修改

    添加了像Wiseguy推荐的 file()

    $lines = file('files.txt');
    echo '<select name="file">';
    foreach($lines as $line) {
      echo '<option value="'. urlencode($line).'">'.$line.'</option>';
    }
    echo '</select>';
    

答案 1 :(得分:1)

$lines = explode($data);
echo '<select name="file">';
foreach($lines as $line) {
  echo '<option value="', $line, '">', $line, '</option>';
}
echo '</select>';