php 验证用户输入

分开来写,也就是要两条正则表达式,一条验证目录路径,一条验证文件全路径。
具体要求如下:

验证目录路径的,可以这样想,把目录路径分成三部分:
  一,开始有一个盘符名称和一个冒号[a-zA-Z]: 这部分只会出现一次,必须有。例如 D:  
  二,然后是Windows的路径分隔符"\"和目录名 "/"认为是不合法 分隔符在正则表达式里是\\,目录名是至少一个的字母、数字、下划线,中间可以有0个或者多个空格 这部分可以出现0次或者多次。例如 \demo 或者\demo\program files
  三,最后还是一个路径分割符"\" 这部分只可以出现0次或者1次  

因此, D:\ D:\demo D:\demo\program files D:\demo\program files\ 都算合法的


验证文件全路径的,就是除了以上的目录路径外,最后文件扩展名任意,系统支持的文件名都可以。

自己试了好久,总是不对,望各位帮忙瞅瞅,谢谢

作者: dangjianghao   发布时间: 2011-06-10

还是没有看明白

作者: yaoxin125   发布时间: 2011-06-10

就是使用preg_match()函数,来验证客户端提交的数据,但是这个方法里面的正则,我测试了好多个,都是不行,想不明白为什么

作者: dangjianghao   发布时间: 2011-06-10

坐等高手

作者: xiaopeng0803   发布时间: 2011-06-10

别沉了噢。。。晕倒

作者: dangjianghao   发布时间: 2011-06-10

需要 使用'/([])\/([])/i'这样的形式吧?其实感觉 可以使用ereg

作者: yaoxin125   发布时间: 2011-06-10

PHP code

<?php
function check_path($path)
{
    $match="^[a-zA-Z]{1}:[ A-Za-z0-9\\_-]+$";
    if(ereg($match,$path))return true;
    else return false;
}

$str="x:\\abcdassadas das\\asdas12d44_aa-sxXA0Sd\\";
//$str="D:\\";
//$str="D:\\demo";
//$str="D:\\demo\\program files";
//$str="D:\\demo\\program files\\";
if(check_path($str))
{ 
    echo "Success!";
} 
else
{ 
    echo "Please try again!";
} 
?>

作者: futurecs   发布时间: 2011-06-10

测试地址
http://www.chinaltesummit.com/apps/xx.php

作者: futurecs   发布时间: 2011-06-10

测试好了说一声 我就删了

作者: futurecs   发布时间: 2011-06-10

谢谢哥们

作者: dangjianghao   发布时间: 2011-06-10