Ejemplo n.º 1
0
 /**
  * @param string $directory 
  */
 public static function getRecursiveTree($directory)
 {
     $treeIterator = new \RecursiveTreeIterator(new \RecursiveDirectoryIterator($directory, \FilesystemIterator::SKIP_DOTS));
     $treeIterator->setPrefixPart(\RecursiveTreeIterator::PREFIX_MID_HAS_NEXT, '|  ');
     $treeIterator->setPrefixPart(\RecursiveTreeIterator::PREFIX_END_HAS_NEXT, '|--');
     $treeIterator->setPrefixPart(\RecursiveTreeIterator::PREFIX_END_LAST, '`--');
     $files = array();
     foreach ($treeIterator as $file) {
         $foo = explode(DIRECTORY_SEPARATOR, $file);
         $file = array_shift($foo) . ' ' . array_pop($foo);
         $files[] = $file;
     }
     return \implode(PHP_EOL, $files);
 }
Ejemplo n.º 2
0
 /**
  * @param \RecursiveIterator $iterator
  */
 public function __construct(\RecursiveIterator $iterator)
 {
     parent::__construct($iterator);
     $this->setPrefixPart(self::PREFIX_LEFT, '');
     $this->setPrefixPart(self::PREFIX_MID_HAS_NEXT, '│ ');
     $this->setPrefixPart(self::PREFIX_END_HAS_NEXT, '├ ');
     $this->setPrefixPart(self::PREFIX_END_LAST, '└ ');
 }
Ejemplo n.º 3
0
 public function current()
 {
     return str_replace($this->getInnerIterator()->current(), substr(strrchr($this->getInnerIterator()->current(), DIRECTORY_SEPARATOR), 1), parent::current());
 }
Ejemplo n.º 4
0
<?php

$rait = new RecursiveArrayIterator(['a' => 0, 1, 'b' => array(2, 3, 'c' => array('d' => 4, 5), 6, 7), 8, 9, array(0, 1)]);
$rtit = new RecursiveTreeIterator($rait);
$rtit_bypass = new RecursiveTreeIterator($rait, RecursiveTreeIterator::BYPASS_CURRENT);
foreach ($rtit as $key => $val) {
    var_dump($rtit->key());
}
foreach ($rtit_bypass as $key => $val) {
    var_dump($rtit_bypass->key());
}
<?php

$arr = array(0 => array("a", 1), "a" => array(2, "b", 3 => array(4, "c"), "3" => array(4, "c")));
$it = new RecursiveArrayIterator($arr);
$it = new RecursiveTreeIterator($it);
echo "----\n";
echo $it->getPostfix();
echo "\n\n";
echo "----\n";
$it->setPostfix("POSTFIX");
echo $it->getPostfix();
echo "\n\n";
echo "----\n";
foreach ($it as $k => $v) {
    echo "[{$k}] => {$v}\n";
}
echo "----\n";
$it->setPostfix("");
echo $it->getPostfix();
echo "\n\n";
echo "----\n";
foreach ($it as $k => $v) {
    echo "[{$k}] => {$v}\n";
}
?>
===DONE===
Ejemplo n.º 6
0
<?php

$rait = new RecursiveArrayIterator([0, 1, [2, 3, [4, 5], 6, 7], 8, 9, [0, 1]]);
$rtit = new RecursiveTreeIterator($rait);
foreach ($rtit as $key => $val) {
    var_dump($rtit->getPrefix());
}
Ejemplo n.º 7
0
<?php

$rait = new RecursiveArrayIterator([]);
$rtit = new RecursiveTreeIterator($rait);
var_dump($rtit->getPostfix());
var_dump($rtit->setPostfix('xx'));
var_dump($rtit->getPostfix());
Ejemplo n.º 8
0
<?php

$ary = array("a" => array("b"), "c" => array("d"));
$it = new RecursiveArrayIterator($ary);
$it = new RecursiveTreeIterator($it);
for ($i = 0; $i < 6; ++$i) {
    $it->setPrefixPart($i, $i);
}
foreach ($it as $k => $v) {
    echo "[{$k}] => {$v}\n";
}
try {
    $it->setPrefixPart(-1, "");
    $it->setPrefixPart(6, "");
} catch (OutOfRangeException $e) {
    echo "OutOfRangeException thrown\n";
}
try {
    $it->setPrefixPart(6, "");
} catch (OutOfRangeException $e) {
    echo "OutOfRangeException thrown\n";
}
?>
===DONE===
Ejemplo n.º 9
0
<?php

$rait = new RecursiveArrayIterator([0, 1, [2, 3, [4, 5], 6, 7], 8, 9, [0, 1]]);
$rtit = new RecursiveTreeIterator($rait);
$rtit_curr = new RecursiveTreeIterator($rait, RecursiveTreeIterator::BYPASS_CURRENT);
foreach ($rtit as $key => $val) {
    var_dump($rtit->current());
}
foreach ($rtit_curr as $key => $val) {
    var_dump($rtit_curr->current());
}
Ejemplo n.º 10
0
<?php

$ary = array(0 => array("a", 1), "a" => array(2, "b", 3 => array(4, "c"), "3" => array(4, "c")));
$it = new RecursiveTreeIterator(new RecursiveArrayIterator($ary));
foreach ($it as $k => $v) {
    echo '[' . $it->key() . '] => ' . $it->getPrefix() . $it->getEntry() . $it->getPostfix() . "\n";
}
?>
===DONE===
<?php

$arr = array("a" => array("b"));
$it = new RecursiveArrayIterator($arr);
$it = new RecursiveTreeIterator($it);
$it->setPrefixPart(1);
// Should throw a warning as setPrefixPart expects 2 arguments
$a = new stdClass();
$it->setPrefixPart($a, 1);
// Should throw a warning as setPrefixPart expects argument 1 to be long integer
$it->setPrefixPart(1, $a);
// Should throw a warning as setPrefixPart expects argument 2 to be a string
?>
===DONE===
Ejemplo n.º 12
0
<?php

$ary = array(0 => array((string) "binary", "abc2", 1), (string) "binary" => array(2, "b", 3 => array(4, "c"), "4abc" => array(4, "c")));
$it = new RecursiveTreeIterator(new RecursiveArrayIterator($ary), 0);
foreach ($it as $k => $v) {
    var_dump($v);
}
echo "\n----------------\n\n";
foreach ($it as $k => $v) {
    var_dump($k);
}
echo "\n----------------\n\n";
echo "key, getEntry, current:\n";
foreach ($it as $k => $v) {
    var_dump($it->key(), $it->getEntry(), $it->current());
}
?>
===DONE===
Ejemplo n.º 13
0
<?php

$rait = new RecursiveArrayIterator([0, 1, [2, 3]]);
$rtit = new RecursiveTreeIterator($rait);
try {
    $rtit->setPrefixPart(6, "");
} catch (OutOfRangeException $e) {
    echo $e->getMessage(), PHP_EOL;
}
Ejemplo n.º 14
0
<?php

$rait = new RecursiveArrayIterator([0, 1, [2, 3, [4, 5]]]);
$rtit = new RecursiveTreeIterator($rait);
foreach ($rtit as $key => $val) {
    var_dump($rtit->getEntry());
}