Php 在“文件”下拉列表中仅列出图像文件
我有下面的代码,它将列出images文件夹中的所有文件。如何仅列出列表中的某些扩展名,如jpg、png、gifPhp 在“文件”下拉列表中仅列出图像文件,php,Php,我有下面的代码,它将列出images文件夹中的所有文件。如何仅列出列表中的某些扩展名,如jpg、png、gif <select name="s1"> <option value="" selected="selected">-----</option> <?php foreach(glob(dirname(__FILE__) . '/images/*') as $filename) { $filename =
<select name="s1">
<option value="" selected="selected">-----</option>
<?php
foreach(glob(dirname(__FILE__) . '/images/*') as $filename) {
$filename = basename($filename);
echo "<option value='" . $filename . "'>".$filename."</option>";
}
?>
</select>
-----
您只需要一个if
语句和一个条件来过滤结果。正则表达式在这里特别有用。像这样的东西可以满足您的需求:
<select name="s1">
<option value="" selected="selected">-----</option>
<?php
foreach(glob(dirname(__FILE__) . '/images/*') as $filename){
$filename = basename($filename);
if (preg_match('/\.(jpg|png|gif)$/i', $filename)) {
echo "<option value='" . $filename . "'>".$filename."</option>";
}
}
?>
</select>
-----
您只需要一个if
语句和一个条件来过滤结果。正则表达式在这里特别有用。像这样的东西可以满足您的需求:
<select name="s1">
<option value="" selected="selected">-----</option>
<?php
foreach(glob(dirname(__FILE__) . '/images/*') as $filename){
$filename = basename($filename);
if (preg_match('/\.(jpg|png|gif)$/i', $filename)) {
echo "<option value='" . $filename . "'>".$filename."</option>";
}
}
?>
</select>
-----
接受2个参数。第二个参数标志的文档显示:
大括号-展开{a,b,c}以匹配“a”,“b”或“c”
有关更多信息,请参阅:
foreach(glob(dirname(__FILE__) . '/images/*.{jpg,png,gif}', GLOB_BRACE) as $filename){
$filename = basename($filename);
echo "<option value='" . $filename . "'>".$filename."</option>";
}
foreach(glob(dirname(_文件).'/images/.{jpg,png,gif}',glob大括号)作为$filename){
$filename=basename($filename);
回显“$filename.”;
}
接受两个参数。第二个参数标志的文档显示:
大括号-展开{a,b,c}以匹配“a”,“b”或“c”
有关更多信息,请参阅:
foreach(glob(dirname(__FILE__) . '/images/*.{jpg,png,gif}', GLOB_BRACE) as $filename){
$filename = basename($filename);
echo "<option value='" . $filename . "'>".$filename."</option>";
}
foreach(glob(dirname(_文件).'/images/.{jpg,png,gif}',glob大括号)作为$filename){
$filename=basename($filename);
回显“$filename.”;
}
谢谢,但我收到了解析错误:语法错误,if中出现意外的“/”(preg|u match(/\(jpg|png|gif)$/i,$filename)){@gtroop Oops;省略引号。请查看我的编辑。@gtroop很乐意提供帮助。如果您的要求足够简单,它也很好,可能会更好。谢谢,但我收到了分析错误:语法错误,if(preg|u match(/\(jpg | png | gif)$/i,$filename)中意外出现“/”{@gtroop-Oops;省略引号。请查看我的编辑。@gtroop很乐意提供帮助。它也很好,如果您的要求足够简单,它可能会工作得更好。