php //计算出两个文件的相对路径即path2相对于$path1的相对路径 // http://www.manongjc.com/article/1342.html function get_relative_path($path1,$path2){ $arr1 = explode(DIRECTORY_SEPARATOR,dirname($path1)); $arr2 = explode(DIRECTORY_SEPARATOR,dirname($path2)); $length = count($arr2); for($i = 0; $i < $length; $i++){ if($arr1[$i] != $arr2[$i]){ //进行路径匹配 break; } } if($i == 0){ //根目录不同 return '不在同一个目录中'; }else if($i != 0 && $i < $length){ //在同一个个目录下 $separator = array_fill(0, ($length-$i), '..'); return(implode(DIRECTORY_SEPARATOR, array_merge($separator, array_slice($arr1, $i)))); }else if($i == $length){ //路径完全相同 http://www.manongjc.com/article/1343.html return '.'; } } $path1 = 'F:\Apache\www\temp\php_demo\demo.md'; //参照路径path1 $path2 = 'F:\Apache\www\temp\php_demo\demo.md'; $path3 = 'F:\Apache\www\temp\sd\ss.d\sdsfd'; $path4 = 'G:\FFOutput'; var_dump(get_relative_path($path1,$path2)); var_dump(get_relative_path($path1,$path3)); var_dump(get_relative_path($path1,$path4)); ?>
技术上面应用了三层结构,AJAX框架,URL重写等基础的开发。并用了动软的代码生成器及数据访问类,加进了一些自己用到的小功能,算是整理了一些自己的操作类。系统设计上面说不出用什么模式,大体设计是后台分两级分类,设置好一级之后,再设置二级并选择栏目类型,如内容,列表,上传文件,新窗口等。这样就可以生成无限多个二级分类,也就是网站栏目。对于扩展性来说,如果有新的需求可以直接加一个栏目类型并新加功能操作










