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;
}
}
解决方案 »
- 菜鸟求救
- 抛砖引玉,我对目前流行的zend framework和pear在概念上有一些混淆
- php自动类型转换,要遵循什么规则?
- 用php上传文件时候怎样在子页面里的值返回到父页面问题?
- 生成HTML的时候怎么样将相关新闻写到生成的HTML里面去啊
- 请问在mysql中如何有 in 语句
- 紧急啊!日期中自动显示第几周问题!
- win2000server下,可以配置成iis+asp+sqlserver和php+apache+mysql?
- 一个倡议,大家看看,支持欢迎留个回帖,对有其他好的建议的,我还有100分送上!!!
- php中如何调用cgi
- windows下面有类似sem_get函数可以用来互斥吗?
- 怎样从当前目录跳到上一级
为什么要判断 确保你要上传的文件夹存在 不然移动到那去?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下面不一样!