Foros del Web » Programando para Internet » PHP »

Problemas con contexto en rename de PHP

Estas en el tema de Problemas con contexto en rename de PHP en el foro de PHP en Foros del Web. Buenas, 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 ...
  #1 (permalink)  
Antiguo 04/05/2014, 07:25
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Problemas con contexto en rename de PHP

Buenas,

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:
Ver original
  1. <?php
  2.         echo 'root: ' . $_SERVER['DOCUMENT_ROOT'] . "<br/>\n";
  3.         // muestro los ficheros del directorio /home/pantalaimon/test
  4.         $dir = opendir('/home/pantalaimon/test');
  5.         while( $name = readdir( $dir ) ) {
  6.             echo "$name<br/>\n";
  7.         }
  8.         // primer intento de renombramiento del fichero a.txt
  9.         echo "Prueba 1:<br/>\n";
  10.         rename( 'a.txt', 'c.txt', $dir );
  11.         // segundo intento de renombramiento del fichero a.txt
  12.         echo "Prueba 2:<br/>\n";
  13.         rename( '/home/pantalaimon/test/a.txt', '/home/pantalaimon/test/c.txt' );
  14.     ?>
La salida es la siguiente:
Cita:
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:
Se puede ver que en caso de poner la ruta absoluta no hay problema, pero a la hora de usar el contexto sí.

¿Qué es lo que hago mal en el contexto?

Un saludo y gracias!
__________________
github.com/xgbuils | npm/xgbuils
  #2 (permalink)  
Antiguo 04/05/2014, 09:28
 
Fecha de Ingreso: mayo-2014
Mensajes: 19
Antigüedad: 9 años, 11 meses
Puntos: 1
Respuesta: Problemas con contexto en rename de PHP

Hola estuve mirando tu problema se deve a las rutas absolutas lo cual es muy comun que suceda, lo recomendable es utilizar rutas relativas.
Utilizando lo que me has nombrado
Arbol de directorios estaria compuesto
www
- index.php
test
-a.txt
-b.txt

echo "Prueba 1:<br/>\n";
rename( 'test/a.txt', 'test/b.txt');

Esta es una solucion que propongo no es la mejor pero es lo que yo haria,tambien acuerdate de darle los permisos de escritura al php sino no podra hacer nada.

Espero que te sirva

Etiquetas: contexto, rename
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:12.