2011-02-15 31 views
7

Me gustaría eliminar un archivo de una carpeta en PHP, pero solo tengo la ruta a este archivo, ¿estaría bien dar la ruta para desvincular? Por ejemploPHP ¿la función de desvinculación funciona con una ruta?

unlink('path/to/file.txt'); 

Si esto no funciona, la única manera de deshacerse de los archivos sería la creación de un archivo .php en la ruta/a/y lo incluye de alguna manera en mi archivo de una llamada de una método allí para eliminar el archivo, ¿verdad?

Respuesta

5

Tener un vistazo a la documentación unlink:

bool unlink (string $filename [, resource $context ]) 

y

nombre
Pa th al archivo.

Por lo tanto, solo toma una cadena como nombre de archivo.

Asegúrate de que se puede acceder al archivo con la ruta desde la ubicación donde ejecutas el script. Esto no es un problema con rutas absolutas, pero puede tener una con rutas relativas.

1

PUEDE utilizar unlink con una ruta.

También puede realizar un enlace en un directorio, siempre que lo haya vaciado primero.

Aquí está el manual: http://php.net/manual/en/function.unlink.php

+0

Desvincular un directorio no funciona en todos los sistemas de archivos, por lo que hay rmdir() –

0

No solo está bien, es la única manera de eliminar un archivo en PHP (además de las llamadas al sistema).

5

unlink funciona bien con las rutas.

Descripción bool unlink (cadena $ archivo [, $ resource contexto])

Elimina nombre de archivo. Similar a la función Unix C unlink(). Se producirá un error E_WARNING de nivel en caso de error.

nombre

Path to the file. 

En caso de que tenían un problema con los permisos negados de error, a veces se produce cuando intenta eliminar un archivo que está en una carpeta más alto en la jerarquía a su directorio de trabajo (es decir, cuando tratando de eliminar una ruta que comienza con "../").

Para solucionar este problema, puede usar chdir() para cambiar el directorio de trabajo a la carpeta donde se encuentra el archivo que desea desvincular.

<?php 
    $old = getcwd(); // Save the current directory 
    chdir($path_to_file); 
    unlink($filename); 
    chdir($old); // Restore the old working directory 
?> 
16

Tienes un método fácil para su pregunta

Usa este código para eliminar un archivo de una carpeta

$_SERVER['DOCUMENT_ROOT'] 

Esto puede ser usado dentro de la función de desvinculación

código trabajado

 unlink($_SERVER['DOCUMENT_ROOT'] . "/path/to/file.txt"); 
+4

más 1 para la respuesta práctica –

1

No se olvide de comprobar si el archivo existe, o se obtendrá un error si no es así:

$file_with_path = $_SERVER['DOCUMENT_ROOT'] . "/path/to/file.txt"; 
if (file_exists($file_with_path)) { 
    unlink($file_with_path); 
} 
0

podemos utilizar este código

$path="images/all11.css"; 

if(unlink($path)) echo "Deleted file "; 
-3
if (isset($_POST['remove_file'])) { 
      $file_path=$_POST['fileremove']; 
    // chown($file_path, 'asif'); 
    // echo $file_path; 
    if (file_exists($file_path)) { 
      unlink($file_path); 
     echo "file deleted<br> the name of file is".$file_path.""; 

     # code... 
    } 
    else 
     echo "file is not deleted ".$file_path.""; 
    # code... 
} 
+0

esto es código en ejecución –

Cuestiones relacionadas