有没有不出现错误提示的方法
当用户输入的时间不符合数据库中的字段类型时,有没有不出现错误...
作者 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?
逛论坛交流:哪位高手进来看一下
很多方法,简单的substr取他格式。。。比较
这样可以就可以了么?
$a=substr($filename,1,3);
if(($a=="txt") or ($a=="list")){};
如果不小心把php的源文件读出来就惨了,所以来这里问问大家.想找一个比较安全的方法。
我本来有段现成代码的,可不在手头上
用glob函数
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")){};
这样的代码,是不是可行
对读取的文件名用正则判断后缀是否符合你的要求,然后加入到显示的数组中去。
cube316好久不见了
正则是偶最头疼的地方啦----其实我也是在研究别人的代码。这段站内搜索程序中$newpath = $path."/".$filename;
也就是说$filename就是指的扩展名,而我只要扩展名为.txt或者.list,所以是不是没有必要用正则呢?直接用substr比较一下扩展名里的前三个字符是否为txt或者list就可以了。
我是这样想的,也不太懂,你再帮我考虑考虑。
上海这两天的天气真要命,寝室里跟蒸笼一样:blink:
foreach (glob("{*.txt,*.list}",GLOB_BRACE) as $filename) {
echo "$filename size " . filesize($filename) . "
";
}
谢谢楼上的朋友
如果按照你的思路,我把程序做如下修改,你看有问题么?
原函数:
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);
}
........
10 条回复
回复