File_Find::maptree PHP Méthode

maptree() public méthode

Map the directory tree given by the directory_path parameter.
Author: Sterling Hughes ([email protected])
public maptree ( string $directory ) : array
$directory string contains the directory path that you want to map.
Résultat array a two element array, the first element containing a list of all the directories, the second element containing a list of all the files.
    function &maptree($directory)
    {
        /* if called statically */
        if (!isset($this) || !is_a($this, "File_Find")) {
            $obj =& new File_Find();
            return $obj->maptree($directory);
        }
        /* clear the results just in case */
        $this->files = array();
        $this->directories = array();
        /* strip out trailing slashes */
        $directory = preg_replace('![\\\\/]+$!', '', $directory);
        $this->_dirs = array($directory);
        while (count($this->_dirs)) {
            $dir = array_pop($this->_dirs);
            File_Find::_build($dir, $this->dirsep);
            array_push($this->directories, $dir);
        }
        sort($this->directories);
        sort($this->files);
        $retval = array($this->directories, $this->files);
        return $retval;
    }

Usage Example

function handleDirFiles($dir_name, $save_dir)
{
    list($directories, $files) = File_Find::maptree($dir_name);
    $new_dir = $save_dir . basename($dir_name);
    if (!file_exists($new_dir)) {
        mkdir($new_dir, 0777);
    }
    foreach ($files as $image_file) {
        if (ereg("(.*)jpg\$", $image_file)) {
            $new_filename = $new_dir . "/" . basename($image_file, ".jpg") . "_resize.jpg";
            echo $new_filename . "\n";
            $tn_image = new Thumbnail($image_file, 340);
            $tn_image->save($new_filename);
            $Canvas =& Image_Canvas::factory(isset($_GET['canvas']) ? $_GET['canvas'] : 'jpg', array('width' => 340, 'height' => 340));
            $Canvas->image(array('x' => 340, 'y' => 340, 'filename' => $new_filename, 'alignment' => array('horizontal' => 'right', 'vertical' => 'bottom')));
            $Canvas->setFont(array('name' => 'Courier New', 'size' => 16, 'color' => '#FF66FF'));
            //#FF0033
            $Canvas->addText(array('x' => 165, 'y' => 200, 'text' => 'arzen1013', 'alignment' => array('horizontal' => 'center', 'vertical' => 'bottom')));
            $Canvas->setFont(array('name' => 'Courier New', 'size' => 10, 'color' => '#000000'));
            //#FF0033
            $Canvas->addText(array('x' => 165, 'y' => 320, 'text' => 'http://shop33691629.taobao.com/', 'alignment' => array('horizontal' => 'center', 'vertical' => 'bottom')));
            $Canvas->save(array('filename' => $new_filename));
        }
    }
}
All Usage Examples Of File_Find::maptree