$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/>";
}
}
}
Autor: Juan Pablo Fuentes
Formador de programación y bases de datos
Funciones de archivo
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);
Ventajas de la vagancia
Ejercicio palabras mal escritas
<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);
?>
Ejemplo validación
<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);
eShow
Identificar a un usuario aunque use navegadores diferentes
Funciones esMagico y crearCuadrado
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 de arrays (VI)
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');
Función esMagico
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;
}