Crear carpeta
Borrar carpeta
Copiar archivo
Renombrar archivo
Borrar archivo
$archivos = scandir("."); print_r($archivos); $gestor_dir = opendir("."); while ($nombre_fichero = readdir($gestor_dir)) { $ficheros[] = $nombre_fichero; } print_r($ficheros); recorrerCarpeta("."); function recorrerCarpeta($carpeta) { echo "Contenido de: " . $carpeta . "<br/>"; $archivos = scandir($carpeta); array_shift($archivos); array_shift($archivos); foreach ($archivos as $a){ if (is_dir($a)){ recorrerCarpeta($carpeta."/".$a); } else{ echo $carpeta."/".$a."<br/>"; } } }
Escribir en un fichero:
if (!$f = @fopen("pepe.txt", "w")) { die("No he podido abrir el fichero: " . error_get_last()['message']); } for ($i = 1; $i <= 10; $i++) { fwrite($f, "$i x 5=".(5*$i)."\r\n"); } fclose($f); if (!$f = @fopen("pepe.txt", "a")) { die("No he podido abrir el fichero: " . error_get_last()['message']); } for ($i = 1; $i <= 10; $i++) { fwrite($f, "$i x 7=".(7*$i)."\r\n"); } fclose($f);
Leer un fichero:
$f = @fopen("pepe.txt", "r") or die("No he podido abrir el fichero"); //Lee una línea while (!feof($f)) { echo "<h2>".fgets($f)."</h2>"; } fclose($f);
Leer directamente un fichero:
$cadena= file_get_contents("pepe.txt"); $tabla=file("pepe.txt"); echo $cadena; print_r($tabla);
<style> .celdako,.celdaok{ cursor: pointer; width:100px; height:50px; text-align: center; } .celdaok:active { background-color:lightgreen; } .celdako:active { background-color: red; } </style> <?php function muestraTabla($tabla) { echo "<pre>"; print_r($tabla); echo "</pre>"; } $palabras = array( array('length', array('lenght', 'legnth', 'langth', 'lentgh', 'lenhgt')), array('locomotion', array('lomocotion', 'lotocomion', 'molocotion', 'locamotion', 'locomocion')), array('bedroom', array('vedroom', 'bedrum', 'berdoom', 'bedrun', 'bedroon', 'beddroom')), array('coin', array('coyn', 'cony', 'cain', 'con')), array('stable', array('estable', 'stoble', 'stabel', 'tsable')), array('crush', array('cruhs', 'clush', 'cruss', 'crusah')), array('fantasy', array('fantasi', 'fantascy', 'fatnasy', 'frantasy')), array('pillow', array('pellow', 'pillou', 'pilluw', 'pilow', 'pilou')), ); function array_to_table($tabla, $buena,$ancho=2) { $res = "<table border=1>"; for ($i = 0; $i < count($tabla); $i++) { if ($i % $ancho == 0) { $res .= "<tr>"; } $res .= '<td class="' . ($tabla[$i] == $buena ? 'celdaok' : 'celdako') . '">' . $tabla[$i] . "</td>"; if ($i % $ancho == $ancho-1) { $res .= "</tr>"; } } $res .= "</table>"; return $res; } //Seleccionar una palabra al azar rand (0,count($palabras)-1) $palabra = $palabras[rand(0, count($palabras) - 1)]; // muestraTabla($palabra); //Coger la palabra buena y seleccionar tres palabras malas al azar $tablero[] = $palabra[0]; // $malos = $palabra[1]; //shuffle($malos); //$malos=array_slice($malos, 0, 8); $tablero = array_merge($tablero, $palabra[1]); while (count($tablero)<9){ $a=$palabras[array_rand($palabras)]; $palazar=$a[1][array_rand($a[1])]; if (!in_array($palazar, $tablero)){ $tablero[]=$palazar; } } // muestraTabla($tablero); //Mezclar shuffle($tablero); //Y mostrar echo array_to_table($tablero, $palabra[0],3); ?>
<form > <div class="form-group"> <label for="s1">Sumando 1:</label> <input type="text" class="form-control" name="s1" > </div> <div class="form-group"> <label for="s2">Sumando 2:</label> <input type="number" class="form-control" name="s2" required=""> </div> <input type="submit" value="Manda los datos"> </form> <?php $s1= filter_input(INPUT_GET,'s1',FILTER_VALIDATE_INT); $s2= filter_input(INPUT_GET,'s2',FILTER_VALIDATE_INT); echo "La suma es: ".($s1+$s2);
function cuadrado_magico($ancho) { if ($ancho % 2 == 0) $ancho--; $posy = 0; $posx = floor($ancho / 2); $cont = 1; while ($cont <= $ancho ** 2) { if (empty($c[$posy][$posx])) { $c[$posy][$posx] = $cont++; $posx = ($posx + 1) % $ancho; $posy = ($posy - 1 + $ancho) % $ancho; } else { $posx = ($posx - 1 + $ancho) % $ancho; $posy = ($posy + 2) % $ancho; } } return $c; } function esMagico($t) { //Sumo la primera fila para tener un valor de referencia $sum = array_sum($t[0]); $sd1 = 0; $sd2 = 0; for ($i = 0; $i < count($t); $i++) { $sf = 0; $sc = 0; $sd1 += $t[$i][$i]; $sd2 += $t[$i][count($t) - 1 - $i]; for ($j = 0; $j < count($t[$i]); $j++) { $sf += $t[$i][$j]; //Sumo la fila $sc += $t[$j][$i]; //Sumo la columna } //Si fila o columna son diferentes al valor de referencia no es mágico if ($sf != $sum || $sc != $sum) { return false; } } return !($sd1 != $sum || $sd2 != $sum); }
Funciones para mezclar o comparar arrays:
Funciones de suma y producto:
Funciones de mezcla de variables y array:
Pasar una función a cada elemento del array:
Ejemplo de este último:
$frutas = array("d" => "limón", "a" => "naranja", "b" => "banana", "c" => "manzana"); function test_alter(&$elemento1, $clave, $prefijo) { $elemento1 = "$prefijo: $elemento1"; } function test_print($elemento2, $clave) { echo "$clave. $elemento2 \n"; } echo "Antes ...:\n"; array_walk($frutas, 'test_print'); array_walk($frutas, 'test_alter', 'fruta'); echo "... y después:\n"; array_walk($frutas, 'test_print');
function esMagico($t){ $sum=0; //Sumo la primera fila para tener un valor de referencia for ($i=0;$i<count($t[0]);$i++){ $sum+=$t[0][$i]; } for ($i=0;$i<count($t);$i++){ $sf=0; $sc=0; for ($j=0;$j<count($t[$i]);$j++){ $sf+=$t[$i][$j]; //Sumo la fila $sc+=$t[$j][$i]; //Sumo la columna } //Si fila o columna son diferentes al valor de referencia no es mágico if ($sf!=$sum || $sc!=$sum ){return false;} } return true; }
function array_to_table($tabla) { $res = "<table border=1>"; for ($i = 0; $i < count($tabla); $i++) { $res .= "<tr>"; for ($j = 0; $j < count($tabla[$i]); $j++) { $res .= "<td>" . $tabla[$i][$j] . "</td>"; } $res .= "</tr>"; } $res .= "</table>"; return $res; } function array_to_table2($tabla) { $res = "<table border=1>"; foreach ($tabla as $n) { $res .= "<tr>"; foreach ($n as $el) { $res .= "<td>" . $el . "</td>"; } $res .= "</tr>"; } $res .= "</table>"; return $res; }
En PHP los arrays multidimensionales se crean con arrays dentro de arrays:
function muestraTabla($tabla) { echo "<pre>"; print_r($tabla); echo "</pre>"; } $m=array( array(1,2), array(3,4), ); muestraTabla($m); for($i=0;$i<count($m);$i++){ for ($j=0;$j<count($m[$i]);$j++){ echo $m[$i][$j]."<br/>"; } } foreach ($m as $n){ foreach ($n as $el){ echo $el."<br/>"; } }
Podemos tener las dimensiones que queramos:
$m = array( array( array(0, 1), array(2, 3) ), array( array(4, 5), array(6, 7) ), array( array(8, 9), array(10, 11) ), ); muestraTabla($m); for ($i = 0; $i < count($m); $i++) { for ($j = 0; $j < count($m[$i]); $j++) { for ($k = 0; $k < count($m[$i][$j]); $k++) { echo $m[$i][$j][$k] . "<br/>"; } } } foreach ($m as $n) { foreach ($n as $el) { foreach ($el as $e) { echo $e . "<br/>"; } } }
Lo mismo que usamos para recorrer lo podemos usar para generar:
for ($i = 0; $i < 10; $i++) { for ($j = 0; $j < 10; $j++) { $m[$i][$j]=$j+$i*10; } } muestraTabla($m);
Un array puede ser cualquier combinación de valores, asociativos, arrays dentro de arrays dentro de arrays….
$tablaLoca = array( "juan", "pepe" => array(1, 2, 3), array( array("a","b"), "w" ), 5, "ppp"=>array( "q"=>3, "w"=>array(1,2,array(7,8)) ) ); muestraTabla($tablaLoca);
Si quisiéramos acceder a los valores de una tabla como la anterior necesitaríamos una función recursiva:
function valores($var){ $res=""; if (is_array($var)){ foreach($var as $v){ $res.=valores($v); } } else{ $res=$var.","; } return $res; } echo valores($tablaLoca);