1 / 29

PHP

PHP. PHP. PHP ( H ypertext P re p rocessor)  preprocesador de Hipertexto Se ejecuta en el servidor El resultado de ejecutarse es código HTML Manual oficial en www.php.net/manual/es. Hola mundo.php3. <html> <body> Hola <?php echo "mundo"; ?> </body> </html>. <html> <body>

chesmu
Télécharger la présentation

PHP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PHP

  2. PHP • PHP (Hypertext Preprocessor)  preprocesador de Hipertexto • Se ejecuta en el servidor • El resultado de ejecutarse es código HTML • Manual oficial en www.php.net/manual/es Hola mundo.php3 <html> <body> Hola <?php echo "mundo"; ?> </body> </html> <html> <body> Hola mundo </body> </html>

  3. Sintaxis básica • código PHP entre <?php …. ?> • comentarios • 1 línea: con // ó # ó /* ….. */ • más de 1 linea: /* …. */ • las variables • empiezan por el signo $ • no hay que declararlas antes de usarlas • pueden coger cualquier tipo, así como cambiar de tipo sobre la marcha • mayusculas / minusculas  da igual menos para el nombre de las variables • Ej: la función echo y ECHO son la misma, pero $i es diferente a $I • cada instrucción acaba en ; , podemos meter varias instrucciones por linea <?php $i="kk"; echo "A"; //echo "B"; #echo "C"; /*echo "D";*/ /*echo "E"; echo "F";*/ echo "G"; echo $i; $i=2; echo $i; ECHO $i+1; $i=4.5; echo $i; ?> AGkk234.5 sintaxis.php3

  4. Sintaxis básica - En un archivo PHP es posible convinar PHP y HTML de las siguientes formas a.php3 b.php3 <?php echo “<html><body>hola mundo</body></html>”; ?> <html><body> hola mundo </body></html> <html><body> <?php echo “Uno <br>”; ?> Uno<br> <?php echo “Dos<br>”; ?> Dos<br> <?php echo “Tres <br>”; ?> Tres<br> </body></html> d.php3 c.php3 <html><body> <?php echo “hola mundo”; ?> </body></html>

  5. TIPOS <?php $n = 1234; $n = -123; $n = 1.234; $a="cadena 1"; //comillas simples o dobles //OPERADOR . PARA CONCATENAR $b='cadena 2 '.$a; //COMILLAS DOBLES: sí se expande la variable a su valor echo "Esta es $a"."<br>"; echo "Esta es ".$a."<br>"; //OPERADOR . PARA CONCATENAR //COMILLAS SIMPLES: aqui no se expande la variable a su valor echo 'Esta es $a'."<br>"; echo 'Esta es '.$a."<br>"; /* si utilizamos un tipo de comillas para la cadena, dentro de esta podemos incluir el otro tipo de comillas*/ echo "dijo 'hola'"."<br>"; //si queremos rizar el rizo, e incluir el mismo tipo de comillas echo 'dijo \'hola\' '."<br>"; echo "dijo \"hola\" "."<br>"; //con comillas simples no entiende los \n o los \t echo '<p>1\n 2\t 3</p>'; //con comillas simples no entiende los \n o los \t echo "<p>1\n 2\t 3</p>"; echo "dijo ".'"hola"'."<br>"; ?> Esta es cadena 1Esta es cadena 1 Esta es $aEsta es cadena 1 dijo 'hola'dijo 'hola' dijo "hola" 1\n 2\t 3 1 2 3 dijo "hola" MI RECOMENDACIÓN: UTILIZAR COMILLAS DOBLES Y CONCATENAR CUANDO NECESITEIS METER COMILLAS DOBLES EN LA CADENA

  6. TIPOS2 <?php $nombre=""; $nombre="Juan"; $apellidos="Perez"; // no se suman las cadenas, sino que se concatenan con el operador . $nombre_completo=$nombre.' '.$apellidos; echo $nombre_completo; echo '<br>'; //este es el otro tipo de convenio para nombres de variables $NombreCompleto=$nombre.' '.$apellidos; echo $NombreCompleto; echo '<br>'; $nombre = $nombre.' '.$apellidos; //o $nombre .= ' '.$apellidos; echo $nombre; echo '<br>'; //las cadenas son arrays de 0 a longitud-1 /* Obtener el primer carácter de una cadena */ $str = 'Esto es una prueba.'; $first = $str[0]; echo "Prueba1:$first $str <br>"; /* Obtener el último carácter de una cadena. */ $str = 'Esto es aún una prueba.'; $last = $str[strlen($str)-1]; echo "Prueba2: $str $last<br>"; $i=0; $i++; $i--; echo $i; ?> Juan Perez Juan Perez Juan Perez Prueba1:E Esto es una prueba. Prueba2: Esto es aún una prueba. . 0

  7. Conversiones <?php $i=2004; //número --> cadena $i=$i.""; //acabamos de convertirla en cadena echo $si[0]; echo $i[1]; echo '<br><br>'; //cadena --> número $si=$i+2; //acabamos de convertirla en número echo $i; ?> 20 2006 El operador utilizado nos determina el tipo

  8. ARRAY <?php //empiezan en 0 $dia[0]="LUNES"; $dia[1]="MARTES"; $dia[2]="MIERCOLES"; $dia[3]="JUEVES"; $dia[4]="VIERNES"; $dia[5]="SABADO"; $dia[6]="DOMINGO"; echo $dia[3]; echo '<br>'; $dia2=array("LUNES","MARTES"); echo $dia2[1]; echo '<br>'; $i=3; $i=date("w")-1; //función q me indica 0 para domingo, 1 para lunes.. echo "Hoy es el dia $dia[$i]"; echo '<br>'; //Esto funciona echo "$dia[$i]"; echo '<br>'; //Esto NO funciona, descomentar para probar //y es porque se lia al expandir la variable $i //dentro de una cadena con comillas //echo "$dia[$i+1]"; echo '<br>'; //Esto SI funciona echo $dia[$i+1]; echo '<br>'; //Esto SI funciona echo "Hoy es el dia ".$dia[date("w")-1]; //OJO, LOS DOMINGOS FALLARA, AVERIGUAR POR QUE MOTIVO ?> JUEVES MARTES Hoy es el dia LUNES LUNES MARTES Hoy es el dia LUNES

  9. ARRAYS2: asociativos <?php $a["color"] = "rojo"; $a["sabor"] = "dulce"; $a["forma"] = "redondeada"; $a["nombre"] = "manzana"; $a[3] = 4; //el array asociativo no expande entre comillas dobles //echo "Color: $a["color"] Nombre: $a["nombre"] y número: $a[3] <br>"; //solucion: echo "Color: ".$a["color"]." Nombre: ".$a["nombre"]." y número: $a[3] <br>"; ?> Color: rojo Nombre: manzana y número: 4 Operador count <?php $dia[0]="LUNES"; $dia[1]="MARTES"; $dia[2]="MIERCOLES"; $dia[3]="JUEVES"; $dia[4]="VIERNES"; $dia[5]="SABADO"; $dia[6]="DOMINGO"; echo "Numero de elementos:".count($dia)."<br>"; for ($i = 0; $i < 7; $i++) { echo $dia[$i].'<br>'; } ?> Numero de elementos:7LUNESMARTESMIERCOLESJUEVESVIERNESSABADODOMINGO

  10. url.php3 <html> <body> <?php if(!$i) //si no tiene valor se lo doy { //esto solo ocurre la primera vez $i=1; $cadena="José Maño - "; } else //si ya tienen valor lo incremento { //$i = $i++; esto esta mal $i++; $cadena = $cadena.' '.$cadena; } //en cualquier caso muestro su valor echo "i:$i"; echo '<br>'; echo "Cadena: ".htmlentities($cadena); //codificar a entidades HTML echo '<br><br><br>'; //relleno la url. Para separar variables utilizar & echo "<a href='url.php3?i=$i&cadena=".urlencode($cadena)."'>Incrementar</a>"; //cod. cadenas a form. URL echo "<br><br><a href='url.php3'>Ir al principio</a>"; ?> </body> </html> DATOS AL SERVIDOR MEDIANTE URL

  11. DATOS AL SERVIDOR MEDIANTE URL • string htmlentities ( string cadena)*/ • Convierte los acentos, tildes, etc a entidades HTML • Como ensucia el codigo, solo la utilizaremos cuando vallamos a entregar la página, ya que en los navegadores con el español instalado se verá correctamente • string urlencode ( string cadena) • - Devuelve una cadena en la que todos los carácteres no alfanuméricos (no letras o numeros) han sido reemplazados con un signo de porcentaje (%) • seguido por dos dígitos hexadecimales. Los espacios han sido codificados como signos positivos (+). • - PHP nos decodifica ya el contenido de las variables enviadas en una URL o formulario, así que no hemos de utilizar la función inversa a esta

  12. secuencia formulario.php3 • <html><body><h1>INGRESO CLIENTE</h1> • <?php • //PHP nos crea automaticamente las variables que nos llegan a través • //de una URL o de un formulario, en este caso $vnombre $vdni y • //vmando_ya_los_datos value • //si no tiene valor definido, es porque no venimos del formulario • if (!$vmando_ya_los_datos) • echo “ • <form action=‘secuencia%20formulario.php3'> • Nombre: <input type='text' name=vnombre value='$vnombre'><br> • DNI: <input type='text' name=vdni value='$vdni'> <br><br> • <input type=hidden name=vmando_ya_los_datos value=si> • <input type=submit value='dar de alta'> • <input type=reset value='borrar'> • </form>"; • else //si sí tiene valor definido (nos da igual que valor, con que sea dif. a cadena vacia) • echo " Se realizó correctamente el ingreso de $vnombre con DNI: $vdni"; • ?> • </body></html> DATOS AL SERVIDOR MEDIANTE FORMULARIO

  13. formulario.php3 • <html><body><h1>INGRESO CLIENTE</h1> • <?php • $msg_error=""; • if($vmando_ya_los_datos) • { • if (!$vnombre) • $msg_error= "Le falta por darnos el nombre</br>"; • if (!$vdni) • $msg_error= $msg_error."Le falta por darnos el dni</br>"; • echo $msg_error; • } • if ( ($msg_error)||(!$vmando_ya_los_datos) )//hemos de mostrarlo • echo “ • <form action='formulario.php3'> • Nombre: <input type='text' name=vnombre value='$vnombre'><br> • DNI: <input type='text' name=vdni value='$vdni'> <br><br> • <input type=hidden name=vmando_ya_los_datos value=si> • <input type=submit value='dar de alta'> • <input type=reset value='borrar'> • </form>"; • else • echo "El usuario fue añadido correctamente a blablabla..."; • ?> • </body></html> DATOS AL SERVIDOR MEDIANTE FORMULARIO

  14. Ver maquina de estados en PHP

  15. Operadores de comparación == != > < >= <= Operadores lógicos

  16. condicionales.php3 $a=1; $b=0; $c=""; if ($a) echo "a es diferente de 0<br>"; if ($b) echo "b tiene valor diferente a cero<br>"; if (!$b) echo "b tiene valor cero, o no esta definida<br>"; if ($d) echo "la variable d esta definida y tiene valor diferente a 0"; else echo "la variable d NO esta definida o tiene valor 0"; echo '<BR><BR>'; if ($c) //si NO es cadena vacia echo $c; else //si cadena vacia (o no esta definida) echo '$c es una cadena vacia'; Condicionales

  17. condicionales2.php3 $a=1; $b=0; $posicion = "arriba"; if ($a < $b) echo "a es menor que b"; else //varias instrucciones con llaves { echo "no (a < b)"; echo "<BR><BR>"; } switch($posicion) { case "arriba": // Bloque 1 echo "La variable contiene"; echo " el valor arriba<BR><BR>"; /* break; */ case "abajo": // Bloque 2 echo "La variable contiene"; echo " el valor abajo<BR>"; break; case "izquierda": case "derecha": echo "La variable contiene"; echo "izquierda o derecha<BR>"; break; default: // caso por defecto echo "La variable contiene otro valor"; echo " distinto a los anteriores"; } Condicionales2 Si quitamos el break, el bloque 1 se extiende hasta el siguiente break

  18. bucles.php3 //Estos tres bucles tienen la misma salida //Recordar que el do-while se ejecuta siempre almenos //una vez, por verificar la condición al final $i=0; while ($i<5) { echo "El valor de i es ", $i,"<br>"; $i++; } echo "<BR>"; for($i=0 ; $i<5 ; $i++) { echo "El valor de i es ", $i,"<br>"; } echo "<BR>"; $i = 0; do { echo "El valor de i es ", $i,"<br>"; $i++; } while ($i<5); Bucles

  19. Salida por pantalla No formateada  ECHO Formateada  PRINTF / ECHO SPRINTF printf.php3 printf(“2 con diferentes formatos: <BR>%d <BR> %f <BR> %.2f <BR><BR>",2,2,2); $apellidos="Perez"; printf("Nombre: %s <BR> Apellidos %s <BR> Letra DNI: %s - %c","Pepe",$apellidos ,"s",ord("s") ); //Cuando utilizamos %c en printf para mostrar un caracter, //espera que le pasemos el cod. ascii del caracter //sprintf no la muestra, sino que la devuelve $cadena=sprintf("<BR><BR>Nombre: %s","Jose"); echo $cadena; printf($cadena); echo sprintf("<BR>Nombre: %s <BR>","Luis"); 2 con diferentes formatos:2 2.000000 2.00 Nombre: Pepe Apellidos Perez Letra DNI: s - sNombre: JoseNombre: JoseNombre: Luis

  20. FUNCIONES DE CADENA

  21. Modificaciones de cadenas

  22. funciones.php3 //En PHP3, las funciones deben definirse antes de que se //referencien. En PHP4 no existe tal requerimiento function media_aritmetica($a, $b) { $media=($a+$b)/2; return $media; } echo media_aritmetica(4,6),"<br>"; //Procedimiento: función que no devuelve valor function muestra_valores($a, $b, $c) { echo "a: $a, b: $b, c:$c"; } $cad="kk"; muestra_valores("hola",media_aritmetica(4,6),$cad); Funciones 5a: hola, b: 5, c:kk

  23. funciones2.php3 //Uso de parámetros por defecto en funciones function makecoffee ($type = "cappucino") { return "Hacer una taza de $type.\n<BR>"; } echo makecoffee (); echo makecoffee ("espresso"); //De utilizar parámetros por defecto, estos tienen //que estar a la derecha del último valor por defecto function HacerCafe ($numero, $type = "cappucino") { return "Hacer $numero tazas de $type.\n<BR>"; } echo HacerCafe (1,"expresso"); echo HacerCafe (1); //funciona bien //Si no lo hacemos así, nos llevaremos sorpresas, además de un warning function makeyogurt ($tipo = "acidophilus", $sabor) { return "Haciendo un yogurt $tipo de $sabor.\n<BR>"; } echo makeyogurt ("mora"); Parámetros por defecto Hacer una taza de cappucino. Hacer una taza de espresso. Hacer 1 tazas de expresso. Hacer 1 tazas de cappucino. Warning: Missing argument 2 .. Haciendo un yogurt mora de .

  24. <?php //string trim ( string cad) //Esta función elimina los espacios en blanco del comienzo y del final de una cadena //Los caracteres de espacio que elimina realmente son: "\n", "\r", "\t", "\v", "\0", y el espacio en sí. if($vmando_ya_los_datos) //la variable es muy larga pero es para que lo entendais { echo "Los datos recibidos son: &quot;$vnombre&quot; y &quot;$vdni&quot"; $vnombre = trim($vnombre); $vdni = trim($vdni); echo "<BR><BR>Los datos recibidos, tras pasarles la función trim son: &quot;$vnombre&quot; y &quot;$vdni&quot, pero para apreciarlo bien fijaros en la URL (signo + es un espacio) y en el código fuente"; } if (!$vmando_ya_los_datos) //entonces hemos de mostrar formulario echo " <form action='trim.php3'> Nombre: <input type='text' name=vnombre value='$vnombre'><br> DNI: <input type='text' name=vdni value='$vdni'> <br><br> <input type=hidden name=vmando_ya_los_datos value=si> <input type=submit value='dar de alta'> <input type=reset value='borrar'> </form> ?> Función TRIM trim.php3

  25. Al contrario que en C, en las funciones no se puede acceder directamente a las variables globales salvo que lo hagamos explicitamente. Esto es pq una funcion jamas deberia utilizar un variable global. Cuando todo lo que necesita una funcion lo ponemos en su lista de parametros, ante un valor inesperado de una variable global, rapidamente localizaremos en que partes del programa se modifica esta variable global. <?php $a=1; $b=3; function muestra_a() { echo $a; } function muestra_b() { global $b; //declaración explicita de uso de variable global echo $b; } muestra_a(); muestra_b(); $b=5; muestra_b(); ?> ambito variables.php3 Funciones sin parametros Ambito de las variables 135

  26. Include(“fichero local”); Cuando ponemos la instrucción de PHP Include(“fichero_local”) conseguimos algo parecido a insertar todo el código de fichero_local justo en el sitio donde esta la linea del include. En los archivos incluidos, el código PHP debe ir entre <?php ?> arriba1.inc <html> <body> <?php echo "PARTE DE ARRIBA<BR>" ?> Include1.php3 <html> <body> <?php echo "PARTE DE ARRIBA<BR>" ?> PARTE DEL MEDIO<BR> <?php echo "PARTE DE ABAJO<BR>" ?> </body> </html> <?php include("arriba1.inc"); ?> PARTE DEL MEDIO<BR> <?php include("abajo1.inc"); ?> Include1.php3 abajo1.inc <?php echo "PARTE DE ABAJO<BR>" ?> </body> </html> De esta forma tan sencilla podemos darle un aspecto común a todas nuestras páginas

  27. libreria1.inc arriba2.inc <?php function fecha() { return date( "M d Y H:i:s"); } ?> <html> <head> <title><?php echo $titulo ?></title> <META name="description" content="<?php echo $descripcion ?>"> <META name="keywords" content="<?php echo $palabras_clave ?>"> </head> <body> <?php $titulo = "Foro de dudas"; $description = "Foro de PHP, HTML y otras tecnologías web"; $palabras_clave = "PHP, HTML"; $pregunta = "¿Donde se ejecuta PHP?"; $respuesta = "En el servidor"; include("libreria1.inc"); //nuestro código PHP reutilizable include("arriba2.inc"); //nos vale para cq página include("foro.inc"); //solo nos vale para el foro include("abajo2.inc"); //nos vale para cq página ?> Include2.php3 foro.inc <h1><?php echo $pregunta; ?> &nbsp;&nbsp;&nbsp;&nbsp; <font size="2"><?php echo fecha(); ?></font> </h1> <blockquote> <?php echo $respuesta; ?> </blockquote> abajo2.inc <a href="">inicio</a>&nbsp;&nbsp; <a href="">contacto</a>&nbsp;&nbsp; &#169; 1999-2004 Empresa </body> </html>

  28. Include2.php3 <?php $titulo = "Foro de dudas"; $description = "Foro de PHP, HTML y otras tecnologías web"; $palabras_clave = "PHP, HTML"; //$pregunta = "¿Donde se ejecuta PHP?"; //$respuesta = "En el servidor"; include("libreria1.inc"); //nuestro código PHP reutilizable include("arriba2.inc"); //nos vale para cq página include("foro.inc"); //solo nos vale para el foro include("abajo2.inc"); //nos vale para cq página ?> <a href=“include2.php3?pregunta=¿donde+se+ejecuta+html?&respuesta=en+el+servidor”> ¿donde se ejecuta el html? </a> <a href=“include2.php3?pregunta=………..”> ¿………………..? </a>

More Related