Aquí está el trato. Tengo un "árbol" o un "subárbol" que quiero navegar y eliminar cada elemento. Cada "nodo" puede contener enlaces a otros nodos debajo de él (no hay problema) O puede contener enlaces FUERA de ese "árbol" en particular/"subárbol". ¿Cómo puedo crear una función que solo elimine "dentro" del árbol especificado?Creando una función de eliminación recursiva (en php)
Respuesta
necesita RecursiveIterator
El enlace puede ser útil, pero una explicación breve haría que la respuesta sea más relevante. – slashingweapon
Es necesario utilizar realpath()
:
function DeleteTree($path)
{
if (is_dir($path) === true)
{
$path = realpath($path);
$files = array_diff(scandir($path), array('.', '..'));
foreach ($files as $file)
{
$file = realpath($path . '/' . $file);
// file is within tree
if (substr($file, 0, strlen($path)) == $path)
{
DeleteTree($file);
}
}
return rmdir($path);
}
else if (is_file($path) === true)
{
return unlink($path);
}
return false;
}
lo anterior debe hacer lo que usted está buscando.
Oh ... Me acabo de dar cuenta de que esto puede no estar relacionado con el sistema de archivos ... ¡El error es todo tuyo! : P
Esta es la misma eliminación recursiva a la que está acostumbrado. Solo tiene que mantener sus enlaces separados: una lista para enlaces dentro del árbol, y otra para enlaces fuera del árbol. Alternativamente, puede tener un indicador que haga un seguimiento del estado en árbol/fuera de árbol para cada enlace, pero tendrá que distinguir cuándo crea el enlace.
- 1. Función de eliminación recursiva de PHP
- 2. ¿Una función de directorio de eliminación recursiva para PHP?
- 3. Función recursiva PHP valor devuelto
- 4. Problema de la función recursiva de PHP?
- 5. PHP - Error al devolver una matriz desde una función recursiva
- 6. eliminación recursiva en Google App Engine
- 7. una función de Fibonacci recursiva en Clojure
- 8. función recursiva en bash
- 9. retorno en función recursiva
- 10. Paralelización OpenMP en una función recursiva
- 11. ¿Puede una función recursiva estar en línea?
- 12. manera recursiva en una función lambda
- 13. ¿Función recursiva de JQuery?
- 14. Función recursiva anónima en Scala
- 15. recursiva función factorial
- 16. Creando una función cout en C?
- 17. Eliminación recursiva de archivos y directorios en C#
- 18. ¿Por qué una función infinitamente recursiva en PHP causa una segfault?
- 19. recursiva Descenso Analizador de EBNF en PHP
- 20. StackOverflowError en la función recursiva de cola
- 21. Creando una tabla dinámica con PHP
- 22. obtener una variable de eliminación PHP
- 23. ¿Función factorial recursiva y memorizada?
- 24. Creando una nueva línea en $ cuerpo de PHP Función de correo
- 25. Creación de una función recursiva árbol de categorías
- 26. java retener información en la función recursiva
- 27. Eliminación recursiva de elementos vacíos y subcampos de una matriz multidimensional
- 28. PHP - ¿Matriz recursiva al objeto?
- 29. ¿Es una función recursiva en Scheme siempre optimizada?
- 30. Pasar el mismo valor en una función recursiva?
es posible que desee dar un ejemplo de estructura y la salida deseada – Gordon
huele tarea ... –
Dé un ejemplo de su "árbol" y cómo la eliminación debe funcionar. – salathe