你把编码转换一下“$item = iconv("gbk", "utf-8", $item);”gbk转utf-8
顺序执行,你那样写$item只获取了一次值,在循环中不会更新$item的值,就会死循环了
不是打开文件夹就可以吗?
上面是代码图,下面是效果图
while ($item = readdir($handle)!==false) 这个写错了,正确的这样写:
while (($item = readdir($handle))!==false)
你的路径出错了。如果你的file.func.php放在file文件夹里面的话,第23行$path ='file';写成这样的话,在file文件夹里面没有file文件夹,所以为空。
while这里是不是要多加个括号,不然逻辑关系混乱。。 while(($item=readdir($handler))!==false)
什么问题?
一个警告,就是变量$arr没有先定义直接使用了,前面定义下就好了
ZendStudio
用来操作目录的。比如:你要用笔写作文,这个笔就是句柄,通过笔来操作,作文纸就是目录。(差不多这个意思吧??哈哈,我也是小白。)
因为要知道这个file是在哪个路径下的文件,不然随便给一个文件名你不知道在哪里,那怎么判断呢?
...
写代码不能马虎
if ($item!="."&&$item="..") { //这一行你少了个感叹号 if ($item!="."&&$item!="..") { //加上感叹号
那定义一个就行了呗
这个属于个人命名习惯,就好像学习了面向对象的类命名就会变成dir.class.php和file.class.php,因为用的人多了,所以大家都这么用看起来别人的代码也会清楚理解
例如dir.class.php就代表是文件夹的处理类,如果单单只写dir.php可能看到文件名就不好理解了....
so
并不是连接的意思
ZendStudio
function readDirectory($dirname){
$dir_handle = opendir($dirname);
while( ($file = readdir($dir_handle)) !==false){
$dirFile = $dirname.'/'.$file;
if($dirFile!="." && $dirFile!=".."){
if(is_file($dirFile))
$arr ['file'][] = $dirFile;
if(is_dir($dirFile))
$arr ['dir'][] = $dirFile;
}
}
closedir($dir_handle);
return $arr;
}
$path = "file";
print_r(readDirectory($path));
?>
设置你的localhost的路径,
原来有两行代码放进while里面了,可以不先定义的,但对于dir和file的顺序就采取默认的,不能控制
“.”在Windows和类Unix系统中表示当前目录;
“..”表示当前目录的上一级目录。
这个应该是防止别人恶意破坏吧
这个不是错误,PHP是弱类型语言,变量可以不声明直接使用
报的Notice你可以通过配置PHP配置文件php.ini,搜索error_reporting=E_ALL&~E_NOTICE,重启服务器之后就没了
^-^...
没用过这个编辑器
我用的notepad++和sublime
一般来说直接点击就好了- -""
超过了脚本最大执行时间,可以通过修改php配置文件中的max_execution_time = -1,就没有限制了
^-^...
解决了,用迅雷下不了的,直接另存就OK了^_^