ccc

Mostrando entradas con la etiqueta Ficheros. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ficheros. Mostrar todas las entradas

Recorrer y mostrar todos los ficheros de una carpeta

function showFiles($path){
    $dir = opendir($path);
    $files = array();
    while ($current = readdir($dir)){
        if( $current != "." && $current != "..") {
            if(is_dir($path.$current)) {
                showFiles($path.$current.'/');
            }
            else {
                $files[] = $current;
            }
        }
    }
    echo '<h2>'.$path.'</h2>';
    echo '<ul>';
    for($i=0; $i<count( $files ); $i++){
        echo '<li>'.$files[$i]."</li>";
    }
    echo '</ul>';
}

showFiles('./');

Samba: leer, modificar, ejecutar ficheros que estén en otro servidor

Herramienta para poder leer, modificar, ejecutar ficheros que estén en otro servidor de Windows.
Lo primero: include_once("smb.php")

Y ya se puede llamar por smb a cualquier otro servidor que sea de Windows, ejemplos:

$fp_aux = fopen("smb://usuario:password@172.16.253.1/fichero_lsg.txt", "w+"); // crea ese fichero en ese sitio
$fp = fopen('smb://usuario:password@172.16.1.51/fichero.conf', 'r'); // lee ese fichero
unlink("smb://usuario:password@172.16.253.1/fichero.conf"); // borra ese fichero
rename("smb://user:pw@172.16.254.241/dns1/fichero1.txt", "smb://user:pw@172.16.254.241/dns1/fichero2.txt");  // renombrar ese fichero
$gran_texto = file_get_contents("smb://usuario:password@172.16.253.2/Auth/txt/txt_hosts.txt"); // obtener todo el contenido de ese fichero
$fp = fopen("smb://usuario:password@172.16.50.3:82/get_domain_id.php?qDominio=".$_POST["qDominio"], "r"); // ejecutar ese PHP en el otro servidor

Ejecutar un PHP en otro servidor linux con diferente IP:

$result = file_get_contents("http://".$ip_origen.":82/get_datos_cliente.php?system_user_origen=".$system_user_origen);

Ficheros: Obtener todos los links de una web

$html = file_get_contents('http://www.midominio.com/index.html');

$dom = new DOMDocument();
@$dom->loadHTML($html);

// grab all the on the page
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");

for ($i = 0; $i < $hrefs->length; $i++) {
       $href = $hrefs->item($i);
       $url = $href->getAttribute('href');
       echo $url.'<br />';
}

Ficheros 11: Subir un fichero de tu ordenador local al servidor

<?php
if (isset($_FILES['logo']['name'])) {
move_uploaded_file($_FILES['logo']['tmp_name'], "./imagenes/".$_FILES['logo']['name']);

}
else { ?>
<form method="post" action="subir_imagen.php" enctype="multipart/form-data"><br>
<input type=file size=60 name="logo" id="logo"><br><br>
<input type=submit value="subir"><br>
</form>
<?php
}
?>

Ficheros 10: Cómo descargar y descomprimir con PHP un fichero comprimido en ZIP

<?php
$fich_local = "fich_local.zip";
$fich_remoto = "http://www.midominio.com/fich_final.zip";
$datos = file_get_contents($fich_remoto);
file_put_contents($fich_local, $datos);

$zip = new ZipArchive;
if ($zip->open($fich_local) === TRUE) {
   $zip->extractTo('./temp_zip/');
   $zip->close();
   echo "Se ha descomprimido bien";
}
else {
   echo "Ha ocurrido un error";
}
?>

Si tienes alguna duda/problema en PHP o JQuery, haz la pregunta en el comentario de esta entrada e intentaré responderte lo antes posible

Ficheros: Operaciones con ficheros (lectura, escritura, borrar, recorrer, etc)

// Pasar todo el contenido de un fichero a una variable
$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
}