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('./');
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
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);
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 />';
}
$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
}
?>
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
$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
// Para recorrer un fichero obtenido con file_get_contents
// Cómo saber si un fichero o un directorio existe físicamente
// Crear una carpeta si no existe
// ************ 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
// Leer fichero carácter a carácter
// También se podría ir leyendo por ejemplo de 20 en 20 caracteres
// Leer un fichero de texto alojado en un FTP
// *********** ESCRITURA *******************
// también se puede especificar el número de espacios que debe contener lo que se escriba
// Si queremos añadir un <intro> para cada línea que escribamos
// En vez de fwrite se puede utilizar también fputs
// ************* COPIAR *********************
copiar_todo(carpeta_prueba", "./carpeta_destino");
// ************* BORRAR *********************
Para borrar una estructura de directorios que tenga ficheros ocultos:
// **************** RECORRER ********************
Obtener el primer directorio de otro directorio:
// Recorrer solo los directorios de una carpeta
// Recorrer tanto los directorios como los ficheros
$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
}
Suscribirse a:
Entradas (Atom)