Beruflich Dokumente
Kultur Dokumente
pablomonteserin.com
phppinfo
<?php phpinfo(); ?>
phpinfo(); es una funcin que devuelve informacin en formato de pgina html de nuestro servidor web.
pablomonteserin.com
echo
Comentarios
<?php echo "Hola mundo"; //Esto es un comentario de una sla lnea /*Y esto un comentario de varias lneas*/ ?>
pablomonteserin.com
pablomonteserin.com
Ejercicio
Pintar una capa roja en la pantalla. Todo el cdigo fuente debe estar escrito dentro de los smbolos <?php ?>. Para ello el cdigo html necesario debe ser ejecutado desde la instruccin echo.
pablomonteserin.com
Operador de concatenacin
pablomonteserin.com
Operadores aritmticos
<?php echo 3+2; echo "<br/>"; echo 3*2; echo "<br/>"; echo 3-2; echo "<br/>"; echo 3%2; ?>
Salida: 5 6 1 1.5 1
pablomonteserin.com
Operadores lgicos
<?php echo 3>2; echo "<br/>"; echo 3<2; echo "<br/>"; echo 3>=2; echo "<br/>"; echo 3<=2; echo "<br/>"; echo 3==2; echo 3!=2; ?>
Salida: 1 1 1
pablomonteserin.com
Ejercicio
Aadir los operadores lgicos necesarios para que las siguientes expresiones evaluen siempre a true. Aadir dos lneas ms que evaluen a false. <?php echo 15 4; echo 13 122; echo 8*2 16; ?>
Verlo funcionando
pablomonteserin.com
Variables
Son zonas de la memoria del ordenador identificadas por un nombre y capaces de almacenar informacin que puede variar durante la ejecucin del programa.
pablomonteserin.com
Variables de texto
pablomonteserin.com
Ejercicio
Que se muestre un mensaje que diga: Buenas tardes Jose, dnde Jose ser el valor de una variable llamada $nombre.
pablomonteserin.com
Variables numricas
<?php $i = 5; $j = 3; echo $i." + ".$j."=<br/>"; echo "$i + $j =<br/>"; echo $i+$j; echo "<br/>"; echo $i.$j; ?>
Output: 5 + 3= 5+3= 8 53
Verlo funcionando.
pablomonteserin.com
Constantes
<?php define("pi", 3.14); echo pi; //La siguiente lnea dara un warning define("pi", 5); ?>
pablomonteserin.com
Arrays
<?php $day[0]="domingo"; $day[1]="lunes"; $day[2]="martes"; $day[3]="miercoles"; $day[4]="jueves"; $day[5]="viernes"; $day[6]="sabado"; //La funcion date, en conjunto con el modificador "w", devuelve el numero de dia que es hoy $dayNumber=date("w"); echo "Hoy es ". $day[$dayNumber]; ?>
<?php $day = array("domingo", "lunes", "martes", "miercoles", "jueves", "viernes", "sabado"); $dayNumber=date("w"); echo "Hoy es ".$day[$dayNumber]; ?>
pablomonteserin.com
Ejercicio
Dado el siguiente cdigo: $languages = array("HTML/CSS", "JavaScript", "PHP", "Python", "Ruby"); print_r($languages);
Modifica el item JavaScript del array y vuelve a usar print_r() para ver el contenido del array.
pablomonteserin.com
<?php $array = ("red", "blue", "green"); //El siguiente mtodo borra el elemento green unset($array[2]); ?>
pablomonteserin.com
Ejercicio
Borrar Python del array y luego volver a ejecutar print_r() para comprobar que ya no se encuentra en el array. <?php $languages = array("HTML/CSS","JavaScript", "PHP", "Python", "Ruby"); print_r($languages); ?>
pablomonteserin.com
pablomonteserin.com
Arrays asociativos
<?php $capital['DE'] = "Berlin"; $capital['DK'] = "Copenhague"; $capital['ES'] = "Madrid"; echo $capital['ES']; ?>
<?php $capital =array("DE"=>"Berln", "DK" =>"Copenhage", "ES" =>"Madrid"); echo $capital['ES']; ?>
pablomonteserin.com
Ejercicio
Escribe una lnea hablando de tu coche utilizando para describirlo al menos un valor de cada uno de estos arrays: $myArray = array(2012, 'blue', 5, 'BMW'); $myAssocArray = array('year' => 2012, 'colour' => 'blue', 'doors' => 5, 'make' => 'BMW');
pablomonteserin.com
$elementosArray = count($capital); echo "El array tiene ". $elementosArray." elementos"; ?>
Peticiones al servidor
GET: Hey servidor! Mira lo que te mando en la URL y haz algo, quieres?! POST: Hey servidor! Mira lo que te mando en mi cuerpecito y haz algo quieres?!
pablomonteserin.com
GET vs POST
El nmero de caracteres que puedes enviar utilizando GET es limitado y depende del servidor.
La informacin enviada por GET se puede visualizar en la URL, y por tanto no podramos enviar informacin delicada (passowords, etc.)
No es posible almacenar en favoritos la URL de una peticin POST, ya que una peticin POST no modifica la URL.
pablomonteserin.com
Enviar formulario
enviarFormulario.html <form method="post" action="procesaFormulario.php"> Introduce tu nombre, porfa: <input type="text" name="nombre" /> <input type="submit" /> </form>
pablomonteserin.com
pablomonteserin.com
El name identifica a cada elemento; el value es la informacin que contiene. Con $_POST recuperas el value del elemento cuyo name le ests pasando como parmetro. Todas las personas tenemos un nombre y un valor, para conocer el valor de una persona en concreto, deberemos conocer su nombre, para poder identificarla.
pablomonteserin.com
pablomonteserin.com
Ejercicio
Recuperar la informacin del textarea de una pgina y cargarla en un campo de texto de otra pgina distinta.
pablomonteserin.com
pablomonteserin.com
Estructuras de control
pablomonteserin.com
if
<?php $dato1 = 3; $dato2 = 5; if($dato2 > $dato1)echo "dato2 es mayor que dato1"; ?>
pablomonteserin.com
Ejercicio
Modifica la lnea en negrita para que se imprima el mensaje. <?php $dato1 = 10; $dato2 = 10; if($dato1 > $dato2)echo "exito"; ?>
pablomonteserin.com
elseif
<?php $dato1 = 3; $dato2 = 5; if($dato1 > $dato2)echo "dato1 es mayor que dato2"; elseif($dato1 < $dato2)echo "Va a ser que no..."; ?>
pablomonteserin.com
<?php $dato1 = 3; $dato2 = 5; if($dato1 > $dato2){ echo "dato1 es mayor que dato2"; echo "<br/>dato1 es mayor que dato2"; }elseif($dato1 < $dato2){ echo "Va a ser que no..."; echo "<br/>Va a ser que no..."; } ?>
elseif II
pablomonteserin.com
<?php $dato1 = 3; $dato2 = 5; if($dato1 > $dato2){ echo "dato1 es mayor que dato2"; echo "dato1 es mayor que dato2"; }else if($dato1 == $dato2){ echo "dato1 es igual que dato2"; echo "dato1 es igual que dato2"; }else{ echo "dato1 es mayor que dato2"; echo "dato1 es mayor que dato2"; } ?>
else
pablomonteserin.com
Ejercicio
Completar el if con una expresin que permita que se ejecute el cdigo del else. Hacer que en el else se muestre un mensaje cualquiera. <?php if ( ){ echo "Esto no debera verse"; }else{ //poner aqu cdigo } ?>
pablomonteserin.com
Ejercicio
Dada una variable que contiene cierto valor, evaluar si dicho valor es mayor, igual o menor que cinco. Si es mayor, mostrar el texto El nmero es mayor que cinco. Si es igual, mostrar el texto ''El nmero es igual que cinco''. En caso contrario, mostrar el texto Es menor que 5.
pablomonteserin.com
Ejercicio
Corrige los errores que hay en este cdigo: <?php if {10 == 10}( echo "You got a true!" ) else ( echo "You got a false!"; ) ?>
pablomonteserin.com
Ejercicio
Dada una variable que contiene la nota de un examen que va de 0 a 10... - Si es mayor que cinco mostrar el texto Aprobado. - Si es igual a cinco, mostrar el texto ''Aprobado por los pelos. - Si es menor que cinco, mostrar el texto Suspenso.
pablomonteserin.com
Verlo funcionando
pablomonteserin.com
Ejercicio
Aadiendo lneas a este cdigo, controlar que si el botn no fue pulsado se muestre el mensaje el boton no fue pulsado! . Por tanto, ste debera ser el mensaje que apareciese al entrar por primera vez en la pgina.
<?php if(isset($_POST['botonEnviar'])){ echo "boton pulsado!!!"; }else{ //Aadir las lneas aqu } ?> <form method="post" action="#"> <input type="submit" name="botonEnviar" value="enviar"> </form>
Ver el ejercicio funcionando
pablomonteserin.com
Ejercicio
Si he pulsado el botn de enviar, imprimir el value del campo de texto; si no, imprimir Boton no pulsado
pablomonteserin.com
Mandar un formulario
pablomonteserin.com
Mandar un mail
$headers = "MIME-Version: 1.0\r\n"; $headers .= 'From: webmaster@example.com' . "\r\n" . 'Content-type: text/html; charset=utf-8' . "\r\n"; if(mail("pablomonteserin@pablomonteserin.com", "mail de mi pagina web", $msg, $headers)){ } Nota:
Para mandar un correo es necesario que la pgina HTML del formulario de envo, la pgina PHP que lo procesa, el servidor PHP que procesa el mail y el servidor de correo que lo recibe utilicen la misma codificacin.
pablomonteserin.com
phpmailer
Es un script de php que nos permitir mayor control sobre el envo de correos.
Para usarlo con una cuenta de gmail: require("PHPMailer_v5.1/class.phpmailer.php"); Nota: $mail = new PHPMailer(); Si obtuviesemos este error: SMTP -> ERROR:Password not accepted $mail->CharSet = 'utf-8'; from server. Code: 535 Reply: 535-5.7.1 $mail->Host = "smtp.googlemail.com"; Please log in with your web browser and $mail->From = $correoRemitente; then try again. Significa que debemos autorizar el acceso a $mail->IsSMTP(); gmail desde el servidor de la pgina. $mail->SMTPAuth = true; Podemos hacerlo pulsando en el siguiente $mail->Username = "usuario@gmail.com"; enlace: $mail->Password = "password"; https://accounts.google.com/b/0/DisplayUnlockC $mail->SMTPSecure = "ssl"; $mail->Port = 465; $mail->AddAddress("mailDestinatario@example.com"); $mail->AddAddress("paramonty@gmail.com"); $mail->SMTPDebug = 1; if ($archivoName != "") { $mail->AddAttachment($archivoTemp, $archivoName); }
pablomonteserin.com
Ejercicio
Nota: El fichero html enviar la informacin a un fichero php que ser el que cambie de color.
Ver ejercicio funcionando
pablomonteserin.com
Ejercicio
pablomonteserin.com
Ejercicio
La combo debe recordar la opcin seleccionada tras hacer submit. Pista!: Una opcin de una combo est seleccionada si tiene su atributo selected con el siguiente valor: selected = selected
pablomonteserin.com
Ejercicio
Hacer una calculadora que haga uso de los operadores aritmticos +, -, *, /, mande la informacin a un nuevo documento php y determine la operacin a realizar por medio de una estructura de control else if.
if($variable == "valor1"){ $resultado = "resultado 1"; }else if($variable == "valor2"){ $resultado = "resultado 2"; }
pablomonteserin.com
Ejercicio
Hacer una calculadora que haga uso de los operadores aritmticos +, -, *, /, mande la informacin a un nuevo documento php y determine la operacin a realizar por medio de una estructura de control switch.
switch($opcion){ case opcion1: $solucion = Solucion1 break; .... }
pablomonteserin.com
Ejercicio
Rehacer la calculadora usando la funcin eval. <?php $signo = "*"; $a=3; $b=6; $resultado = eval("return ".$a.$signo.$b." ;"); echo $resultado; ?>
pablomonteserin.com
bucle for
<?php for($i=0; $i<10; $i++){ echo $i.<br/>; } ?>
Ver resuelto
pablomonteserin.com
Ejercicio
Imprimir los numeros pares que hay dentro de los 100 primeros nmeros naturales. Nota: No utilizar la estructura de control if para resolver este ejercicio.
Ver resuelto
pablomonteserin.com
Ejercicio
Imprimir los numeros pares que hay dentro de los 100 primeros nmeros naturales Para ello tendremos un bucle for que en cada iteracin ir evaluando si el bucle es par o impar. El operador % nos da el resto de dividir un nmero entre otro. Ej: 7%2=1
Ver resuelto
pablomonteserin.com
Ejercicio
Imprimir los nmeros del 1 al 20. - Para nmeros divisibles por 3, imprimir Fizz. - Para nmeros divisibles por 5, imprimir Buzz. - Para nmeros divisibles por 3 y 5, imprimir FizzBuzz. - En cualquier otro caso, imprimir el nmero.
Verlo funcionando
pablomonteserin.com
Bucle while
<?php $i=1; while($i<10){ echo $i; $i++; } ?>
Ver ejercicio
pablomonteserin.com
pablomonteserin.com
Funciones
Subprograma o subrutina que realiza una tarea especfica y devuelve un valor
pablomonteserin.com
Verlo funcionando
pablomonteserin.com
Verlo funcionando
pablomonteserin.com
Ejercicio
Crear una funcin llamada hoyQuieroComer que recibe un parmetro comida. Cuando llamemos a la funcin se mostrar un mensaje de alerta indicndonos lo que deseamos comer.
Verlo funcionando
pablomonteserin.com
Ejercicio
pablomonteserin.com
Ejercicio
Crea una funcin que recibe el ancho y el alto de un rectngulo y calcula su permetro. Cuando una funcin recibe varios parmetros, estos irn separados por coma. Ejemplo: calculaPerimetro(alto, ancho);
pablomonteserin.com
Verlo funcionando
pablomonteserin.com
Ejercicio
Dentro del if estamos llamando a la funcin calculaUnCuarto. Defnela, de tal forma que nos devuelva un cuarto del valor pasado como parmetro. Luego, en el if, psale el parmetro necesario para que se muestre el alert The statement is true. <?php if (calculaUnCuarto( ) % 3 == 0 ) { echo "The statement is true"; } else { echo "The statement is false"; } ?>
Verlo funcionando
pablomonteserin.com
Ejercicio
Crea una funcin llamada coste_hotel que recibe como parametro el nmero de noches. La funcin debe devolver cuanto es necesario pagar teniendo en cuenta que cada noche cuesta 140 euros.
Verlo funcionando
pablomonteserin.com
Ejercicio
Continuando el ejercicio anterior, despues de la funcin ya escrita aadiremos otra funcin llamada coste_avion. Esta funcin tiene como parmetro de entrada el nombre de una ciudad y devolver un coste en funcin de dicho parmetro. Los costes por ciudad son los siguientes: "Charlotte": 183 "Tampa": 220 "Pittsburgh": 222 "Los Angeles": 475
Verlo funcionando
pablomonteserin.com
Ejercicio
Continuando con el ejercicio anterior, despus de las dos funciones ya escritas aadiremos otra funcin llamada coste_alquiler_coche. Esta funcin tiene como parmetro de entrada el nmero de das y devolver un coste en funcin de dicho parmetro, teniendo los siguientes aspectos en cuentra: - Cada da de alquiler cuesta 40 . - Si alquilas un coche por 3 das o ms, obtienes un descuento de 20 sobre el total. - Si alquilas un coche por 7 das o ms, obtienes un descuento de 50 sobre el total (no acumulable con los 20 de haber alquilado por ms de 3 das).
Verlo funcionando
pablomonteserin.com
Ejercicio
Continuando con el ejercicio anterior, despus de las tres funciones ya escritas, aadiremos otra funcin llamada coste_viaje. Esta funcin tiene dos parmetros de entrada: ciudad y dias. Dentro de esta funcin llamaremos a las otras tres ya definidas para calcular el coste total del viaje. Calcular el coste de un viaje a Los Angeles por cinco das.
Verlo funcionando
pablomonteserin.com
Verlo funcionando
pablomonteserin.com
Ejercicio
Utilizando el mtodo substr imprimir las letras que van desde la posicin 4 a la 7 de la cadena wonderful day, es decir derf.
pablomonteserin.com
Ejercicio
animals = "catdogfrog" cat = # The first three characters of animals dog = # The fourth through sixth characters frog = # From the seventh character to the end
pablomonteserin.com
Ejercicio
Utilizando las funciones strlen(), substr() y rand(), obtener una letra aleatoria de tu nombre.
pablomonteserin.com
Ejercicio
Reescribir el ejercicio de la calculadora utilizando funciones para las operaciones aritmticas. El formulario no se llamar a s mismo, si no a un archivo php externo. function suma($operando1, $operando2){ $solucion = $operando1 + $operando2; return $solucion; }
pablomonteserin.com
Ejercicio
Reescribir el ejercicio de la calculadora utilizando una nica funcin que reciba 3 parmetros (los dos operandos y la operacin a realizar). Dentro de esta funcin estar el switch que determina la operacin a realizar.
pablomonteserin.com
fopen
$fp = fopen($file, "r+");
r Abre el archivo para lectura. Coloca el puntero al principio del archivo. r+ Abre el archivo para lectura y escritura. Coloca el puntero al principio del archivo.
pablomonteserin.com
Nota: Si el archivo es abierto en uno de estos modos, cualquier informacin que sea escrita siempre ser aadida al final del archivo.
pablomonteserin.com
pablomonteserin.com
pablomonteserin.com
pablomonteserin.com
Ejercicio
Hacer un contador
pablomonteserin.com
Ejercicio
Haciendo uso de las funciones de cadena substr y strlen, hacer un contador que imprima una fotografa para cada uno de los dgitos.
Descargar fotografas
pablomonteserin.com
Servidor al que se conecta es: localhost Directorio en el que se almacenan los ficheros es: /var/www Navegador y SO: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0 Lenguaje del navegador (no del SO): en-us,en;q=0.5 Puerto por el que el cliente se conecta a internet: 80 Direccion IP (LAN) del usuario: 127.0.0.1 Ubicacion del fichero actual: /pablomonteserin/apuntes/php_mysql/php_exercises/7informacionDelCliente.php
Verlo funcionando
pablomonteserin.com
include
Permite incluir el cdigo de otros ficheros en nuestra pgina web. La diferencia entre require() e include() es que en caso de no encontrar el fichero a incluir include() produce un Warning mientras que require() produce un Error Fatal. La funcin require_once() se comporta de manera similar a require(), con la nica diferencia que si el cdigo ha sido ya incluido, no se volver a incluir.
pablomonteserin.com
include
Verlo funcionando
pablomonteserin.com
Ejercicio
Hacer dos pginas web cuyas secciones cabecera y botonera sean cargadas con dos includes respectivamente.
contenido1.php contenido2.php Verlo funcionando. cabecera.html
botonera.html
pablomonteserin.com
Ahora los links de la botonera enlazarn con la propia pgina, pasndole un parmetro que ser recogido y usado para que una estructura switch cargue el contenido correspondiente.
Para realizar este ejercicio necesitaremos 5 pginas: - cabecera.html - botonera.html - contenido1.html - contenido2.html - index.php
Verlo funcionando
pablomonteserin.com
Cookies
Son archivos de texto almacenados en el ordenador del cliente y que contienen informacin que ser utilizada por la pgina web para cuando el cliente se vuelva a conectar. Gracias a ellas un sitio web puede almacenar informacin acerca de tu perfil. <?php $nombre = "Juan"; setcookie("nombre", $nombre); echo $_COOKIE['nombre']; ?>
Verlo funcionando
pablomonteserin.com