21,886
社区成员
发帖
与我相关
我的任务
分享
<?php
//1. 写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
function my_scandir($dir){
//初始化目录数组
$files = array();
//当传入的路径是一个目录时
if(is_dir($dir)){
//打开目录句柄成功时
if($handle = opendir($dir)){
//循环取得目录下文件
while(($file = readdir($handle))!==false){
//当文件不为返回上级目录时执行 防止陷入无限循环
if($file != '.' && $file!='..'){
//检测拼装后的地址是否为目录
if(is_dir($dir.'/'.$file)){
//为目录时则需要再次调用当前函数递归并写入数组
$files[$file] = my_scandir($dir.'/'.$file);
} else {
//拼装地址不为目录时直接写入文件数组
$files[] = $dir.'/'.$file;
}
}
}
//释放打开的目录句柄
closedir($handle);
//返回遍历后该目录下的所有目录与文件信息
return $files;
}
}
}
//调用函数变量指定目录下的文件信息
print_r(my_scandir(__DIR__));
//2. 请写一个函数,实现以下功能:字符串'open_door' 转换成 'OpenDoor'、'make_by_id' 转换成 'MakeById'。
//申明函数 指定传入的变量为可引用
function changeStyle(&$str) {
/*
//替换字符串中下划线为空
$str = str_replace ( "_", "", $str );
//将字符串每个单词首字母大写
$str = ucwords ( $str );
//替换掉空格字符
$str = str_replace ( " ","", $str );
//直接返回以上操作运行后的字符串
return $str;
*/
//根据下划线将字符串分割为数组
$arrStr = explode('_',$str);
//循环该数据 取得其键名与键值
foreach($arrStr as $key => $value){
//重新定义该键名对应的键值为首字母大写后的内容
$arrStr[$key] = strtoupper(substr($value,0,1)).substr($value,1);
}
//将操作后的数组拼装成一个字符串变量并返回
return implode('',$arrStr);
}
//定义一个字符串内容
$s = "open_door";
//调用字符串格式化函数进行操作并打印
echo changeStyle ($s);