proyectos web 3 introduccion php
TRANSCRIPT
![Page 1: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/1.jpg)
Tema 3:Lenguaje PHP
Instituto Superior Tecnológico Público“Francisco de Paula Gonzáles Vigil”
Carrera Profesional de Computación e Informática
“PROYECTOS WEB"
Lic. José Luis Ponce [email protected]
www.redtacna.net
![Page 2: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/2.jpg)
JLPS
Introducción a PHP
• Lenguajes de script– PHP es un lenguaje de script del lado del servidor. Otros
lenguajes similares son ASP, JSP o ColdFusion– Los scripts PHP están incrustados en los documentos
HTML y el servidor los interpreta y ejecuta antes de servir las páginas al cliente
– El cliente no ve el código PHP sino los resultados que produce
![Page 3: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/3.jpg)
JLPS
Introducción a PHP
• ¿Cómo funciona PHP?
PáginaHTML
PáginaHTML
internet
Servidor web Cliente(navegador)
<P>Hola, Ana</P>
![Page 4: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/4.jpg)
JLPS
Introducción a PHP
• ¿Cómo funciona PHP?
PáginaPHP
IntérpretePHP
PáginaHTML
PáginaHTML
internet
Servidor web Cliente(navegador)
<?PHP $nombre = "Ana"; print ("<P>Hola, $nombre</P>");?>
<P>Hola, Ana</P>
![Page 5: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/5.jpg)
JLPS
Introducción a PHP
• Breve historia de PHP– Creado por Rasmus Lerdorf para uso personal en
1994– PHP = Personal Hypertext Processor– Versión actual: PHP 5– Es un módulo que se añade al servidor web y fue
concebido inicialmente para Apache• ¿Por qué PHP?
– Por sus ventajas: es potente, fácil de aprender, de libre distribución, permite el acceso a bases de datos y otras funcionalidades orientadas a la red
– Dispone de abundante soporte en la Web
![Page 6: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/6.jpg)
JLPS
Introducción a PHP
• Requisitos– Servidor web Apache (www.apache.org)– con el módulo PHP (www.php.net)– y la base de datos MySQL (www.mysql.com) si se
desea crear páginas dinámicas• Otras utilidades
– Herramientas para la gestión de MySQL, como PHPMyAdmin (www.phpmyadmin.net)
– Editores de PHP, como DevPHP (www.sourceforge.net) o Eclipse (www.eclipse.org)
– Manuales de PHP y MySQL
![Page 7: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/7.jpg)
JLPS
Lenguaje PHP básico
1. Sintaxis básica2. Tipos de datos3. Variables4. Constantes5. Expresiones y operadores6. Estructuras de control7. Funciones8. Tablas9. Bibliotecas de funciones
![Page 8: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/8.jpg)
JLPS
Sintaxis básica
• PHP es sensible a las mayúsculas• ¿Cómo se incrusta en la página web?
<?PHP ... ?>recomendado, siempre disponible
<?= expresión ?>equivale a <? echo expresión ?>
• Las instrucciones se separan con un ; como en C. La marca final ?> implica un ;
• Comentarios: como en C, /* … */ y //
![Page 9: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/9.jpg)
JLPS
Sintaxis básica
• Para imprimir: echo y print
echo: muestra una o más cadenasecho cadena1 [, cadena2…]; // no es una funciónecho “Hola mundo”;echo “Hola “, “mundo”;
print: muestra una cadenaprint cadena; // no es una funciónprint “Hola mundo”;print “Hola “ . “mundo”;
![Page 10: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/10.jpg)
JLPS
Sintaxis básica
• Ejemplo:<HTML><HEAD><TITLE>Mi primer programa en PHP</TITLE></HEAD>
<BODY>
<?PHP print (“<P>Hola mundo</P>”);?>
</BODY></HTML>
![Page 11: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/11.jpg)
JLPS
Sintaxis básica
• Uso de \n para generar código HTML legible• a) Sin \n
print (“<P>Párrafo 1</P>”);print (“<P>Párrafo 2</P>”);
<P>Párrafo 1</P><P>Párrafo 2</P>
Párrafo 1
Párrafo 2
Código PHP
Código HTML
Salida
![Page 12: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/12.jpg)
JLPS
Sintaxis básica
• Uso de \n para generar código HTML legible• b) Con \n
print (“<P>Párrafo 1</P>\n”);print (“<P>Párrafo 2</P>\n”);
<P>Párrafo 1</P><P>Párrafo 2</P>
Párrafo 1
Párrafo 2
Código PHP
Código HTML
Salida
![Page 13: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/13.jpg)
JLPS
Sintaxis básica
• Inclusión de ficheros externos:– include()– require()
• Ambos incluyen y evalúan el fichero especificado• Diferencia: en caso de error include() produce un warning y
require() un error fatal• Se usará require() si al producirse un error debe
interrumpirse la carga de la página• Ejemplo:
![Page 14: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/14.jpg)
JLPS
Sintaxis básica
<HTML><HEAD> <TITLE>Título</TITLE><?PHP// Incluir bibliotecas de funciones require ("conecta.php"); require ("fecha.php"); require ("cadena.php"); require ("globals.php");?></HEAD><BODY><?PHP include ("cabecera.html");?>// Código HTML + PHP. . .<?PHP include ("pie.html");?></BODY></HTML>
![Page 15: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/15.jpg)
JLPS
Tipos de datos
• PHP soporta 8 tipos de datos primitivos:– Tipos escalares: boolean, integer, double, string– Tipos compuestos: array, object– Tipos especiales: resource, NULL
• El tipo de una variable no se suele especificar. Se decide en tiempo de ejecución en función del contexto y puede variar
• Funciones de interés:– La función gettype() devuelve el tipo de una variable– Las funciones is_type comprueban si una variable es de
un tipo dado:is_array(), is_bool(), is_float(), is_integer(),
is_null(), is_numeric(), is_object(), is_resource(), is_scalar(),
is_string()– La función var_dump() muestra el tipo y el valor de una
variable. Es especialmente interesante con los arrays
![Page 16: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/16.jpg)
JLPS
Tipos de datos
• Tipo integer (números enteros)– 27, -5, 0
• Tipo double (números reales)– 1.234, -5.33
• Tipo boolean (lógico)– Valores: true, false (insensibles a las mayúsculas)– El 0 y la cadena vacía tienen valor false
![Page 17: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/17.jpg)
JLPS
Tipos de datos
• Tipo string:– Las cadenas se encierran entre comillas simples o
dobles:• ‘simples’: admite los caracteres de escape \’ (comilla
simple) y \\ (barra). Las variables NO se expanden• “dobles”: admite más caracteres de escape, como \n,
\r, \t, \\, \$, \”. Los nombres de variables SÍ se expanden
• Ejemplos:$a = 9;print ‘a vale $a\n’;
// muestra a vale $a\nprint “a vale $a\n”; // muestra a vale 9 y avanza una líneaprint “<IMG SRC=‘logo.gif’>”; // muestra <IMG SRC=‘logo.gif’>print “<IMG SRC=\”logo.gif\”>”; // muestra <IMG SRC=“logo.gif”>
– Acceso a un carácter de la cadena:• La forma es $inicial = $nombre{0};
![Page 18: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/18.jpg)
JLPS
Variables
• Las variables siempre van precedidas de un $• El nombre es sensible a las mayúsculas• Comienzan por letra o subrayado, seguido de letras,
números o subrayado• Variables predefinidas:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,
$_ENV, $_REQUEST, $_SESSION• Ámbito: globales al fichero (excepto funciones) o locales
a una función• Ejemplo:
$valor = 5;print “El valor es: “ . $valor . “\n”;print “El valor es: $valor\n”; // ojo: comillas dobles
Resultado:El valor es: 5
![Page 19: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/19.jpg)
JLPS
Variables
• Variables variables– Se pueden crear nombres de variables
dinámicamente– La variable variable toma su nombre del valor de otra
variable previamente declarada– Ejemplo:
$a = "hola";$$a = "mundo";
print "$a $hola\n";print "$a ${$a}";
Resultado:hola mundohola mundo
![Page 20: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/20.jpg)
JLPS
Variables
<?PHP $mensaje_es="Hola"; $mensaje_en="Hello"; $idioma = "es"; $mensaje = "mensaje_" . $idioma; print $$mensaje;?>
• Ejemplo de variables variables: página internacionalizada (1)
![Page 21: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/21.jpg)
JLPS
Variables
<?PHP $mensaje_es="Hola"; $mensaje_en="Hello"; $idioma = "en"; $mensaje = "mensaje_" . $idioma; print $$mensaje;?>
• Ejemplo de variables variables: página internacionalizada (2)
![Page 22: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/22.jpg)
JLPS
Constantes
• Definición de constantes:define (“CONSTANTE”, “hola”);print CONSTANTE;
• No llevan $ delante• Sólo se pueden definir constantes de los tipos escalares
(boolean, integer, double, string)
![Page 23: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/23.jpg)
JLPS
Expresiones y operadores
• Operadores aritméticos:+, -, *, /, %, ++, --
• Operador de asignación:=operadores combinados: .=, +=, etc$a = 3; $a += 5; a vale 8$b = “hola ”; $b .= “mundo”; b vale “hola mundo” Equivale a $b = $b . “mundo”;
• Operadores de comparación:==, !=, <, >, <=, >= y otros
• Operador de control de error: @. Antepuesto a una expresión, evita cualquier mensaje de error que pueda ser generado por la expresión
• Operadores lógicos:and (&&), or (||), !, xorand/&& y or/|| tienen diferentes prioridades
• Operadores de cadena:concatenación: . (punto)asignación con concatenación: .=
![Page 24: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/24.jpg)
JLPS
Expresiones y operadores
• Precedencia de operadores (de mayor a menor):
++, --*, /, %+,-<, <=, >, >===, !=&&||andor
![Page 25: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/25.jpg)
JLPS
Estructuras de control
• Estructuras selectivas:– if-else– switch
• Estructuras repetitivas:– while– for– foreach
![Page 26: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/26.jpg)
JLPS
Estructuras de control
• Estructura selectiva if-else
• Mismo comportamiento que en C • Las sentencias compuestas se encierran entre
llaves• elseif puede ir todo junto
if (condición) sentencia
if (condición1) sentencia 1else if (condición2) sentencia 2...else if (condición n) sentencia nelse sentencia n+1
if (condición) sentencia 1else sentencia 2
![Page 27: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/27.jpg)
JLPS
Estructuras de control
• Ejemplo de estructura selectiva if-else:
<?PHPif ($sexo == ‘M’)
$saludo = "Bienvenida, ";else
$saludo = "Bienvenido, ";$saludo = $saludo . $nombre;print ($saludo);
?>
![Page 28: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/28.jpg)
JLPS
Estructuras de control
• Estructura selectiva switchswitch (expresión){
case valor_1:sentencia 1break;
case valor_2:sentencia 2break;
…case valor_n:
sentencia n break;
defaultsentencia n+1
}• Mismo comportamiento que en C, sólo que la expresión
del case puede ser integer, float o string
![Page 29: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/29.jpg)
JLPS
Estructuras de control
• Ejemplo de estructura selectiva switch:
switch ($extension){ case ("PDF"): $tipo = "Documento Adobe PDF"; break; case ("TXT"): $tipo = "Documento de texto"; break; case ("HTML"): case ("HTM"): $tipo = "Documento HTML"; break;
default: $tipo = "Archivo " . $extension;}print ($tipo);
![Page 30: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/30.jpg)
JLPS
Estructuras de control
• Estructura repetitiva while
while (condición)sentencia
• Mismo comportamiento que en C
![Page 31: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/31.jpg)
JLPS
Estructuras de control
• Ejemplo de estructura repetitiva while:
<?PHPprint ("<UL>\n");$i=1;while ($i <= 5){
print ("<LI>Elemento $i</LI>\n");$i++;
}print ("</UL>\n");
?>
![Page 32: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/32.jpg)
JLPS
Estructuras de control
• Estructura repetitiva for
for (inicialización; condición; incremento)sentencia
• Mismo comportamiento que en C
![Page 33: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/33.jpg)
JLPS
Estructuras de control
• Ejemplo de estructura repetitiva for:<?PHP
print ("<UL>\n");for ($i=1; $i<=5; $i++)
print ("<LI>Elemento $i</LI>\n");print ("</UL>\n");
?>
![Page 34: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/34.jpg)
JLPS
Funciones
• Ejemplo:function suma ($x, $y){ $s = $x + $y; return $s;}
$a=1;$b=2;$c=suma ($a, $b);print $c;
![Page 35: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/35.jpg)
JLPS
Funciones
• Por defecto los parámetros se pasan por valor• Paso por referencia:
function incrementa (&$a){ $a = $a + 1;}
$a=1;incrementa ($a);print $a; // Muestra un 2
![Page 36: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/36.jpg)
JLPS
Funciones
• Argumentos por defectofunction muestranombre ($titulo = "Sr."){ print "Estimado $titulo:\n";}muestranombre ();muestranombre ("Prof.");
• Salida:Estimado Sr.:Estimado Prof.:
![Page 37: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/37.jpg)
JLPS
Funciones
• Los argumentos con valores por defecto deben ser siempre los últimos:
function muestranombre ($nombre, $titulo= "Sr."){ print "Estimado $titulo $nombre:\n";}muestranombre (“Fernández”);muestranombre (“Fernández”, "Prof.");
• Salida:Estimado Sr. Fernández:Estimado Prof. Fernández:
![Page 38: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/38.jpg)
JLPS
Arrays = Tabla
¿Qué es un array?• Un array es sencillamente una tabla de valores.• Cada uno de los elementos de esa tabla se identifica por medio de un
nombre (común para todos) y un índice (que diferenciaría a cada uno de ellos).
• La sintaxis que permite definir elementos en un array es la siguiente:
$nombre[indice]
El índice puede ser un número (habría que escribirlo dentro del corchete sin comillas), una cadena (que habría que poner en el corchete encerrada entre comillas sencillas –'–).
Cuando los índices de un array son números se dice que es escalar mientras que si fueran cadenas se le llamaría array asociativo.
![Page 39: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/39.jpg)
JLPS
Arrays Unidimensionales
Arrays Escalares• Los elementos de un array escalar
puede escribirse con una de estas sintaxis:
$a[]=valor ó $a[xx]=valor
• En el primero se asigna los índices de forma automática, éste es un valor entero y empieza por el 0 (CERO).
• En el segundo de los casos, seremos nosotros quienes pongamos (xx) el número correspondiente al valor del índice.
Arrays Asociativo• Los elementos de un array asociativo
pueden escribirse usando la siguiente sintaxis:
$a['indice']=valor
• En éste caso estamos obligados a escribir el nombre del índice que habrá de ser una cadena y debe ponerse entre comillas.
• Tanto en este supuesto como en el anterior, es posible –y bastante frecuente– utilizar como índice el contenido de una variable. El modo de hacerlo sería:
$a[$ind]=valor
• En este caso, sea cual fuere el valor de la variable $ind, el nombre de la variable nunca se pone entre comillas.
![Page 40: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/40.jpg)
JLPS
Arrays Unidimensionales<< Escalares y Asociativos >>
$a[0]=“Domingo” $a[“Primero”]=“Domingo”
![Page 41: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/41.jpg)
JLPS
Arrays Bidimensionales
Arrays Escalares• Los elementos de un array
bidimensional escalar pueden escribirse usando una de estas sintaxis:
$a[][]=valor ó $a[xx][]=valor$a[][xx]=valor ó $a[xx][yy]=valor
Arrays Asociativo• Los elementos de un array asociativo
se pueden escribir usando la siguiente sintaxis:
$a["indice1"]["indice2"]=valor
![Page 42: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/42.jpg)
JLPS
La función Array
Por ejemplo:
$z=array (0 => 2,1 => "Pepe",2 => 34.7,3 => "34Ambrosio",);
producirá igual resultado que:
$z[0]=2;$z[1]="Pepe";$z[2]=34.7;$z[3]="34Ambrosio";
$a= array (índice 0 => valor, ..... , índice n => valor,);
![Page 43: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/43.jpg)
JLPS
La función Array
• La función array() permite escribir arrays de cualquier dimensión utilizando la técnica de anidado. Ejemplo de array escalar:
$z[0][0]=34;$z[0][1]=35;$z[0][2]=36;$z[1][0]=134;$z[1][1]=135;$z[1][2]=136;
podríamos hacerlo así:$z=array( 0 => array (0 => 34,
1 => 35, 2 => 36,), 1 => array (0 => 134, 1 => 135, 2 => 136,) );
• El anidado sucesivo permitiría generar arrays de cualquier dimensión. Ejemplo de array asociativo:
$z["a"]["A"]=34;$z["a"]["B"]=35;$z["a"]["C"]=36;$z["b"]["A"]=134;$z["b"]["B"]=135;$z["b"]["C"]=136;
que podría definirse también de esta forma: $z=array("a" => array ("A" => 34, "B" => 35, "C" => 36, ), "b" => array ("A" => 134, "B" => 135, "C" => 136,) );
$a= array (índice 0 => valor, ..... , índice n => valor,);
![Page 44: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/44.jpg)
JLPS
Bibliotecas de funciones
• Existen muchas bibliotecas de funciones en PHP• Algunos ejemplos:
– Funciones de manipulación de cadenas– Funciones de fecha y hora– Funciones de arrays– Funciones de ficheros– Funciones matemáticas– Funciones de bases de datos– Funciones de red
• Algunas bibliotecas requieren la instalación de componentes adicionales
• Todas las funciones de biblioteca están comentadas en la documentación de PHP
![Page 45: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/45.jpg)
JLPS
Bibliotecas de funciones
• Funciones de manipulación de cadenas– explode()
• Divide una cadena en subcadenas• array explode (string separator, string string [, int
limit]) – rtrim(), ltrim(), trim()
• Eliminan caracteres a la derecha, a la izquierda o por ambos lados de una cadena
• string rtrim ( string str [, string charlist]) – strstr()
• Busca la primera ocurrencia de una subcadena– strtolower() / strtoupper()
• Convierte una cadena a minúscula / mayúscula– strcmp() / strcasecmp()
• Compara dos cadenas con/sin distinción de mayúsculas
– strlen()• Calcula la longitud de una cadena
![Page 46: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/46.jpg)
JLPS
Bibliotecas de funciones
• Funciones de fecha y hora– date()
• Formatea una fecha según un formato dado• Ejemplo:
$fecha = date ("j/n/Y H:i");print ("$fecha");Resultado:
26/9/2005 17:36 – strtotime()
• Convierte una fecha en un timestamp de UNIX• Ejemplo:
$fecha = date ("j/n/Y", strtotime(“5 april 2001"));print ("$fecha");Resultado:
5/4/2001
![Page 47: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/47.jpg)
JLPS
Bibliotecas de funciones
• Funciones de arrays– array_count_values()
• Calcula la frecuencia de cada uno de los elementos de un array
– array_search()• Busca un elemento en un array
– count()• Cuenta los elementos de un array
– sort(), rsort()• Ordena y reindexa un array (r=decreciente)
– ksort(), krsort()• Ordena por claves un array (r=decreciente)
![Page 48: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/48.jpg)
JLPS
Formularios
1.Acceso a formularios HTML desde PHP2.El formulario de PHP3.Subida de ficheros al servidor4.Validación de los datos de un formulario
![Page 49: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/49.jpg)
JLPS
Acceso a formularios desde PHP
• Desde PHP se puede acceder fácilmente a los datos introducidos desde un formulario HTML
• Veámoslo con un ejemplo simple
![Page 50: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/50.jpg)
JLPS
Acceso a formularios desde PHP
• Fichero uno.php<HTML><BODY><FORM ACTION=”dos.php” METHOD=”POST”> Edad: <INPUT TYPE=”text” NAME=”edad”> <INPUT TYPE=”submit” VALUE=”aceptar”></FORM></BODY></HTML>
• Fichero dos.php<HTML><BODY><?PHP print (“La edad es: $edad”);?></BODY></HTML>
![Page 51: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/51.jpg)
JLPS
Acceso a formularios desde PHP
![Page 52: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/52.jpg)
JLPS
Acceso a formularios desde PHP
• A partir de PHP 4.2.0, el valor por defecto de la directiva de PHP register_globals es off
• Esto tiene una gran importancia sobre los formularios, ya que no es posible acceder a las variables enviadas de la manera anterior (como variables globales). En su lugar hay que utilizar la variable predefinida de PHP $_POST, escribiendo $_POST[‘edad’] en lugar de $edad
• Se puede poner register_globals = on en el fichero de configuración php.ini, pero no es recomendable por motivos de seguridad. Una alternativa que permite hacer mínimos cambios en el código ya existente es la siguiente:
$edad = $_POST[‘edad’];
![Page 53: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/53.jpg)
JLPS
Acceso a formularios desde PHP
• Fichero uno.php<HTML><BODY><FORM ACTION=”dos.php” METHOD=”POST”> Edad: <INPUT TYPE=”text” NAME=”edad”> <INPUT TYPE=”submit” VALUE=”aceptar”></FORM></BODY></HTML>
• Fichero dos.php<HTML><BODY><?PHP $edad = $_POST[‘edad’]; print (“La edad es: $edad”);?></BODY></HTML>
![Page 54: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/54.jpg)
JLPS
Acceso a formularios desde PHP
• Acceso a los diferentes tipos de elementos de entrada de formulario
– Elementos de tipo INPUT• TEXT• RADIO• CHECKBOX• BUTTON• FILE• HIDDEN• PASSWORD• SUBMIT
– Elemento SELECT• Simple / múltiple
– Elemento TEXTAREA
![Page 55: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/55.jpg)
JLPS
Acceso a formularios desde PHP
• TEXT
Introduzca la cadena a buscar:<INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20">
<?PHP $cadena = $_POST[‘cadena’]; print ($cadena);?>
![Page 56: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/56.jpg)
JLPS
Acceso a formularios desde PHP
• RADIO
Sexo:<INPUT TYPE="radio" NAME=“sexo" VALUE=“M“ CHECKED>Mujer<INPUT TYPE="radio" NAME=“sexo" VALUE=“H">Hombre
<?PHP $sexo = $_POST[‘sexo’]; print ($sexo);?>
![Page 57: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/57.jpg)
JLPS
Acceso a formularios desde PHP
• CHECKBOX
<INPUT TYPE="checkbox" NAME="extras[]" VALUE="garaje" CHECKED>Garaje<INPUT TYPE="checkbox" NAME="extras[]" VALUE="piscina">Piscina<INPUT TYPE="checkbox" NAME="extras[]" VALUE="jardin">Jardín
<?PHP $extras = $_POST[‘extras’]; $n = count ($extras); for ($i=0; $i<$n; $i++) print (“$extras[$i]<BR>\n”); //foreach ($extras as $extra) //print (“$extra<BR>\n”);?>
![Page 58: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/58.jpg)
JLPS
Acceso a formularios desde PHP
• BUTTON
<INPUT TYPE="button" NAME=“actualizar" VALUE="Actualizar datos">
<?PHP $actualizar = $_POST[‘actualizar’]; if ($actualizar) print ("Se han actualizado los datos");?>
![Page 59: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/59.jpg)
JLPS
Acceso a formularios desde PHP
• FILE
<FORM ACTION="procesa.php" METHOD="post“ ENCTYPE="multipart/form-data"> <INPUT TYPE="file" NAME="fichero"></FORM>
![Page 60: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/60.jpg)
JLPS
Acceso a formularios desde PHP
• HIDDEN
<?PHP print(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>\n”);?>
<?PHP $username = $_POST[‘username’]; print ($username);?>
![Page 61: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/61.jpg)
JLPS
Acceso a formularios desde PHP
• PASSWORD
Contraseña: <INPUT TYPE="password" NAME="clave">
<?PHP $clave = $_POST[‘clave’]; print ($clave);?>
![Page 62: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/62.jpg)
JLPS
Acceso a formularios desde PHP
• SUBMIT
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos">
<?PHP $enviar = $_POST[‘enviar’]; if ($enviar) print ("Se ha pulsado el botón de enviar");?>
![Page 63: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/63.jpg)
JLPS
Acceso a formularios desde PHP
• SELECT simple
Color:<SELECT NAME=“color"> <OPTION VALUE=“rojo" SELECTED>Rojo <OPTION VALUE=“verde">Verde <OPTION VALUE=“azul">Azul</SELECT>
<?PHP $color = $_POST[‘color’]; print ($color);?>
![Page 64: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/64.jpg)
JLPS
Acceso a formularios desde PHP
• SELECT múltipleIdiomas:<SELECT MULTIPLE SIZE="3" NAME="idiomas[]"> <OPTION VALUE="ingles" SELECTED>Inglés <OPTION VALUE="frances">Francés <OPTION VALUE="aleman">Alemán <OPTION VALUE="holandes">Holandés</SELECT>
<?PHP $idiomas = $_POST[‘idiomas’]; $n = count ($idiomas); for ($i=0; $i<$n; $i++) print (“$idiomas[$i]<BR>\n”); //foreach ($idiomas as $idioma) //print (“$idioma<BR>\n”);?>
![Page 65: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/65.jpg)
JLPS
Acceso a formularios desde PHP
• TEXTAREA
Comentario:<TEXTAREA COLS=“50" ROWS=“4" NAME="comentario">Este libro me parece ...</TEXTAREA>
<?PHP $comentario = $_POST[‘comentario’]; print ($comentario);?>
![Page 66: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/66.jpg)
JLPS
El formulario de PHP
• La forma habitual de trabajar con formularios en PHP es utilizar un único programa que procese el formulario o lo muestre según haya sido o no enviado, respectivamente
• Ventajas:– Disminuye el número de ficheros– Permite validar los datos del formulario en el propio
formulario• Procedimiento:
si se ha enviado el formulario: Procesar formulariosi no: Mostrar formulariofsi
![Page 67: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/67.jpg)
JLPS
El formulario de PHP
• Esquema de funcionamiento:
si se ha enviado el formulario: Procesar formulario
si no: Mostrar formulariofsi
a) b)
– La 1ª vez que se carga la página se muestra el formulario (a)
– La 2ª vez se procesa el formulario (b)
![Page 68: Proyectos Web 3 Introduccion Php](https://reader038.vdocuments.co/reader038/viewer/2022102322/5457204caf795997098b782c/html5/thumbnails/68.jpg)
JLPS
El formulario de PHP
• Para saber si se ha enviado el formulario se acude a la variable correspondiente al botón de envío. Si este botón aparece de la siguiente forma en el formulario HTML:
<INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar">
entonces la condición anterior se transforma en:if (isset($enviar))
o bienif ($enviar == “procesar”)