$fich = file_get_contents("fichero.txt");
// Para recorrer un fichero obtenido con file_get_contents
$contenidoTXT = file_get_contents("fichero.txt");
$lineasTXT = explode("\n", $contenidoTXT);
foreach ($lineasTXT as $linea) {
echo $linea."<br>";
}
// Cómo saber si un fichero o un directorio existe físicamente
if (file_exists("mi_fichero.txt")) {
}
// Crear una carpeta si no existe
$carpeta = '/ruta/a/mi/carpeta';
if (!file_exists($carpeta)) {
mkdir($carpeta, 0777, true);
}
// ************ DIFERENTES FORMAS DE ABRIR/CREAR UN FICHERO ************
"r": Sólo lectura
"r+": Lectura y escritura
"w": Sólo escritura
"w+": Lectura y escritura. Suprime el contenido anterior si se escribe. El archivo es creado si no existe.
"a": Sólo escritura. El archivo es creado si no existe y el puntero se coloca al final.
"a+": Lectura y escritura. El archivo es creado si no existe y el puntero se coloca al final.
Un ejemplo:
<?php
$fp = fopen("mi_texto.txt", "w+");
?>
// *********** LECTURA *******************
// Leer fichero línea a línea
$fp = fopen("mi_texto.txt", "r+");
while(!feof($fp)){
$linea = fgets($fp);
echo $linea."<br>";
}
fclose($fp);
// Leer fichero carácter a carácter
$fp = fopen("mi_texto.txt", "r+");
while(!feof($fp)){
$caracter = fgets($fp, 1);
echo $caracter."<br>";
}
fclose($fp);
// También se podría ir leyendo por ejemplo de 20 en 20 caracteres
$fp = fopen("mi_texto.txt", "r+");
while(!feof($fp)){
$texto = fgets($fp, 20);
echo $texto."<br>";
}
fclose($fp);
// Leer un fichero de texto alojado en un FTP
$archivo = fopen("ftp://user:password@ftp.server.com/html/probando.txt", "r");
if ($archivo) { ... }
// *********** ESCRITURA *******************
$fp = fopen("mi_texto.txt", "w+");
fwrite($fp, "hola mundo");
fclose($fp);
// también se puede especificar el número de espacios que debe contener lo que se escriba
fwrite($fp, $dni, 9); // si ocupase menos de 9 caracteres lo rellena con espacios en blanco
// Si queremos añadir un <intro> para cada línea que escribamos
fwrite($fp, "hola"..PHP_EOL);
// En vez de fwrite se puede utilizar también fputs
fputs($fp ,"en un lugar de la Mancha".PHP_EOL);
// ************* COPIAR *********************
function copiar_todo($src, $dst) {
$dir = opendir($src);
@mkdir($dst);
while(false !== ( $file = readdir($dir)) ) {
if (( $file != '.' ) && ( $file != '..' )) {
if ( is_dir($src . '/' . $file) ) {
copiar_todo($src . '/' . $file,$dst . '/' . $file);
}
else {
copy($src . '/' . $file,$dst . '/' . $file);
}
}
}
closedir($dir);
}
copiar_todo(carpeta_prueba", "./carpeta_destino");
// ************* BORRAR *********************
function borrar_carpeta($carpeta) {
foreach(glob($carpeta . "/*") as $archivos_carpeta) {
// echo $archivos_carpeta;
if (is_dir($archivos_carpeta)) {
borrar_carpeta($archivos_carpeta);
}
else {
unlink($archivos_carpeta);
}
}
rmdir($carpeta);
}
borrar_carpeta("temp_zip");
Para borrar una estructura de directorios que tenga ficheros ocultos:
function SureRemoveDir($dir, $DeleteMe) {
if(!$dh = @opendir($dir)) return;
while (false !== ($obj = readdir($dh))) {
if($obj=='.' || $obj=='..') continue;
if (!@unlink($dir.'/'.$obj)) SureRemoveDir($dir.'/'.$obj, true);
}
if ($DeleteMe){
closedir($dh);
@rmdir($dir);
}
}
SureRemoveDir($carpeta, true);
// **************** RECORRER ********************
Obtener el primer directorio de otro directorio:
glob("dirPrincipal/" . $subDir."/*")[0]
// Recorrer solo los directorios de una carpeta
foreach(glob("./miCarpeta/*", GLOB_ONLYDIR) as $folder) {
echo $folder."<br>"; // saca toda la ruta
}
// Recorrer tanto los directorios como los ficheros
foreach(glob("./miCarpeta/*") as $folder) {
echo $folder."<br>"; // saca toda la ruta
}
No hay comentarios:
Publicar un comentario