InfoQ

交流

讨论:哪位高手进来看一下

作者 franky 发布于 2003-09-00 分类:php基础编程

一个文本站内搜索的程序,其中确定文件绝对路径的一段如下: if (is_dir($path."/".$filename) && ($filename != ".") && ($filename != "..")) { //echo "


".$newpath."


"; 我的问题不在程序本身,我想问一下,如何把文件的扩展名缩小一下。比如说扩展名含txt跟list的可以显示(比如这样的文件abc.list0、abc.list1、abc.txt),其他扩展名的就不可以显示(比如abc.php)。 也就是说,如何让$filename里面含list和txt?



逛论坛交流哪位高手进来看一下

加入书签
digg+,
reddit+,
del.icio.us+,
dzone+

10 条回复

回复

很多方法,简单的substr取他格式。。。.. 发表人 KnightE 发表于 09月01日
这样可以就可以了么? $a=substr($fi.. 发表人 franky 发表于 09月01日
如果不小心把php的源文件读出来就惨了,.. 发表人 franky 发表于 09月01日
我本来有段现成代码的,可不在手头上 发表人 KnightE 发表于 09月01日
用glob函数 发表人 tmyu 发表于 09月01日
QUOTE: 最初由 KnightE 发布 .. 发表人 franky 发表于 09月01日
对读取的文件名用正则判断后缀是否符合.. 发表人 cube316 发表于 09月01日
cube316好久不见了 正则是偶最头疼.. 发表人 franky 发表于 09月01日
foreach (glob("{*.txt,*.list}",GLOB_.. 发表人 tmyu 发表于 09月01日
谢谢楼上的朋友 如果按照你的思路,.. 发表人 franky 发表于 09月01日
  1. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 KnightE

    很多方法,简单的substr取他格式。。。比较

  2. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 franky

    这样可以就可以了么?
    $a=substr($filename,1,3);
    if(($a=="txt") or ($a=="list")){};

  3. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 franky

    如果不小心把php的源文件读出来就惨了,所以来这里问问大家.想找一个比较安全的方法。

  4. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 KnightE

    我本来有段现成代码的,可不在手头上

  5. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 tmyu

    用glob函数

  6. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 franky


    QUOTE:
    最初由 KnightE 发布
    [B]我本来有段现成代码的,可不在手头上 [/B]

    源代码我有,但是可以搜索一切文本类型的文件(txt.htm.asp.php.cgi.chm.hlp.),我就想限制一下,只显示txt文件和list文件(这两个扩展名的文件是我存放数据的文件)。
    我就想问问,按照KnightE的思路,在合适的位置放上
    $a=substr($filename,1,3);
    if(($a=="txt") or ($a=="list")){};
    这样的代码,是不是可行

  7. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 cube316

    对读取的文件名用正则判断后缀是否符合你的要求,然后加入到显示的数组中去。

  8. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 franky

    cube316好久不见了
    正则是偶最头疼的地方啦----其实我也是在研究别人的代码。这段站内搜索程序中$newpath = $path."/".$filename;
    也就是说$filename就是指的扩展名,而我只要扩展名为.txt或者.list,所以是不是没有必要用正则呢?直接用substr比较一下扩展名里的前三个字符是否为txt或者list就可以了。
    我是这样想的,也不太懂,你再帮我考虑考虑。
    上海这两天的天气真要命,寝室里跟蒸笼一样:blink:

  9. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 tmyu

    foreach (glob("{*.txt,*.list}",GLOB_BRACE) as $filename) {
    echo "$filename size " . filesize($filename) . " ";
    }

  10. 返回顶部

    Re: 哪位高手进来看一下

    2003年09月01日 发表人 franky

    谢谢楼上的朋友 如果按照你的思路,我把程序做如下修改,你看有问题么? 原函数: function get_msg($path) { global $key, $i; $handle = opendir($path); while ($filename = readdir($handle)) { //echo $path."/".$filename."
    "; $newpath = $path."/".$filename; if (is_file($newpath)) { $fp = fopen($newpath, "r"); $msg = fread($fp, filesize($newpath)); fclose($fp); match_show($key, $msg, $newpath, $filename); } if (is_dir($path."/".$filename) && ($filename != ".") && ($filename != "..")) { //echo "


    ".$newpath."


    "; get_msg($path."/".$filename); } [/COLOR] } closedir($handle); return $i; } 修改后的函数: .... if (is_dir($path."/".$filename) && ($filename != ".") && ($filename != "..")&&(glob("{*.txt,*.list}",GLOB_BRACE) as $filename)) { //echo "


    ".$newpath."


    "; get_msg($path."/".$filename); } ........




  11. 我有话要讲:(可以匿名发表, 发广告的有多远请滚多远!!!)

    昵称: 请输入验证码:


抢着回答

有没有不出现错误提示的方法

当用户输入的时间不符合数据库中的字段类型时,有没有不出现错误...

这句中的"DESC"是什么意思?

//读出投票项数据 $result=mysql_db_query($mysqldb,"sel...

php4.3.1的安装问题

在C:/php/php-4.3.1/sapi/没有php4apache2.dll文件 而在C:/php...

pear中能不能用pop3来收信?

在pear中,可以使用pear来发信,比如用sendmail或者smtp,但是好...

测试打印机的一个问题

用PRINT 命令给网络打印机发送一个打印命令,怎么才能判断该打印机...

我的MYSQL怎么链接不上?

我在输入MYSQL -U ROOT -P时,出现提示输入密码,这里的密码应该是...

mysql数据怎样可以转为sqlserver数据?

问题见上面。。。

我一个滚动条.样子是..

我要一个滚动条.就像QQ中的滚动条一样,如果好友不多就不出现,如果...

为什么我的图象显示不出来?谢谢!!

这是一个显示图像的文件,我PHP安装目录下的 extensions 子目录里...

为什么会出现代码?

程序传上去了,index.php可以访问到 但其他的页面都是php代码了...

[]