从下拉菜单选择中显示文件的输出


Displaying output of file from a dropdown menu selection

首先,我对PHP完全陌生,但到目前为止,我喜欢它的可能性。

好的,这是我的问题。我有一个脚本,它会自动扫描一个文件夹,并在下拉菜单中显示该文件夹的文件名。

<?php
$dirname = "logs";
$dir = opendir($dirname);
echo '<select name="file2">';
echo '<option value="">Logfiles</option>';
while(false != ($file = readdir($dir)))
        {
            if(($file != ".") and ($file != ".."))
                {
        echo "<option value=".$file.">$file</option>";
                }
        }
                echo '</select>';
?>

到目前为止还不错,那部分还不错。

然后我有一段代码,可以显示所选文件的内容。

<?php
$content = file("filenamehere");
$data = implode("<br>",$content);
echo $data;
?>

这部分本身也很好。

我现在想把这两个脚本结合起来。这就是我完全迷失的地方。我已经尝试了将哪个变量作为"filenamehere"的各种组合,但我只能从下拉列表中选择,并在下拉按钮中呼应所选的文件名。我还无法真正获得代码的第二部分来显示我选择的文件的文件内容。我为$content变量尝试了类似("$file")的方法,但没有发生任何事情。

当然,任何其他的单一脚本解决方案也将是伟大的。我只需要能够扫描一个文件夹,在下拉列表中列出它的文件,一旦我选择了一个文件,我就希望它显示在页面上。

任何帮助都将不胜感激,因为我完全是PHP初学者。

干杯。

我假设您在一个页面中完成所有工作。我在select下拉列表中包装了一个form标签,并添加了一个提交按钮

echo '<form name="displayfile" action="" method="POST">';
echo '<select name="file2">';
echo '<option value="">Logfiles</option>';
while(false != ($file = readdir($dir)))
        {
            if(($file != ".") and ($file != ".."))
                {
        echo "<option value=".$file.">$file</option>";
                }
        }
                echo '</select>';
echo '<input type="submit" value="display file" />';
echo '</form>';

第二部分

<?php
    //file2 is the name of the dropdown
    $selectedfile = @$_POST['file2'];
    $content = file($selectedfile);
    $data = implode("<br>",$content);
    echo $data;
?>

希望这能帮助