php 自定义类 Clscandir

class Clscandir
{
    public $path;
	public $sorting_order;
	public $completeFiles ;
	public $completeDirs ;
	public $files;
	public $dirs ;
	public $filesDirs ;
	public $completeFilesDirs ;
    public function  __construct($path,$sorting_order=0){
		$this->scandir($path , $sorting_order);
		$this->get_complete_filesDirs();
		$this->get_complete_dirs();
		return $this->filesDirs;
	}
	public function  scandir($path,$sorting_order=0){
		$this->path = $path ;
		$this->sorting_order = $sorting_order;
		$this->filesDirs=scandir ( $path , $sorting_order ) ;
		return $this->filesDirs;
		//sort()升序  rsort()降序 ;
	}
	public function get_complete_filesDirs(){
		if(count($this->completeFilesDirs)==0){
			foreach($this->filesDirs as $k => $v ){
				$this->completeFilesDirs[] = $this->_format_name($this->path."/".$v);
			}
		}
		return $this->completeFilesDirs;

	}
	public function get_complete_dirs(){

		if(count($this->completeDirs)==0){
			foreach($this->completeFilesDirs as $k=>$v){

				if(is_dir($v)){
					$this->completeDirs[]=$v;
				}else{
					$this->completeFiles[]=$v;
				}
			}
		}
		return $this->completeDirs;

	}
	public function get_complete_files(){
		return $this->completeFiles;
	}
	private function iva(){}
	protected function ote(){}

	public function _scandir($path){
	    $dir = dir($path);
	    $retarr = array( ) ;
        while (($file = $dir->read()) !== false)
        {  $retarr[] =  ($file) ;  }
	    $dir->close();
	    $retarr["cwd"]=$this->_format_name(getcwd());
	    return $retarr;
    }

	public function _format_name($str){
	    return preg_replace (     ‘/\/{1,}/‘ , ‘/‘ ,
	           str_replace ( ‘\\‘ , ‘/‘ , $str )   ) ;
    }

	public function show(){
		echo "目录:<br>";
	    secho($this->completeDirs);
		echo "文件:<br>";
		secho($this->completeFiles);
	}
	public function demo(){
	    echo str_replace(array("\n"," "),array("<br>"," "),
	htmlspecialchars(‘     $dir=_default_em($_REQUEST["dir"],\"I:/AppServ/www/_doll/");
     $scandir=new CLsandir($dir,0);
     secho($scandir->get_complete_dirs());
     secho($scandir->get_complete_files());‘) )	;

	}
	public function each($arr,$callback=""){
		if(!is_array($arr))return ‘Is not array!‘;

		$retarr=array();
		foreach($arr as $k=>$v){
			if(""!=$callback)
			{$retarr[$k]=$callback($v);	}
			else
			{$retarr[$k]=$v;}
		}
		return $retarr;
	}

}

  

php 自定义类 Clscandir

时间: 2024-07-31 23:26:43

php 自定义类 Clscandir的相关文章

自定义类工厂方法

1.自定义工厂方法 什么是工厂方法(快速创建方法) 类工厂方法是一种用于分配.初始化实例并返回一个它自己的实例的类方法.类工厂方法很方便,因为它们允许您只使用一个步骤(而不是两个步骤)就能创建对象. 例如new 自定义类工厂方法的规范 (1)一定是+号开头 (2)返回值一般是instancetype类型 (3)方法名称以类名开头,首字母小写 示例 + (id)person; + (id)person { return [[Person alloc]init]; } + (id)personWit

C#中自定义类数组和结构数组的使用

如有雷同,不胜荣幸,若转载,请注明 最近在很多项目中发现很多时候给定的数组要实现某个逻辑或处理很是麻烦,一维数组,二维数组,,,等等需要经过n多转换,还不如自己写一个自定义数组,既方便又节省时间,以下是类数组,其实相当于定义了一个实体类一样,只是使用的时候写成数组的形式在用 Class RGB { public byte red; public byte green; public byte blue; public RGB(byte r,byte g,byte b) { this.red =

PyQt5在QWidget窗体中显示Qwidget的自定义类

[概览] 1.显示原生Qwidget 1)不使用布局(绝对定位) 2)使用布局 2.显示Qwidget的自定义类 1)不使用布局(绝对定位)       2)使用布局 [知识点] 1.显示原生Qwidget 1)不使用布局(绝对定位) 这种情况下,原生QWidget部件在实例化时必须带parent参数,当然parent = self,即:  self.widget = QWidget(self) 1 class MyWindow(QWidget): 2 def __init__(self, pa

js自定义类与对象

js中创建自定义类与创建对象:js创建类与AS3,java都有很大的不同,,,下面来看看他的庐山真面目..由于js也是一个面向对象的编程语言所以也存在像其他语言那样的创建自定义的类,和通过类来创建对象.js的类是有一下三部门组成1.构造函数2.属性3.方法自定义一个类: function MyClass(id,age,name) { this.id = id; this.age = age; this.name = name; } 从这个类的定义形式可以看出,js定义类的形式和其他语言有很大的不

我所理解cocos2d-x 3.6 lua -- Cocos如何绑定Lua自定义类

cocos2d-x 2.x 与 cocos2d-x 3.x 差异(tolua++) cocos2d-x在2.x版本里就是用toLua++和.pkg文件这么把自己注册进Lua环境里的,然而从cocos2d-x 3.x开始,用bindings-generator脚本代替了toLua++. bindings-generator脚本的工作机制是:        1.不用编写.pkg和.h文件了,直接定义一个ini文件,注册到Lua环境里的模块名是什么,就行了.        2.摸清了toLua++工具

关于在App_Code文件夹自定义类中Session无法使用

由于前台页面需要调用App_Code中自定义类的函数,但在自定义类中找不到Session,解决方法如下: 新建一个类session,并自己定义函数GetSession(),引用命名空间 System.Web 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 6 public static class session 7 { 8 public static o

java 导入自定义类

eclipse导入很容易,昨天上课学了一下用记事本写java,导入自定义类,这就麻烦了. 代码贴一下,方便操作: package tom.jiafei; public class SquareEquation { double a,b,c; double root1,root2; boolean boo; public SquareEquation (double a,double b,double c) { this.a = a; this.b = b; this.c = c; if(a!=0

cocos2dx 2.x版本:简化提炼tolua++绑定自定义类到lua中使用

cocos2dx的3.x版本已经提供了更好地绑定方式,网上有很多相关的教程,这里给一个链接:http://www.cocoachina.com/bbs/read.php?tid=196416. 由于目前我们的项目使用的是2.x版本的,且已经开发了一半了,这时候不适合转3.x的版本,于是只能用2.x的老方法tolua++来实现绑定.这就有一个蛋疼的问题,太麻烦!每次都要写pkg.使用tolua++.exe解释器编译生成新的cpp,在其中添加自己的类的头文件引用,然后把这个新的cpp文件覆盖到lib

cocos2dx lua 绑定之二:手动绑定自定义类中的函数

cococs2dx 3.13.1 + vs2013 + win10 1.首先按照<cocos2dx lua 绑定之一:自动绑定自定义类>绑定Student类 2.在Student类中增加一个用于测试手动绑定的函数manual_call ①Student.h中增加函数 //手动绑定调用函数 void manual_call(); ②Student.cpp中增加函数实现 //和自动绑定相比,只增加了这个函数 void Student::manual_call() { std::cout <&