1、经常在写路径的时候突然不知道改用正斜杠还是反斜杠,测试发现有时候两个可以通用,有时候则不可以,有谁有总结过的麻烦贴出来共享下。
2、偶然看到一个函数is_dir(filename) ,函数功能是判断给定文件名是否是一个目录,请问什么才是目录,请具体给出个例子说明?我是在一个文件上传类中看到的,搞不明白为什么要加这么一个判断,有什么作用? public function upload($savePath ='')
{
//如果不指定保存文件名,则由系统默认
if(empty($savepath)) {
$savePath = $this->savePath;
}
// 检查上传目录
if(!is_dir($savePath)) {
// 检查目录是否编码后的
if(is_dir(base64_decode($savePath))) {
$savePath = base64_decode($savePath);
}else{
$this->error = '上传目录'.$savePath.'不存在';
return false;
}
}else {
if(!is_writeable($savePath)) {
$this->error = '上传目录'.$savePath.'不可写';
return false;
}
}
2、偶然看到一个函数is_dir(filename) ,函数功能是判断给定文件名是否是一个目录,请问什么才是目录,请具体给出个例子说明?我是在一个文件上传类中看到的,搞不明白为什么要加这么一个判断,有什么作用? public function upload($savePath ='')
{
//如果不指定保存文件名,则由系统默认
if(empty($savepath)) {
$savePath = $this->savePath;
}
// 检查上传目录
if(!is_dir($savePath)) {
// 检查目录是否编码后的
if(is_dir(base64_decode($savePath))) {
$savePath = base64_decode($savePath);
}else{
$this->error = '上传目录'.$savePath.'不存在';
return false;
}
}else {
if(!is_writeable($savePath)) {
$this->error = '上传目录'.$savePath.'不可写';
return false;
}
}
为什么要判断 确保你要上传的文件夹存在 不然移动到那去?var_dump(is_dir('a_file.txt')) . "\n";
var_dump(is_dir('bogus_dir/abc')) . "\n";var_dump(is_dir('..')); //one dir up
你到LINUX下就会有区别了,所以还是都用反斜杠吧
答:主要是windows和linux环境区别! win下面物理路径是\ ,linux下是/ .问题2:偶然看到一个函数is_dir(filename) ,函数功能是判断给定文件名是否是一个目录,请问什么才是目录,请具体给出个例子说明?我是在一个文件上传类中看到的,搞不明白为什么要加这么一个判断,有什么作用?
答:目录在windows和linux下的精确定义都不同.不过简单点的话你可以把他们都理解成是可以装文件和其他目录的结点.类似于文件夹.至于你在3楼说的这个问题,是用于判断当前路径是否是个目录,相当于文件夹!这样你就清楚怎么回事了吧!在linux下后缀名是无效的,可以任意取.这点和win下面不一样!
他这么写目的就是防止$savePath传进来这个值是 base64_encode编码过的
win和linux都能识别
//DIRECTORY_SEPARATOR是php常量 ,路径斜杠问题解决
define('DS', DIRECTORY_SEPARATOR);
目录在windows和linux下的精确定义都不同.不过简单点的话你可以把他们都理解成是可以装文件和其他目录的结点.类似于文件夹.至于你在3楼说的这个问题,是用于判断当前路径是否是个目录,相当于文件夹!这样你就清楚怎么回事了吧!在linux下后缀名是无效的,可以任意取.这点和win下面不一样!