Anuncios

Bienvenidos sean a este post, hoy veremos una funcion de PHP.

Anuncios

Esta funcion nos permite copiar archivos de un origen a un destino. Veamos su sintaxis:

copy(origen, destino);
Anuncios

En el primer parametro pasamos el path de origen y el archivo, el segundo parametro sera el path de destino y tambien permite cambiar el nombre como si fuera el comando copy del S.O. Si en destino existe el archivo, este sera sobreescrito pero si es una URL no lo hara. Para entenderlo vamos a realizar un ejemplo simple. Primero crearemos un archivo en blanco llamado copiar.txt, si estas en un equipo basado en Unix pueden usar el siguiente comando:

$ touch copiar.txt
Anuncios

En el mismo directorio donde crearon el archivo debemos crear otro y agregar el siguiente codigo:

<?php

$archivo = "copiar.txt";

if (!copy($archivo, "copiado.txt"))
        echo "Error al copiar $archivo...\n";
else
        echo "Copiado exitosamente\n";

?>
Anuncios

Primero definimos una variable con el nombre del archivo creado anteriormente. Lo siguiente es copiar el archivo pero para ello usaremos un condicional donde si devuelve un false, sera porque ocurrio un error al copiarlo y para ello mostraremos ese mensaje. En caso contrario, mostrara un mensaje indicando que la copia fue exitosa. Ejecutemos para ver como es la salida:

$ php copiar.php
Copiado exitosamente
$
Anuncios

Si obtuvieron el mismo mensaje y verifican en el directorio deben tener los siguientes archivos:

-rw-r--r-- 1 tinchicus tinchicus 0 dic  7 21:56 copiado.txt
-rw-r--r-- 1 tinchicus tinchicus 0 dic  7 21:50 copiar.txt
Anuncios

Vamos a suponer que intentamos copiar de manera indebida el archivo, por ejemplo tomen a la funcion copy y hagan el siguiente cambio:

copy($archivo, "/etc/apt/copiado.txt")
Anuncios

En este caso intentamos copiar el archivo en un directorio donde no tenemos permisos, tambien puede ser uno inexistente. Ejecutemos nuevamente para ver que sucede:

$ php copiar.php
PHP Warning:  copy(/etc/apt/copiado.txt): Failed to open stream: Permission denied in /home/tinchicus/lenguajes/php/c/copiar.php on line 5
Error al copiar copiar.txt...
$
Anuncios

Primero nos notifico el inconveniente y despues tenemos el aviso de falla de nuestro condicional. Recuerden que las acciones de copia siempre estaran limitadas por los permisos del usuario que ejecute el script.

Anuncios

En resumen, hoy hemos visto copy, que es, para que sirve, como se utiliza, un ejemplo practico para verlo en accion, asi como tambien cuales son sus posibilidades y limitaciones. Espero les haya resultado de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donatión

It’s for site maintenance, thanks!

$1.50