显示某些文件夹内容


Display certain folder content

是否可以在网页中仅显示文件夹中的某些内容?我已经设法使用'php'脚本与readdir显示所有的文件夹内容作为一个列表:

<?php
    $dir = opendir('y1');
    echo '<ul>';
    while ($read = readdir($dir))
    {
        if ($read!='.' && $read!='..')
        {
            echo '<li><a href="y1/'.$read.'"><span class="clicks">'.$read.'</span></a></li>';
        }
    }
    echo '</ul>';
    closedir($dir); 
?>

是否有可能使此代码仅显示例如所有以字母"n"开头的文件?

是的,您可以使用substr检查第一个字母。

<?php
$dir = opendir('y1');
echo '<ul>';
while ($read = readdir($dir))
{
    if (substr($read,0,1)=='n') //<--here
    {
        echo '<li><a href="y1/'.$read.'"><span class="clicks">'.$read.'</span></a></li>';
    }
}
echo '</ul>';
closedir($dir); 
?>

您对'.''..'的原始检查不再需要,因为它们也不以n开始

试试这个来获取那些从n开始的files

条件if ($read[0]=='n')像这样

<?php
    $dir = opendir('y1');
    echo '<ul>';
    while ($read = readdir($dir))
    {
        if ($read[0]=='n')
        {
            echo '<li><a href="y1/'.$read.'"><span class="clicks">'.$read.'</span></a></li>';
        }
    }
    echo '</ul>';
    closedir($dir); 
?>

您可以使用preg_match(),它使用正则表达式,如果在字符串中找到模式,该正则表达式将返回true或false。

<?php
$dir = opendir('y1');
echo '<ul>';
while ($read = readdir($dir))
{
    if (preg_match("/^[n]/i", $read))
    {
        echo '<li><a href="y1/'.$read.'"><span class="clicks">'.$read.'</span></a></li>';
    }
}
echo '</ul>';
closedir($dir); 
?>

使用这意味着您可以调整代码以仅显示包含任何模式的文件。

例如以.png.jpg结尾的文件