列出带前缀的特定文件

时间:2017-07-01 14:20:38

标签: php html

您好我想列出所有具有前缀myfile的特定文件 - ..

这是我当前的代码......并且没有列出任何文件

   <select name="s1">
        <option value="" selected="selected">-----</option>
        <?php 
            foreach(glob(dirname(__FILE__) . '/*') as $filename){
                $filename = basename($filename);
               // if (preg_match('/\.(php)$/i', $filename)) {
                    if (preg_grep('~^myfile-.*\.php$~', $filename)) {
                    echo "<option value='" . $filename . "'>".$filename."</option>";
                }
            }
        ?>

如果我使用此...列出了所有文件

 if (preg_match('/\.(php)$/i', $filename)) {

如果使用此

,则不会列出任何文件
if (preg_grep('~^myfile-.*\.php$~', $filename)) {

3 个答案:

答案 0 :(得分:1)

为什么要这么难?

If(substr($filename, 0, 7) == "myfile-"){
    echo "<option value='" . $filename . "'>".$filename."</option>";
}

Substr查看前七个字符并查看它&#34; myfile - &#34;

答案 1 :(得分:1)

最短路:

foreach (glob(dirname(__FILE__)."myfile-*.php") as $filename) {
        echo "<option value='" . $filename . "'>".$filename."</option>";
    }

答案 2 :(得分:0)

我想出来..但是......谢谢大家

<select name="s1">
      <option value="" selected="selected">-----</option>
        <?php 
           foreach(glob(dirname(__FILE__) . '/myfile-*.{php}', GLOB_BRACE) as $filename){
       $filename = basename($filename);
       echo "<option value='" . $filename . "'>".$filename."</option>";
    }
        ?>
    </select>