$url='http://www.20minutos.es/minuteca/rita-barbera/'; if (!empty($_GET['url'])){ $url=$_GET['url']; } $img=['http://debeverse.com/wp-content/uploads/2015/07/Gatito-Rezando.jpg','http://imagenesdeamistadunicas.com/wp-content/uploads/2016/imagenes/imagenes-bellas-de-gatitos.jpg','http://cdn.weruletheinternet.com//wp-content/uploads/images/2012/Janurary/overflow/1_10/cute_animal_pictures_7.jpg','http://4.bp.blogspot.com/_mwlHu9TqP1E/TC_KJ3EDgAI/AAAAAAAAAAU/tmD1V-ici4g/s1600/gatito.jpg','http://www.elmegatop.com/wp-content/uploads/gatito-triste.jpg','http://i1.wp.com/www.ateneupopular.com/wp-content/uploads/2012/03/gatotipo1.jpg?resize=550%2C317','http://genialesimagenes.com/wp-content/uploads/2015/09/gatito-tierno-bosteza.jpg']; $f = fopen($url, 'r'); while (!feof($f)) { $linea = fgets($f); $linea= preg_replace('/src=\".*\.jpg/', "src=\"".$img[mt_rand(0,count($img)-1)], $linea); echo str_ireplace("barberá", "Bárbara", $linea); } fclose($f);
Plugins validación formularios en jquery
Ejercicio validar mail
$cadenas = ["pepe@pepe.com", "ola k ase??", "@@@....", "hola.ssss@mmv", "pepe.com", "pepe@pepe"]; //Recorrer con for for ($i = 0; $i < count($cadenas); $i++) { echo ($i + 1) . ".- " . $cadenas[$i] . (esMail2($cadenas[$i]) ? '' : ' no ') . " es mail.<br/>"; } //Recorrer con foreach foreach($cadenas as $cadena){ echo $cadena . (esMail3($cadena) ? '' : ' no ') . " es mail.<br/>"; } function esMail($cadena) { $pos1 = strpos($cadena, "@"); $pos2 = strpos($cadena, "."); if ($pos1 !== false && $pos2 !== false && $pos2 > $pos1) { return true; } else { return false; } } function esMail3($cadena) { $pos1 = strpos($cadena, "@"); $pos2 = strpos($cadena, ".",$pos1); return ($pos1 != false && $pos2 !== false); } function esMail2($cadena) { if ($pos = strpos($cadena, "@")) { return strpos($cadena, ".", $pos); } return false; } function esMailReg($cadena){ return preg_match( '/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/', $cadena); } function buscaMail($cadena){ $pattern="/(?:[A-Za-z0-9!#$%&'*+=?^_`{|}~-]+(?:\.[A-Za-z0-9!#$%&'*+=?^_`{|}~-]+)*|\"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*\")@(?:(?:[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]*[A-Za-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[A-Za-z0-9-]*[A-Za-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/"; preg_match_all($pattern,$cadena,$mails); return $mails; }
Variables variables
En PHP podemos tener variables variables, esto es, poniendo dos $$ accedemos al valor:
$nombre='Juan'; $a='nombre'; echo $$a; //Imprime Juan
Podemos extenderlo al infinito:
$Bar = "a"; $Foo = "Bar"; $World = "Foo"; $Hello = "World"; $a = "Hello"; $a; //Returns Hello $$a; //Returns World $$$a; //Returns Foo $$$$a; //Returns Bar $$$$$a; //Returns a $$$$$$a; //Returns Hello $$$$$$$a; //Returns World
Funciones Array (2)
Saber si existe un valor en el array:
$os = array("Mac", "NT", "Irix", "Linux"); if (in_array("Irix", $os)) { echo "Existe Irix"; } if (in_array("mac", $os)) { echo "Existe mac"; }
Máximo y mínimo de un array:
echo max(2, 3, 1, 6, 7); // 7 echo max(array(2, 4, 5)); // 5 echo min(2, 3, 1, 6, 7); // 1 echo min(array(2, 4, 5)); // 2
Ordenar arrays ¡Ojo si son asociativos! (ver manual)
$frutas = array("limón", "naranja", "banana", "albaricoque"); sort($frutas); //No asociativos $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); asort($fruits);//Asociativos $fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple"); ksort($fruits); //Ordena por clave $números = range(1, 20); shuffle($números); //Desordena
Aplicar una función a todos los elementos del array:
$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');
Union de arrays:
$union = array_unique(array_merge($a, $b));
Intersección:
$intersection = array_intersect($a, $b);
Diferencia:
$difference = array_diff($a, $b);
Diferencia simétrica:
$difference = array_merge(array_diff($a, $b), array_diff($b, $a));
Funciones array (1)
Crear un array de un rango determinado:
range($inicio, $fin[,$paso]) $pares=range(2,100,2); //Letras únicamente: $lista=range('a','z');
Recorrer un array:
foreach (expresión_array as $valor) sentencias foreach (expresión_array as $clave => $valor) sentencias
Rellenar valores en un array:
$input = array(12, 10, 9); $result = array_pad($input, 5, 0); // el resultado es array(12, 10, 9, 0, 0) $result = array_pad($input, -7, -1); // el resultado es array(-1, -1, -1, -1, 12, 10, 9) $result = array_pad($input, 2, "noop"); // sin relleno
Eliminar elementos de un array:
$entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, 2); // $entrada ahora es array("rojo", "verde") $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, 1, -1); // $entrada ahora es array("rojo", "amarillo") $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, 1, count($entrada), "naranja"); // $entrada ahora es array("rojo", "naranja") $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, -1, 1, array("negro", "granate")); // $entrada ahora es array("rojo", "verde", // "azul", "negro", "granate") $entrada = array("rojo", "verde", "azul", "amarillo"); array_splice($entrada, 3, 0, "púpura"); // $entrada ahora es array("rojo", "verde", // "azul", "púpura", "amarillo");
Juntar y separar arrays/cadenas
$array = array('apellido', 'email', 'teléfono'); $separado_por_comas = implode(",", $array); echo $separado_por_comas; // apellido,email,teléfono $pizza = "porción1 porción2 porción3 porción4 porción5 porción6"; $porciones = explode(" ", $pizza); echo $porciones[0]; // porción1 echo $porciones[1]; // porción2
Ejemplos cookies
Poner una cookie:
setcookie('destino',1,time()+86400*30);
Acceder a una cookie (unsafe):
echo $_COOKIE['test']
Acceder a una cookie (safe):
$destino= filter_input(INPUT_COOKIE, 'destino');
Borrar una cookie:
setcookie('prueba',27,time()-1000);
Ejercicio viajes
A destacar:
<h4>Nombre de los viajeros:</h4> <?php for($i=0;$i<$form['viajeros'];$i++){ ?> <input class="form-control" type="text" name="nombres[]"/> <?php } ?> <input type="hidden" name="total" value="<?=$total?>"/> <input type="hidden" name="destino" value="<?=$form['destino']?>"/> ---- $nombres= filter_input(INPUT_POST, 'nombres',FILTER_DEFAULT,FILTER_REQUIRE_ARRAY); <h2>Destino: <?=@array("Lima","Logroño","Cancun","Ibiza","Chipre")[$destino-1]?></h2>