La función rename de php me está trayendo de cabeza y no logro entender por qué.
Tengo un proyecto PHP en un virtualhost el directorio /home/pantalaimon/prog/web/php/project y quiero renombrar unos ficheros que están fuera del directorio del virtualhost:
/home/pantalaimon/test/a.txt
/home/pantalaimon/test/b.txt
He hecho un código de prueba simplificado para que podáis localizar más facilmente el error:
Código PHP:
La salida es la siguiente:Ver original
<?php echo 'root: ' . $_SERVER['DOCUMENT_ROOT'] . "<br/>\n"; // muestro los ficheros del directorio /home/pantalaimon/test echo "$name<br/>\n"; } // primer intento de renombramiento del fichero a.txt echo "Prueba 1:<br/>\n"; // segundo intento de renombramiento del fichero a.txt echo "Prueba 2:<br/>\n"; ?>
Cita:
Se puede ver que en caso de poner la ruta absoluta no hay problema, pero a la hora de usar el contexto sí.root: /home/pantalaimon/prog/web/php/project
b.txt
.
a.txt
..
Prueba 1:
Warning: rename(): supplied resource is not a valid Stream-Context resource in /home/pantalaimon/prog/web/php/project/index.php on line 8
Warning: rename(a.txt,c.txt): No such file or directory in /home/pantalaimon/prog/web/php/project/index.php on line 10
Prueba 2:
b.txt
.
a.txt
..
Prueba 1:
Warning: rename(): supplied resource is not a valid Stream-Context resource in /home/pantalaimon/prog/web/php/project/index.php on line 8
Warning: rename(a.txt,c.txt): No such file or directory in /home/pantalaimon/prog/web/php/project/index.php on line 10
Prueba 2:
¿Qué es lo que hago mal en el contexto?
Un saludo y gracias!