过滤以名称中的点开头的文件(正则表达式,elfinder + codeigniter)

时间:2015-03-05 12:18:24

标签: codeigniter filter connector elfinder

我在这里搜索了一些关于我的问题的主题,但我没有找到或有些不适合我。

我在codeigniter中使用elfinder,然后在连接器文件中我需要过滤以dot caracter开头的文件名。我想这样做,因为filemanager显示.tmb(缩略图)文件夹,我不想...我只想过滤所有以点开头的文件名:

.tmb 的.htaccess 。夹 。文件 .any文件或文件夹

我尝试了很多正则表达式('pattern'=>'/ ^ TEST $ /'),但它对我不起作用。

谢谢!

    public function elfinder_init(){
    if ($this->session->userdata('name')) {

        $ruta = trim($this->input->get("path"));

        $opts = array(
             //'debug' => true,
                'roots' => array(
                            array(
                                'driver' => 'LocalFileSystem',
                                'path'   => set_realpath($ruta),
                                'URL'    => site_url($ruta) . "/",
                                'accessControl' => 'access',
                                'defaults' => array('read' => true, 'write' => true),
                                'encoding' => '',
                                'attributes' => array(
                                        array(
                                                'pattern' => '/^TEST$/',
                                                'hidden' => true,
                                                'read'    => true,
                                                'write'   => true,
                                                'locked'  => false
                                        )
                                )
                                // more elFinder options here
                            )
                )
        );



        $this->load->library('elfinder_lib', $opts);

    }
}

1 个答案:

答案 0 :(得分:2)

我找到了一种使用下一个模式隐藏缩略图文件夹的方法:

'pattern' => '/\.tmb$/',

虽然我认为最好的方法是为所有以dot开头的文件名使用其他模式,而不仅仅是.tmb文件夹......

我也试过在php文件中使用下一个代码:

if (preg_match("/^\./", ".tmb")) 
    echo "The name has a dot";
else
    echo "The name hasn't dot";

它工作正常......为什么不能在模式中工作?我不明白...... xd