我目前正在制作一个下拉列表,但在下拉列表中,假设我只想包含 .txt 扩展名文件,因此任何其他扩展名(如 .php .jpg 或任何其他扩展名)都不会出现在下拉列表中。我怎样才能尽可能简单地做到这一点?
另一个问题是如果文件夹没有任何 .txt 扩展名文件,我想发出警告,则会显示错误消息。因此,即使文件夹中有其他 .jpg .php 或任何其他文件,只要文件夹中没有 .txt 文件,就会显示警告。
谁能帮我一把?
这就是我所做的,但它只显示了一个最后没有 .txt 的下拉列表,但它仍然会在下拉列表中显示其他随机文件。
if(!(is_dir("./aaa")))
{
die("Must create a folder first, sorry");
}
$lists = scandir("./aaa");
echo "<form action=\"./page2.php\" method=\"get\">";
echo "<select>";
foreach($lists as $list)
{
if(($list == ".") || ($list == ".."))
{
continue;
}
echo "<option value=\"";
echo basename($list,".txt");
echo "\">";
echo basename($list,".txt");
echo "</option>";
}
echo "</select>";
echo "</form>";
编辑添加了带有 $hasTxt 的 substr
<?php
if(!(is_dir("./aaa")))
{
die("Must create a <strong>aaa</strong> folder first, sorry");
}
echo "<form action=\"./page2.php\" method=\"get\">";
echo "<select name=\"aaa\">";
$aaa_files = scandir("./aaa");
$hastxt = false;
foreach($aaa_files as $file_list)
{
if(($file_list == ".") || ($file_list == ".."))
{
continue;
}
if(strlen($file_list)>4 && strtolower(substr($file_list, -4))!='.txt')
{
continue;
}
else
{
$hastxt = true;
echo "<option value=\"";
echo basename($file_list,".txt");
echo "\">";
echo basename($file_list,".txt");
echo "</option>";
}
}
echo "</select>";
echo "<br/><input type=\"submit\">";
echo "</form>";
if($hastxt == false)
{
echo "Must create text files first, sorry";
die();
}
?>
如果文件夹没有任何 txt 文件,这就是我现在拥有的脚本会发生的情况。
如果没有 txt 文件但当然没有箭头,这就是我真正想要的