SlideShare une entreprise Scribd logo
1  sur  68
Instituto de Educación Superior Tecnológico PúblicoInstituto de Educación Superior Tecnológico Público
“Francisco de Paula Gonzáles Vigil”“Francisco de Paula Gonzáles Vigil”
Carrera Profesional de Computación e InformáticaCarrera Profesional de Computación e Informática
“Introducción a PHP"
José Luis Ponce Segura
jose.ponce@sitelsur.com
www.sitelsur.com
Introducción a PHPIntroducción a PHP
• Lenguajes deLenguajes de scriptscript
– PHP es un lenguaje dePHP es un lenguaje de scriptscript del lado del servidor. Otrosdel lado del servidor. Otros
lenguajes similares son ASP, JSP o ColdFusionlenguajes similares son ASP, JSP o ColdFusion
– Los scripts PHP están incrustados en los documentos HTML y elLos scripts PHP están incrustados en los documentos HTML y el
servidor los interpreta y ejecuta antes de servir las páginas alservidor los interpreta y ejecuta antes de servir las páginas al
clientecliente
– El cliente no ve el código PHP sino los resultados que produceEl cliente no ve el código PHP sino los resultados que produce
Introducción a PHPIntroducción a PHP
• ¿Cómo funciona PHP?¿Cómo funciona PHP?
Página
HTML
Página
HTML
internet
Servidor web Cliente
(navegador)
<P>Hola, Ana</P>
Introducción a PHPIntroducción a PHP
• ¿Cómo funciona PHP?¿Cómo funciona PHP?
Página
PHP
Intérprete
PHP
Página
HTML
Página
HTML
internet
Servidor web Cliente
(navegador)
<?PHP
$nombre = "Ana";
print ("<P>Hola, $nombre</P>");
?>
<P>Hola, Ana</P>
Introducción a PHPIntroducción a PHP
• Breve historia de PHPBreve historia de PHP
– Creado por Rasmus Lerdorf para uso personal en 1994Creado por Rasmus Lerdorf para uso personal en 1994
– PHP =PHP = Personal Hypertext ProcessorPersonal Hypertext Processor
– Versión actual: PHP 5Versión actual: PHP 5
– Es un módulo que se añade al servidor web y fueEs un módulo que se añade al servidor web y fue
concebido inicialmente para Apacheconcebido inicialmente para Apache
• ¿Por qué PHP?¿Por qué PHP?
– Por sus ventajas: es potente, fácil de aprender, de librePor sus ventajas: es potente, fácil de aprender, de libre
distribución, permite el acceso a bases de datos y otrasdistribución, permite el acceso a bases de datos y otras
funcionalidades orientadas a la redfuncionalidades orientadas a la red
– Dispone de abundante soporte en la WebDispone de abundante soporte en la Web
Introducción a PHPIntroducción a PHP
• RequisitosRequisitos
– Servidor web Apache (www.apache.org)Servidor web Apache (www.apache.org)
– con el módulo PHP (www.php.net)con el módulo PHP (www.php.net)
– y la base de datos MySQL (www.mysql.com) si se deseay la base de datos MySQL (www.mysql.com) si se desea
crear páginas dinámicascrear páginas dinámicas
• Otras utilidadesOtras utilidades
– Herramientas para la gestión de MySQL, comoHerramientas para la gestión de MySQL, como
PHPMyAdmin (www.phpmyadmin.net)PHPMyAdmin (www.phpmyadmin.net)
– Editores de PHP, como DevPHP (www.sourceforge.net) oEditores de PHP, como DevPHP (www.sourceforge.net) o
Eclipse (www.eclipse.org)Eclipse (www.eclipse.org)
– Manuales de PHP y MySQLManuales de PHP y MySQL
Lenguaje PHP básicoLenguaje PHP básico
1.1. Sintaxis básicaSintaxis básica
2.2. Tipos de datosTipos de datos
3.3. VariablesVariables
4.4. ConstantesConstantes
5.5. Expresiones y operadoresExpresiones y operadores
6.6. Estructuras de controlEstructuras de control
7.7. FuncionesFunciones
8.8. TablasTablas
9.9. Bibliotecas de funcionesBibliotecas de funciones
Sintaxis básicaSintaxis básica
• PHP es sensible a las mayúsculasPHP es sensible a las mayúsculas
• ¿Cómo se incrusta en la página web?¿Cómo se incrusta en la página web?
<?PHP ... ?><?PHP ... ?>
recomendado, siempre disponiblerecomendado, siempre disponible
<?= expresión ?><?= expresión ?>
equivale a <? echo expresión ?>equivale a <? echo expresión ?>
• Las instrucciones se separan con un ; como en C. LaLas instrucciones se separan con un ; como en C. La
marca final ?> implica un ;marca final ?> implica un ;
• Comentarios: como en C, /* … */ y //Comentarios: como en C, /* … */ y //
Sintaxis básicaSintaxis básica
• Para imprimir:Para imprimir: echoecho yy printprint
echo: muestra una o más cadenasecho: muestra una o más cadenas
echo cadena1 [, cadena2…]; // no es una funciónecho cadena1 [, cadena2…]; // no es una función
echo “Hola mundo”;echo “Hola mundo”;
echo “Hola “, “mundo”;echo “Hola “, “mundo”;
print: muestra una cadenaprint: muestra una cadena
print cadena; // no es una funciónprint cadena; // no es una función
print “Hola mundo”;print “Hola mundo”;
print “Hola “ . “mundo”;print “Hola “ . “mundo”;
Sintaxis básicaSintaxis básica
• Ejemplo:Ejemplo:
<HTML><HTML>
<HEAD><HEAD>
<TITLE>Mi primer programa en PHP</TITLE><TITLE>Mi primer programa en PHP</TITLE>
</HEAD></HEAD>
<BODY><BODY>
<?PHP<?PHP
print (“<P>Hola mundo</P>”);print (“<P>Hola mundo</P>”);
?>?>
</BODY></BODY>
</HTML></HTML>
Sintaxis básicaSintaxis básica
• Uso de n para generar código HTML legibleUso de n para generar código HTML legible
• a) Sin na) 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
Sintaxis básicaSintaxis básica
• Uso de n para generar código HTML legibleUso de n para generar código HTML legible
• b) Con nb) 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
Sintaxis básicaSintaxis básica
• Inclusión de ficheros externos:Inclusión de ficheros externos:
– includeinclude()()
– requirerequire()()
• Ambos incluyen y evalúan el fichero especificadoAmbos incluyen y evalúan el fichero especificado
• Diferencia: en caso de error include() produce un warning yDiferencia: en caso de error include() produce un warning y
require() un error fatalrequire() un error fatal
• Se usará require() si al producirse un error debe interrumpirse laSe usará require() si al producirse un error debe interrumpirse la
carga de la páginacarga de la página
• Ejemplo:Ejemplo:
Sintaxis básicaSintaxis 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>
Tipos de datosTipos de datos
• PHP soporta 8PHP soporta 8 tipos de datos primitivostipos de datos primitivos ::
– Tipos escalares: boolean, integer, double, stringTipos escalares: boolean, integer, double, string
– Tipos compuestos: array, objectTipos compuestos: array, object
– Tipos especiales: resource, NULLTipos especiales: resource, NULL
• El tipo de una variable no se suele especificar. Se decide enEl tipo de una variable no se suele especificar. Se decide en
tiempo de ejecución en función del contexto y puede variartiempo de ejecución en función del contexto y puede variar
• Funciones de interés:Funciones de interés:
– La función gettype() devuelve el tipo de una variableLa función gettype() devuelve el tipo de una variable
– Las funciones is_Las funciones is_typetype comprueban si una variable es de un tipocomprueban si una variable es de un tipo
dado:dado:
is_array(), is_bool(), is_float(), is_integer(), is_null(),is_array(), is_bool(), is_float(), is_integer(), is_null(),
is_numeric(), is_object(), is_resource(), is_scalar(),is_numeric(), is_object(), is_resource(), is_scalar(),
is_string()is_string()
– La función var_dump() muestra el tipo y el valor de una variable.La función var_dump() muestra el tipo y el valor de una variable.
Es especialmente interesante con los arraysEs especialmente interesante con los arrays
Tipos de datosTipos de datos
• TipoTipo integerinteger (números enteros)(números enteros)
– 27, -5, 027, -5, 0
• TipoTipo doubledouble (números reales)(números reales)
– 1.234, -5.331.234, -5.33
• TipoTipo booleanboolean (lógico)(lógico)
– Valores:Valores: truetrue,, falsefalse (insensibles a las mayúsculas)(insensibles a las mayúsculas)
– El 0 y la cadena vacía tienen valorEl 0 y la cadena vacía tienen valor falsefalse
Tipos de datosTipos de datos
• Tipo string:Tipo string:
– Las cadenas se encierran entre comillas simples o dobles:Las cadenas se encierran entre comillas simples o dobles:
• ‘‘simples’: admite los caracteres de escape ’ (comilla simple)simples’: admite los caracteres de escape ’ (comilla simple)
y  (barra). Las variablesy  (barra). Las variables NONO se expandense expanden
• ““dobles”: admite más caracteres de escape, como n, r, t, ,dobles”: admite más caracteres de escape, como n, r, t, ,
$, ”. Los nombres de variables$, ”. Los nombres de variables SÍSÍ se expandense expanden
• Ejemplos:Ejemplos:
$a = 9;$a = 9;
print ‘a vale $an’;print ‘a vale $an’;
// muestra// muestra a vale $ana vale $an
print “a vale $an”;print “a vale $an”;
// muestra// muestra a vale 9a vale 9 y avanza una líneay avanza una línea
print “<IMG SRC=‘logo.gif’>”;print “<IMG SRC=‘logo.gif’>”;
// muestra// muestra <IMG SRC=‘logo.gif’><IMG SRC=‘logo.gif’>
print “<IMG SRC=”logo.gif”>”;print “<IMG SRC=”logo.gif”>”;
// muestra// muestra <IMG SRC=“logo.gif”><IMG SRC=“logo.gif”>
– Acceso a un carácter de la cadena:Acceso a un carácter de la cadena:
• La forma es $inicial = $nombre{0};La forma es $inicial = $nombre{0};
VariablesVariables
• Las variables siempre van precedidas de un $Las variables siempre van precedidas de un $
• El nombre es sensible a las mayúsculasEl nombre es sensible a las mayúsculas
• Comienzan por letra o subrayado, seguido de letras, números oComienzan por letra o subrayado, seguido de letras, números o
subrayadosubrayado
• Variables predefinidas:Variables predefinidas:
$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,
$_ENV, $_REQUEST, $_SESSION$_ENV, $_REQUEST, $_SESSION
• Ámbito: globales al fichero (excepto funciones) o locales a unaÁmbito: globales al fichero (excepto funciones) o locales a una
funciónfunción
• Ejemplo:Ejemplo:
$valor = 5;$valor = 5;
print “El valor es: “ . $valor . “n”;print “El valor es: “ . $valor . “n”;
print “El valor es: $valorn”; // ojo: comillas doblesprint “El valor es: $valorn”; // ojo: comillas dobles
Resultado:Resultado:
El valor es: 5El valor es: 5
VariablesVariables
• Variables variablesVariables variables
– Se pueden crear nombres de variables dinámicamenteSe pueden crear nombres de variables dinámicamente
– La variable variable toma su nombre del valor de otraLa variable variable toma su nombre del valor de otra
variable previamente declaradavariable previamente declarada
– Ejemplo:Ejemplo:
$a =$a = ""holahola"";;
$$a =$$a = ""mundomundo"";;
print "$a $holan";print "$a $holan";
print "$a ${$a}";print "$a ${$a}";
Resultado:Resultado:
hola mundohola mundo
hola mundohola mundo
VariablesVariables
<?PHP
$mensaje_es="Hola";
$mensaje_en="Hello";
$idioma = "es";
$mensaje = "mensaje_" . $idioma;
print $$mensaje;
?>
• Ejemplo de variables variables: página internacionalizada (1)Ejemplo de variables variables: página internacionalizada (1)
VariablesVariables
<?PHP
$mensaje_es="Hola";
$mensaje_en="Hello";
$idioma = "en";
$mensaje = "mensaje_" . $idioma;
print $$mensaje;
?>
• Ejemplo de variables variables: página internacionalizada (2)Ejemplo de variables variables: página internacionalizada (2)
ConstantesConstantes
• Definición de constantes:Definición de constantes:
define (“CONSTANTE”, “hola”);define (“CONSTANTE”, “hola”);
print CONSTANTE;print CONSTANTE;
• No llevan $ delanteNo llevan $ delante
• Sólo se pueden definir constantes de los tipos escalares (boolean,Sólo se pueden definir constantes de los tipos escalares (boolean,
integer, double, string)integer, double, string)
Expresiones y operadoresExpresiones y operadores
• Operadores aritméticos:Operadores aritméticos:
+, -, *, /, %, ++, --+, -, *, /, %, ++, --
• Operador de asignación:Operador de asignación:
==
operadores combinados: .=, +=, etcoperadores combinados: .=, +=, etc
$a = 3; $a += 5;$a = 3; $a += 5;  a vale 8a vale 8
$b = “hola ”; $b .= “mundo”;$b = “hola ”; $b .= “mundo”;  b vale “hola mundo”b vale “hola mundo”
 Equivale a $b = $b . “mundo”;Equivale a $b = $b . “mundo”;
• Operadores de comparación:Operadores de comparación:
==, !=, <, >, <=, >= y otros==, !=, <, >, <=, >= y otros
• Operador de control de error: @. Antepuesto a una expresión, evitaOperador de control de error: @. Antepuesto a una expresión, evita
cualquier mensaje de error que pueda ser generado por la expresióncualquier mensaje de error que pueda ser generado por la expresión
• Operadores lógicos:Operadores lógicos:
and (&&), or (||), !, xorand (&&), or (||), !, xor
and/&& y or/|| tienen diferentes prioridadesand/&& y or/|| tienen diferentes prioridades
• Operadores de cadena:Operadores de cadena:
concatenación: . (punto)concatenación: . (punto)
asignación con concatenación: .=asignación con concatenación: .=
Expresiones y operadoresExpresiones y operadores
• Precedencia de operadores (de mayor a menor):Precedencia de operadores (de mayor a menor):
++, --++, --
*, /, %*, /, %
+,-+,-
<, <=, >, >=<, <=, >, >=
==, !===, !=
&&&&
||||
andand
oror
Estructuras de controlEstructuras de control
• Estructuras selectivas:Estructuras selectivas:
– if-elseif-else
– switchswitch
• Estructuras repetitivas:Estructuras repetitivas:
– whilewhile
– forfor
– foreachforeach
Estructuras de controlEstructuras de control
• Estructura selectivaEstructura selectiva if-else
• Mismo comportamiento que en CMismo comportamiento que en C
• Las sentencias compuestas se encierran entre llavesLas sentencias compuestas se encierran entre llaves
• elseif puede ir todo juntoelseif puede ir todo junto
if (condición)
sentencia
if (condición1)
sentencia 1
else if (condición2)
sentencia 2
...
else if (condición n)
sentencia n
else
sentencia n+1
if (condición)
sentencia 1
else
sentencia 2
Estructuras de controlEstructuras de control
• Ejemplo de estructura selectiva if-else:Ejemplo de estructura selectiva if-else:
<?PHP<?PHP
if ($sexo == ‘M’)if ($sexo == ‘M’)
$saludo = "Bienvenida, ";$saludo = "Bienvenida, ";
elseelse
$saludo = "Bienvenido, ";$saludo = "Bienvenido, ";
$saludo = $saludo . $nombre;$saludo = $saludo . $nombre;
print ($saludo);print ($saludo);
?>?>
Estructuras de controlEstructuras de control
• Estructura selectivaEstructura selectiva switch
switch (expresión)switch (expresión)
{{
case valor_1:case valor_1:
sentencia 1sentencia 1
break;break;
case valor_2:case valor_2:
sentencia 2sentencia 2
break;break;
……
case valor_n:case valor_n:
sentencia nsentencia n
break;break;
defaultdefault
sentencia n+1sentencia n+1
}}
• Mismo comportamiento que en C, sólo que la expresión delMismo comportamiento que en C, sólo que la expresión del
case puede ser integer, float o stringcase puede ser integer, float o string
Estructuras de controlEstructuras de control
• Ejemplo de estructura selectiva switch:Ejemplo de estructura selectiva switch:
switch ($extension)switch ($extension)
{{
case ("PDF"):case ("PDF"):
$tipo = "Documento Adobe PDF";$tipo = "Documento Adobe PDF";
break;break;
case ("TXT"):case ("TXT"):
$tipo = "Documento de texto";$tipo = "Documento de texto";
break;break;
case ("HTML"):case ("HTML"):
case ("HTM"):case ("HTM"):
$tipo = "Documento HTML";$tipo = "Documento HTML";
break;break;
default:default:
$tipo = "Archivo " . $extension;$tipo = "Archivo " . $extension;
}}
print ($tipo);print ($tipo);
Estructuras de controlEstructuras de control
• Estructura repetitivaEstructura repetitiva while
while (condición)while (condición)
sentenciasentencia
• Mismo comportamiento que en CMismo comportamiento que en C
Estructuras de controlEstructuras de control
• Ejemplo de estructura repetitiva while:Ejemplo de estructura repetitiva while:
<?PHP<?PHP
print ("<UL>n");print ("<UL>n");
$i=1;$i=1;
while ($i <= 5)while ($i <= 5)
{{
print ("<LI>Elemento $i</LI>n");print ("<LI>Elemento $i</LI>n");
$i++;$i++;
}}
print ("</UL>n");print ("</UL>n");
?>?>
Estructuras de controlEstructuras de control
• Estructura repetitivaEstructura repetitiva for
for (inicialización; condición; incremento)for (inicialización; condición; incremento)
sentenciasentencia
• Mismo comportamiento que en CMismo comportamiento que en C
Estructuras de controlEstructuras de control
• Ejemplo de estructura repetitiva for:Ejemplo de estructura repetitiva for:
<?PHP<?PHP
print ("<UL>n");print ("<UL>n");
for ($i=1; $i<=5; $i++)for ($i=1; $i<=5; $i++)
print ("<LI>Elemento $i</LI>n");print ("<LI>Elemento $i</LI>n");
print ("</UL>n");print ("</UL>n");
?>?>
FuncionesFunciones
• Ejemplo:Ejemplo:
function suma ($x, $y)function suma ($x, $y)
{{
$s = $x + $y;$s = $x + $y;
return $s;return $s;
}}
$a=1;$a=1;
$b=2;$b=2;
$c=suma ($a, $b);$c=suma ($a, $b);
print $c;print $c;
FuncionesFunciones
• Por defecto los parámetros se pasan por valorPor defecto los parámetros se pasan por valor
• Paso por referencia:Paso por referencia:
function incrementa (&$a)function incrementa (&$a)
{{
$a = $a + 1;$a = $a + 1;
}}
$a=1;$a=1;
incrementa ($a);incrementa ($a);
print $a; // Muestra un 2print $a; // Muestra un 2
FuncionesFunciones
• Argumentos por defectoArgumentos por defecto
function muestranombre ($titulo = "Sr.")function muestranombre ($titulo = "Sr.")
{{
print "Estimado $titulo:n";print "Estimado $titulo:n";
}}
muestranombre ();muestranombre ();
muestranombre ("Prof.");muestranombre ("Prof.");
• Salida:Salida:
Estimado Sr.:Estimado Sr.:
Estimado Prof.:Estimado Prof.:
FuncionesFunciones
• Los argumentos con valores por defecto deben serLos argumentos con valores por defecto deben ser
siempre los últimos:siempre los últimos:
function muestranombre ($nombre, $titulo= "Sr.")function muestranombre ($nombre, $titulo= "Sr.")
{{
print "Estimado $titulo $nombre:n";print "Estimado $titulo $nombre:n";
}}
muestranombre (“Fernández”);muestranombre (“Fernández”);
muestranombre (“Fernández”, "Prof.");muestranombre (“Fernández”, "Prof.");
• Salida:Salida:
Estimado Sr. Fernández:Estimado Sr. Fernández:
Estimado Prof. Fernández:Estimado Prof. Fernández:
Arrays = TablaArrays = Tabla
¿Qué es un¿Qué es un arrayarray??
• UnUn arrayarray es sencillamente una tabla de valores.es sencillamente una tabla de valores.
• Cada uno de losCada uno de los elementoselementos de esade esa tablatabla se identifica por medio de unse identifica por medio de un nombrenombre
(común para todos) y un(común para todos) y un índiceíndice (que diferenciaría a cada uno de ellos).(que diferenciaría a cada uno de ellos).
• La sintaxis que permite definir elementos en un array es la siguiente:La sintaxis que permite definir elementos en un array es la siguiente:
$nombre[indice]$nombre[indice]
ElEl índiceíndice puede serpuede ser un númeroun número (habría que escribirlo dentro del corchete(habría que escribirlo dentro del corchete sinsin
comillascomillas),), unauna cadenacadena (que habría que poner en el corchete encerrada entre(que habría que poner en el corchete encerrada entre
comillas sencillascomillas sencillas –'–).–'–).
Cuando losCuando los índicesíndices de un array sonde un array son númerosnúmeros se dice que esse dice que es escalarescalar mientrasmientras
que si fueranque si fueran cadenascadenas se le llamaría arrayse le llamaría array asociativoasociativo..
Arrays UnidimensionalesArrays Unidimensionales
Arrays EscalaresArrays Escalares
• Los elementos de unLos elementos de un arrayarray escalar puedeescalar puede
escribirse con una de estas sintaxis:escribirse con una de estas sintaxis:
$a[]=$a[]=valorvalor ó $a[xx]=ó $a[xx]=valorvalor
• En el primero se asigna los índices deEn el primero se asigna los índices de
forma automática, éste es un valorforma automática, éste es un valor enteroentero
y empieza por ely empieza por el 00 (CERO).(CERO).
• En el segundo de los casos, seremosEn el segundo de los casos, seremos
nosotros quienes pongamos (nosotros quienes pongamos (xxxx) el) el
númeronúmero correspondiente alcorrespondiente al valor delvalor del
índiceíndice..
Arrays AsociativoArrays Asociativo
• Los elementos de unLos elementos de un arrayarray asociativoasociativo
pueden escribirse usando la siguientepueden escribirse usando la siguiente
sintaxis:sintaxis:
$a[$a['indice''indice']=]=valorvalor
• En éste caso estamos obligados a escribirEn éste caso estamos obligados a escribir
el nombre del índice que habrá de ser unael nombre del índice que habrá de ser una
cadenacadena y debe ponerse entre comillas.y debe ponerse entre comillas.
• Tanto en este supuesto como en el anterior,Tanto en este supuesto como en el anterior,
es posible –y bastante frecuente– utilizares posible –y bastante frecuente– utilizar
como índice el contenido de una variable. Elcomo índice el contenido de una variable. El
modo de hacerlo sería:modo de hacerlo sería:
$a[$ind]=$a[$ind]=valorvalor
• En este caso, sea cual fuere el valor de laEn este caso, sea cual fuere el valor de la
variablevariable $ind$ind, el nombre de la variable, el nombre de la variable
nuncanunca se pone entre comillas.se pone entre comillas.
Arrays UnidimensionalesArrays Unidimensionales
<< Escalares y Asociativos >><< Escalares y Asociativos >>
$a[0]=“Domingo” $a[“Primero”]=“Domingo”
Arrays BidimensionalesArrays Bidimensionales
Arrays EscalaresArrays Escalares
• Los elementos de unLos elementos de un arrayarray bidimensionalbidimensional
escalar pueden escribirse usando una deescalar pueden escribirse usando una de
estas sintaxis:estas sintaxis:
$a[][]=$a[][]=valor óvalor ó $a[xx][]=$a[xx][]=valorvalor
$a[][xx]=$a[][xx]=valor óvalor ó $a[xx][yy]=$a[xx][yy]=valorvalor
Arrays AsociativoArrays Asociativo
• Los elementos de unLos elementos de un arrayarray asociativo seasociativo se
pueden escribir usando la siguiente sintaxis:pueden escribir usando la siguiente sintaxis:
$a[$a["indice1""indice1"][]["indice2""indice2"]=]=valorvalor
La función ArrayLa función Array
Por ejemplo:Por ejemplo:
$z=array ($z=array (
0 => 2,0 => 2,
1 => "Pepe",1 => "Pepe",
2 => 34.7,2 => 34.7,
3 => "34Ambrosio",3 => "34Ambrosio",
););
producirá igual resultado que:producirá igual resultado que:
$z[0]=2;$z[0]=2;
$z[1]="Pepe";$z[1]="Pepe";
$z[2]=34.7;$z[2]=34.7;
$z[3]="34Ambrosio";$z[3]="34Ambrosio";
$a= array ($a= array ( índice 0índice 0 =>=> valorvalor, ..... ,, ..... , índice níndice n =>=> valorvalor,);,);
La función ArrayLa función Array
• La funciónLa función array()array() permite escribir arrayspermite escribir arrays
de cualquier dimensión utilizando la técnicade cualquier dimensión utilizando la técnica
dede anidadoanidado. Ejemplo de array escalar:. Ejemplo de array escalar:
$z[0][0]=34;$z[0][0]=34;
$z[0][1]=35;$z[0][1]=35;
$z[0][2]=36;$z[0][2]=36;
$z[1][0]=134;$z[1][0]=134;
$z[1][1]=135;$z[1][1]=135;
$z[1][2]=136;$z[1][2]=136;
podríamos hacerlo así:podríamos hacerlo así:
$z=array( 0 => array (0 => 34,$z=array( 0 => array (0 => 34,
1 => 35,1 => 35,
2 => 36,),2 => 36,),
1 => array (0 => 134,1 => array (0 => 134,
1 => 135,1 => 135,
2 =>2 =>
136,)136,)
););
• El anidado sucesivo permitiría generarEl anidado sucesivo permitiría generar
arraysarrays de cualquier dimensión. Ejemplo dede cualquier dimensión. Ejemplo de
array asociativoarray asociativo::
$z["a"]["A"]=34;$z["a"]["A"]=34;
$z["a"]["B"]=35;$z["a"]["B"]=35;
$z["a"]["C"]=36;$z["a"]["C"]=36;
$z["b"]["A"]=134;$z["b"]["A"]=134;
$z["b"]["B"]=135;$z["b"]["B"]=135;
$z["b"]["C"]=136;$z["b"]["C"]=136;
que podría definirse también de esta forma:que podría definirse también de esta forma:
$z=array("a" => array ("A" => 34,$z=array("a" => array ("A" => 34,
"B" =>"B" =>
35,35,
"C" =>"C" =>
36, ),36, ),
"b" => array ("A" =>"b" => array ("A" =>
134,134,
"B" =>"B" =>
135,135,
$a= array ($a= array ( índice 0índice 0 =>=> valorvalor, ..... ,, ..... , índice níndice n =>=> valorvalor,);,);
Bibliotecas de funcionesBibliotecas de funciones
• Existen muchas bibliotecas de funciones en PHPExisten muchas bibliotecas de funciones en PHP
• Algunos ejemplos:Algunos ejemplos:
– Funciones de manipulación de cadenasFunciones de manipulación de cadenas
– Funciones de fecha y horaFunciones de fecha y hora
– Funciones de arraysFunciones de arrays
– Funciones de ficherosFunciones de ficheros
– Funciones matemáticasFunciones matemáticas
– Funciones de bases de datosFunciones de bases de datos
– Funciones de redFunciones de red
• Algunas bibliotecas requieren la instalación de componentesAlgunas bibliotecas requieren la instalación de componentes
adicionalesadicionales
• Todas las funciones de biblioteca están comentadas en laTodas las funciones de biblioteca están comentadas en la
documentación de PHPdocumentación de PHP
Bibliotecas de funcionesBibliotecas de funciones
• Funciones de manipulación de cadenasFunciones de manipulación de cadenas
– explode()explode()
• Divide una cadena en subcadenasDivide una cadena en subcadenas
• arrayarray explodeexplode (string separator, string string [, int limit])(string separator, string string [, int limit])
– rtrim(), ltrim(), trim()rtrim(), ltrim(), trim()
• Eliminan caracteres a la derecha, a la izquierda o porEliminan caracteres a la derecha, a la izquierda o por
ambos lados de una cadenaambos lados de una cadena
• stringstring rtrimrtrim ( string str [, string charlist])( string str [, string charlist])
– strstr()strstr()
• Busca la primera ocurrencia de una subcadenaBusca la primera ocurrencia de una subcadena
– strtolower() / strtoupper()strtolower() / strtoupper()
• Convierte una cadena a minúscula / mayúsculaConvierte una cadena a minúscula / mayúscula
– strcmp() / strcasecmp()strcmp() / strcasecmp()
• Compara dos cadenas con/sin distinción de mayúsculasCompara dos cadenas con/sin distinción de mayúsculas
– strlen()strlen()
• Calcula la longitud de una cadenaCalcula la longitud de una cadena
Bibliotecas de funcionesBibliotecas de funciones
• Funciones de fecha y horaFunciones de fecha y hora
– date()date()
• Formatea una fecha según un formato dadoFormatea una fecha según un formato dado
• Ejemplo:Ejemplo:
$fecha = date ("j/n/Y H:i");$fecha = date ("j/n/Y H:i");
print ("$fecha");print ("$fecha");
Resultado:Resultado:
26/9/2005 17:3626/9/2005 17:36
– strtotime()strtotime()
• Convierte una fecha en unConvierte una fecha en un timestamptimestamp de UNIXde UNIX
• Ejemplo:Ejemplo:
$fecha = date ("j/n/Y", strtotime(“5 april 2001"));$fecha = date ("j/n/Y", strtotime(“5 april 2001"));
print ("$fecha");print ("$fecha");
Resultado:Resultado:
5/4/20015/4/2001
Bibliotecas de funcionesBibliotecas de funciones
• Funciones de arraysFunciones de arrays
– array_count_values()array_count_values()
• Calcula la frecuencia de cada uno de los elementos de un arrayCalcula la frecuencia de cada uno de los elementos de un array
– array_search()array_search()
• Busca un elemento en un arrayBusca un elemento en un array
– count()count()
• Cuenta los elementos de un arrayCuenta los elementos de un array
– sort(), rsort()sort(), rsort()
• Ordena y reindexa un array (r=decreciente)Ordena y reindexa un array (r=decreciente)
– ksort(), krsort()ksort(), krsort()
• Ordena por claves un array (r=decreciente)Ordena por claves un array (r=decreciente)
FormulariosFormularios
1.1. Acceso a formularios HTML desde PHPAcceso a formularios HTML desde PHP
2.2. El formulario de PHPEl formulario de PHP
3.3. Subida de ficheros al servidorSubida de ficheros al servidor
4.4. Validación de los datos de un formularioValidación de los datos de un formulario
Acceso a formularios desde PHPAcceso a formularios desde PHP
• Desde PHP se puede acceder fácilmente a los datosDesde PHP se puede acceder fácilmente a los datos
introducidos desde un formulario HTMLintroducidos desde un formulario HTML
• Veámoslo con un ejemplo simpleVeámoslo con un ejemplo simple
Acceso a formularios desde PHPAcceso a formularios desde PHP
• Fichero uno.phpFichero uno.php
<HTML><HTML>
<BODY><BODY>
<FORM ACTION=”dos.php” METHOD=”POST”><FORM ACTION=”dos.php” METHOD=”POST”>
Edad: <INPUT TYPE=”text” NAME=”edad”>Edad: <INPUT TYPE=”text” NAME=”edad”>
<INPUT TYPE=”submit” VALUE=”aceptar”><INPUT TYPE=”submit” VALUE=”aceptar”>
</FORM></FORM>
</BODY></BODY>
</HTML></HTML>
• Fichero dos.phpFichero dos.php
<HTML><HTML>
<BODY><BODY>
<?PHP<?PHP
print (“La edad es: $edad”);print (“La edad es: $edad”);
?>?>
</BODY></BODY>
</HTML></HTML>
Acceso a formularios desde PHPAcceso a formularios desde PHP
Acceso a formularios desde PHPAcceso 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’];
Acceso a formularios desde PHPAcceso 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>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• Acceso a los diferentes tipos de elementos deAcceso a los diferentes tipos de elementos de
entrada de formularioentrada de formulario
– Elementos de tipo INPUTElementos de tipo INPUT
• TEXTTEXT
• RADIORADIO
• CHECKBOXCHECKBOX
• BUTTONBUTTON
• FILEFILE
• HIDDENHIDDEN
• PASSWORDPASSWORD
• SUBMITSUBMIT
– Elemento SELECTElemento SELECT
• Simple / múltipleSimple / múltiple
– Elemento TEXTAREAElemento TEXTAREA
Acceso a formularios desde PHPAcceso a formularios desde PHP
• TEXTTEXT
Introduzca la cadena a buscar:
<INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto"
SIZE="20">
<?PHP
$cadena = $_POST[‘cadena’];
print ($cadena);
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• RADIORADIO
Sexo:
<INPUT TYPE="radio" NAME=“sexo" VALUE=“M“ CHECKED>Mujer
<INPUT TYPE="radio" NAME=“sexo" VALUE=“H">Hombre
<?PHP
$sexo = $_POST[‘sexo’];
print ($sexo);
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• CHECKBOXCHECKBOX
<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”);
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• BUTTONBUTTON
<INPUT TYPE="button" NAME=“actualizar"
VALUE="Actualizar datos">
<?PHP
$actualizar = $_POST[‘actualizar’];
if ($actualizar)
print ("Se han actualizado los datos");
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• FILEFILE
<FORM ACTION="procesa.php" METHOD="post“
ENCTYPE="multipart/form-data">
<INPUT TYPE="file" NAME="fichero">
</FORM>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• HIDDENHIDDEN
<?PHP
print(“<INPUT TYPE=’hidden’ NAME=’username’
VALUE=’$usuario’>n”);
?>
<?PHP
$username = $_POST[‘username’];
print ($username);
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• PASSWORDPASSWORD
Contraseña: <INPUT TYPE="password" NAME="clave">
<?PHP
$clave = $_POST[‘clave’];
print ($clave);
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• SUBMITSUBMIT
<INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos">
<?PHP
$enviar = $_POST[‘enviar’];
if ($enviar)
print ("Se ha pulsado el botón de enviar");
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• SELECT simpleSELECT 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);
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• SELECT múltipleSELECT múltiple
Idiomas:
<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”);
?>
Acceso a formularios desde PHPAcceso a formularios desde PHP
• TEXTAREATEXTAREA
Comentario:
<TEXTAREA COLS=“50" ROWS=“4" NAME="comentario">
Este libro me parece ...
</TEXTAREA>
<?PHP
$comentario = $_POST[‘comentario’];
print ($comentario);
?>
El formulario de PHPEl formulario de PHP
• La forma habitual de trabajar con formularios en PHP es utilizar unLa forma habitual de trabajar con formularios en PHP es utilizar un
único programa que procese el formulario o lo muestre segúnúnico programa que procese el formulario o lo muestre según
haya sido o no enviado, respectivamentehaya sido o no enviado, respectivamente
• Ventajas:Ventajas:
– Disminuye el número de ficherosDisminuye el número de ficheros
– Permite validar los datos del formulario en el propio formularioPermite validar los datos del formulario en el propio formulario
• Procedimiento:Procedimiento:
si se ha enviado el formulario:si se ha enviado el formulario:
Procesar formularioProcesar formulario
si no:si no:
Mostrar formularioMostrar formulario
fsifsi
El formulario de PHPEl formulario de PHP
• Esquema de funcionamiento:Esquema de funcionamiento:
si se ha enviado el formulario:
Procesar formulario
si no:
Mostrar formulario
fsi
a) b)
– La 1ª vez que se carga la página se muestra el formulario (a)La 1ª vez que se carga la página se muestra el formulario (a)
– La 2ª vezLa 2ª vez se procesa el formulario (b)se procesa el formulario (b)
El formulario de PHPEl formulario de PHP
• Para saber si se ha enviado el formulario se acude a la variablePara 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 lacorrespondiente al botón de envío. Si este botón aparece de la
siguiente forma en el formulario HTML:siguiente forma en el formulario HTML:
<INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar"><INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar">
entonces la condición anterior se transforma en:entonces la condición anterior se transforma en:
if (isset($enviar))if (isset($enviar))
o bieno bien
if ($enviar == “procesar”)if ($enviar == “procesar”)

Contenu connexe

Tendances (13)

Laboratorio 03
Laboratorio 03Laboratorio 03
Laboratorio 03
 
Buenas prácticas en XHTML, CSS y Accesibilidad
Buenas prácticas en XHTML, CSS y AccesibilidadBuenas prácticas en XHTML, CSS y Accesibilidad
Buenas prácticas en XHTML, CSS y Accesibilidad
 
Manual de PHP Basico
Manual de PHP BasicoManual de PHP Basico
Manual de PHP Basico
 
Curso HTML CSS 1/4
Curso HTML CSS 1/4Curso HTML CSS 1/4
Curso HTML CSS 1/4
 
Espacios de nombres en XML
Espacios de nombres en XMLEspacios de nombres en XML
Espacios de nombres en XML
 
Introduccion a php
Introduccion a phpIntroduccion a php
Introduccion a php
 
HTML y CSS
HTML y CSSHTML y CSS
HTML y CSS
 
Curso HTML y CSS, parte 1
Curso HTML y CSS, parte 1Curso HTML y CSS, parte 1
Curso HTML y CSS, parte 1
 
Introducción a PHP5
Introducción a PHP5Introducción a PHP5
Introducción a PHP5
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
introduccion al Lenguaje php
introduccion al Lenguaje phpintroduccion al Lenguaje php
introduccion al Lenguaje php
 
Curso CSS Avanzado
Curso CSS AvanzadoCurso CSS Avanzado
Curso CSS Avanzado
 
Curso HTML y CSS, parte 2
Curso HTML y CSS, parte 2Curso HTML y CSS, parte 2
Curso HTML y CSS, parte 2
 

En vedette

Introduccion a PHP
Introduccion a PHPIntroduccion a PHP
Introduccion a PHPFabio Fabre
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a phpalan moreno
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidorMiguel Orquera
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 
Cliente Servidor
Cliente ServidorCliente Servidor
Cliente ServidorJimmy Campo
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuelaLuisa Vink
 
Windows10 for-smb-customer-presentation-long-spanish2
Windows10 for-smb-customer-presentation-long-spanish2Windows10 for-smb-customer-presentation-long-spanish2
Windows10 for-smb-customer-presentation-long-spanish2Luis Melendez
 
Standard fci anglo français de petite vénerie
Standard fci anglo français de petite vénerieStandard fci anglo français de petite vénerie
Standard fci anglo français de petite vénerieelyaneforet
 
Standard fci fox hound anglais
Standard fci fox hound anglaisStandard fci fox hound anglais
Standard fci fox hound anglaiselyaneforet
 
MALAGA - Túnel de sensaciones
MALAGA - Túnel de sensacionesMALAGA - Túnel de sensaciones
MALAGA - Túnel de sensacionesASPM
 
Memo pour suivre sa stratégie de valorisation
Memo pour suivre sa stratégie de valorisationMemo pour suivre sa stratégie de valorisation
Memo pour suivre sa stratégie de valorisationJezabel Roullee
 
Standard fci braque d'auvergne
Standard fci braque d'auvergneStandard fci braque d'auvergne
Standard fci braque d'auvergneelyaneforet
 
Tu eres tu templo!
Tu eres tu templo!Tu eres tu templo!
Tu eres tu templo!LUZ M.
 

En vedette (20)

Introduccion a PHP
Introduccion a PHPIntroduccion a PHP
Introduccion a PHP
 
Introducción a php
Introducción a phpIntroducción a php
Introducción a php
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 
Cliente Servidor
Cliente ServidorCliente Servidor
Cliente Servidor
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
Conociendo PHP
Conociendo PHPConociendo PHP
Conociendo PHP
 
Arquitectura cliente servidor
Arquitectura cliente servidorArquitectura cliente servidor
Arquitectura cliente servidor
 
Les pays et nationalites
Les pays et nationalitesLes pays et nationalites
Les pays et nationalites
 
Republica bolivariana de venezuela
Republica bolivariana de venezuelaRepublica bolivariana de venezuela
Republica bolivariana de venezuela
 
Windows10 for-smb-customer-presentation-long-spanish2
Windows10 for-smb-customer-presentation-long-spanish2Windows10 for-smb-customer-presentation-long-spanish2
Windows10 for-smb-customer-presentation-long-spanish2
 
Standard fci anglo français de petite vénerie
Standard fci anglo français de petite vénerieStandard fci anglo français de petite vénerie
Standard fci anglo français de petite vénerie
 
Standard fci fox hound anglais
Standard fci fox hound anglaisStandard fci fox hound anglais
Standard fci fox hound anglais
 
MALAGA - Túnel de sensaciones
MALAGA - Túnel de sensacionesMALAGA - Túnel de sensaciones
MALAGA - Túnel de sensaciones
 
Memo pour suivre sa stratégie de valorisation
Memo pour suivre sa stratégie de valorisationMemo pour suivre sa stratégie de valorisation
Memo pour suivre sa stratégie de valorisation
 
Standard fci braque d'auvergne
Standard fci braque d'auvergneStandard fci braque d'auvergne
Standard fci braque d'auvergne
 
Tu eres tu templo!
Tu eres tu templo!Tu eres tu templo!
Tu eres tu templo!
 

Similaire à Introduccion a php

Similaire à Introduccion a php (20)

Curso php-my sql-clase-2
Curso php-my sql-clase-2Curso php-my sql-clase-2
Curso php-my sql-clase-2
 
Introduccion al PHP.ppt
Introduccion al PHP.pptIntroduccion al PHP.ppt
Introduccion al PHP.ppt
 
Php1
Php1Php1
Php1
 
Proyectos Web 3 Introduccion Php
Proyectos Web   3 Introduccion PhpProyectos Web   3 Introduccion Php
Proyectos Web 3 Introduccion Php
 
Caracteristicas generales de PHP
Caracteristicas generales de PHPCaracteristicas generales de PHP
Caracteristicas generales de PHP
 
Tema4.pdf
Tema4.pdfTema4.pdf
Tema4.pdf
 
Curso php desde_cero
Curso php desde_ceroCurso php desde_cero
Curso php desde_cero
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Introduccion A Php
Introduccion A PhpIntroduccion A Php
Introduccion A Php
 
Php 6 y Mysql
Php 6 y MysqlPhp 6 y Mysql
Php 6 y Mysql
 
Php!
Php!Php!
Php!
 
Tutorial php basico
Tutorial php basicoTutorial php basico
Tutorial php basico
 
MAnual de php básico
MAnual de php básicoMAnual de php básico
MAnual de php básico
 
Php Con Postgres
Php Con PostgresPhp Con Postgres
Php Con Postgres
 
PROGRAMACION PHP
PROGRAMACION PHPPROGRAMACION PHP
PROGRAMACION PHP
 
Primera Clase
Primera ClasePrimera Clase
Primera Clase
 
Web-Multimedia-clase1
Web-Multimedia-clase1Web-Multimedia-clase1
Web-Multimedia-clase1
 
Php
PhpPhp
Php
 
data_collection-es.pptx
data_collection-es.pptxdata_collection-es.pptx
data_collection-es.pptx
 

Introduccion a php

  • 1. Instituto de Educación Superior Tecnológico PúblicoInstituto de Educación Superior Tecnológico Público “Francisco de Paula Gonzáles Vigil”“Francisco de Paula Gonzáles Vigil” Carrera Profesional de Computación e InformáticaCarrera Profesional de Computación e Informática “Introducción a PHP" José Luis Ponce Segura jose.ponce@sitelsur.com www.sitelsur.com
  • 2. Introducción a PHPIntroducción a PHP • Lenguajes deLenguajes de scriptscript – PHP es un lenguaje dePHP es un lenguaje de scriptscript del lado del servidor. Otrosdel lado del servidor. Otros lenguajes similares son ASP, JSP o ColdFusionlenguajes similares son ASP, JSP o ColdFusion – Los scripts PHP están incrustados en los documentos HTML y elLos scripts PHP están incrustados en los documentos HTML y el servidor los interpreta y ejecuta antes de servir las páginas alservidor los interpreta y ejecuta antes de servir las páginas al clientecliente – El cliente no ve el código PHP sino los resultados que produceEl cliente no ve el código PHP sino los resultados que produce
  • 3. Introducción a PHPIntroducción a PHP • ¿Cómo funciona PHP?¿Cómo funciona PHP? Página HTML Página HTML internet Servidor web Cliente (navegador) <P>Hola, Ana</P>
  • 4. Introducción a PHPIntroducción a PHP • ¿Cómo funciona PHP?¿Cómo funciona PHP? Página PHP Intérprete PHP Página HTML Página HTML internet Servidor web Cliente (navegador) <?PHP $nombre = "Ana"; print ("<P>Hola, $nombre</P>"); ?> <P>Hola, Ana</P>
  • 5. Introducción a PHPIntroducción a PHP • Breve historia de PHPBreve historia de PHP – Creado por Rasmus Lerdorf para uso personal en 1994Creado por Rasmus Lerdorf para uso personal en 1994 – PHP =PHP = Personal Hypertext ProcessorPersonal Hypertext Processor – Versión actual: PHP 5Versión actual: PHP 5 – Es un módulo que se añade al servidor web y fueEs un módulo que se añade al servidor web y fue concebido inicialmente para Apacheconcebido inicialmente para Apache • ¿Por qué PHP?¿Por qué PHP? – Por sus ventajas: es potente, fácil de aprender, de librePor sus ventajas: es potente, fácil de aprender, de libre distribución, permite el acceso a bases de datos y otrasdistribución, permite el acceso a bases de datos y otras funcionalidades orientadas a la redfuncionalidades orientadas a la red – Dispone de abundante soporte en la WebDispone de abundante soporte en la Web
  • 6. Introducción a PHPIntroducción a PHP • RequisitosRequisitos – Servidor web Apache (www.apache.org)Servidor web Apache (www.apache.org) – con el módulo PHP (www.php.net)con el módulo PHP (www.php.net) – y la base de datos MySQL (www.mysql.com) si se deseay la base de datos MySQL (www.mysql.com) si se desea crear páginas dinámicascrear páginas dinámicas • Otras utilidadesOtras utilidades – Herramientas para la gestión de MySQL, comoHerramientas para la gestión de MySQL, como PHPMyAdmin (www.phpmyadmin.net)PHPMyAdmin (www.phpmyadmin.net) – Editores de PHP, como DevPHP (www.sourceforge.net) oEditores de PHP, como DevPHP (www.sourceforge.net) o Eclipse (www.eclipse.org)Eclipse (www.eclipse.org) – Manuales de PHP y MySQLManuales de PHP y MySQL
  • 7. Lenguaje PHP básicoLenguaje PHP básico 1.1. Sintaxis básicaSintaxis básica 2.2. Tipos de datosTipos de datos 3.3. VariablesVariables 4.4. ConstantesConstantes 5.5. Expresiones y operadoresExpresiones y operadores 6.6. Estructuras de controlEstructuras de control 7.7. FuncionesFunciones 8.8. TablasTablas 9.9. Bibliotecas de funcionesBibliotecas de funciones
  • 8. Sintaxis básicaSintaxis básica • PHP es sensible a las mayúsculasPHP es sensible a las mayúsculas • ¿Cómo se incrusta en la página web?¿Cómo se incrusta en la página web? <?PHP ... ?><?PHP ... ?> recomendado, siempre disponiblerecomendado, siempre disponible <?= expresión ?><?= expresión ?> equivale a <? echo expresión ?>equivale a <? echo expresión ?> • Las instrucciones se separan con un ; como en C. LaLas instrucciones se separan con un ; como en C. La marca final ?> implica un ;marca final ?> implica un ; • Comentarios: como en C, /* … */ y //Comentarios: como en C, /* … */ y //
  • 9. Sintaxis básicaSintaxis básica • Para imprimir:Para imprimir: echoecho yy printprint echo: muestra una o más cadenasecho: muestra una o más cadenas echo cadena1 [, cadena2…]; // no es una funciónecho cadena1 [, cadena2…]; // no es una función echo “Hola mundo”;echo “Hola mundo”; echo “Hola “, “mundo”;echo “Hola “, “mundo”; print: muestra una cadenaprint: muestra una cadena print cadena; // no es una funciónprint cadena; // no es una función print “Hola mundo”;print “Hola mundo”; print “Hola “ . “mundo”;print “Hola “ . “mundo”;
  • 10. Sintaxis básicaSintaxis básica • Ejemplo:Ejemplo: <HTML><HTML> <HEAD><HEAD> <TITLE>Mi primer programa en PHP</TITLE><TITLE>Mi primer programa en PHP</TITLE> </HEAD></HEAD> <BODY><BODY> <?PHP<?PHP print (“<P>Hola mundo</P>”);print (“<P>Hola mundo</P>”); ?>?> </BODY></BODY> </HTML></HTML>
  • 11. Sintaxis básicaSintaxis básica • Uso de n para generar código HTML legibleUso de n para generar código HTML legible • a) Sin na) 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
  • 12. Sintaxis básicaSintaxis básica • Uso de n para generar código HTML legibleUso de n para generar código HTML legible • b) Con nb) 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
  • 13. Sintaxis básicaSintaxis básica • Inclusión de ficheros externos:Inclusión de ficheros externos: – includeinclude()() – requirerequire()() • Ambos incluyen y evalúan el fichero especificadoAmbos incluyen y evalúan el fichero especificado • Diferencia: en caso de error include() produce un warning yDiferencia: en caso de error include() produce un warning y require() un error fatalrequire() un error fatal • Se usará require() si al producirse un error debe interrumpirse laSe usará require() si al producirse un error debe interrumpirse la carga de la páginacarga de la página • Ejemplo:Ejemplo:
  • 14. Sintaxis básicaSintaxis 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>
  • 15. Tipos de datosTipos de datos • PHP soporta 8PHP soporta 8 tipos de datos primitivostipos de datos primitivos :: – Tipos escalares: boolean, integer, double, stringTipos escalares: boolean, integer, double, string – Tipos compuestos: array, objectTipos compuestos: array, object – Tipos especiales: resource, NULLTipos especiales: resource, NULL • El tipo de una variable no se suele especificar. Se decide enEl tipo de una variable no se suele especificar. Se decide en tiempo de ejecución en función del contexto y puede variartiempo de ejecución en función del contexto y puede variar • Funciones de interés:Funciones de interés: – La función gettype() devuelve el tipo de una variableLa función gettype() devuelve el tipo de una variable – Las funciones is_Las funciones is_typetype comprueban si una variable es de un tipocomprueban si una variable es de un tipo dado:dado: is_array(), is_bool(), is_float(), is_integer(), is_null(),is_array(), is_bool(), is_float(), is_integer(), is_null(), is_numeric(), is_object(), is_resource(), is_scalar(),is_numeric(), is_object(), is_resource(), is_scalar(), is_string()is_string() – La función var_dump() muestra el tipo y el valor de una variable.La función var_dump() muestra el tipo y el valor de una variable. Es especialmente interesante con los arraysEs especialmente interesante con los arrays
  • 16. Tipos de datosTipos de datos • TipoTipo integerinteger (números enteros)(números enteros) – 27, -5, 027, -5, 0 • TipoTipo doubledouble (números reales)(números reales) – 1.234, -5.331.234, -5.33 • TipoTipo booleanboolean (lógico)(lógico) – Valores:Valores: truetrue,, falsefalse (insensibles a las mayúsculas)(insensibles a las mayúsculas) – El 0 y la cadena vacía tienen valorEl 0 y la cadena vacía tienen valor falsefalse
  • 17. Tipos de datosTipos de datos • Tipo string:Tipo string: – Las cadenas se encierran entre comillas simples o dobles:Las cadenas se encierran entre comillas simples o dobles: • ‘‘simples’: admite los caracteres de escape ’ (comilla simple)simples’: admite los caracteres de escape ’ (comilla simple) y (barra). Las variablesy (barra). Las variables NONO se expandense expanden • ““dobles”: admite más caracteres de escape, como n, r, t, ,dobles”: admite más caracteres de escape, como n, r, t, , $, ”. Los nombres de variables$, ”. Los nombres de variables SÍSÍ se expandense expanden • Ejemplos:Ejemplos: $a = 9;$a = 9; print ‘a vale $an’;print ‘a vale $an’; // muestra// muestra a vale $ana vale $an print “a vale $an”;print “a vale $an”; // muestra// muestra a vale 9a vale 9 y avanza una líneay avanza una línea print “<IMG SRC=‘logo.gif’>”;print “<IMG SRC=‘logo.gif’>”; // muestra// muestra <IMG SRC=‘logo.gif’><IMG SRC=‘logo.gif’> print “<IMG SRC=”logo.gif”>”;print “<IMG SRC=”logo.gif”>”; // muestra// muestra <IMG SRC=“logo.gif”><IMG SRC=“logo.gif”> – Acceso a un carácter de la cadena:Acceso a un carácter de la cadena: • La forma es $inicial = $nombre{0};La forma es $inicial = $nombre{0};
  • 18. VariablesVariables • Las variables siempre van precedidas de un $Las variables siempre van precedidas de un $ • El nombre es sensible a las mayúsculasEl nombre es sensible a las mayúsculas • Comienzan por letra o subrayado, seguido de letras, números oComienzan por letra o subrayado, seguido de letras, números o subrayadosubrayado • Variables predefinidas:Variables predefinidas: $GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES, $_ENV, $_REQUEST, $_SESSION$_ENV, $_REQUEST, $_SESSION • Ámbito: globales al fichero (excepto funciones) o locales a unaÁmbito: globales al fichero (excepto funciones) o locales a una funciónfunción • Ejemplo:Ejemplo: $valor = 5;$valor = 5; print “El valor es: “ . $valor . “n”;print “El valor es: “ . $valor . “n”; print “El valor es: $valorn”; // ojo: comillas doblesprint “El valor es: $valorn”; // ojo: comillas dobles Resultado:Resultado: El valor es: 5El valor es: 5
  • 19. VariablesVariables • Variables variablesVariables variables – Se pueden crear nombres de variables dinámicamenteSe pueden crear nombres de variables dinámicamente – La variable variable toma su nombre del valor de otraLa variable variable toma su nombre del valor de otra variable previamente declaradavariable previamente declarada – Ejemplo:Ejemplo: $a =$a = ""holahola"";; $$a =$$a = ""mundomundo"";; print "$a $holan";print "$a $holan"; print "$a ${$a}";print "$a ${$a}"; Resultado:Resultado: hola mundohola mundo hola mundohola mundo
  • 20. VariablesVariables <?PHP $mensaje_es="Hola"; $mensaje_en="Hello"; $idioma = "es"; $mensaje = "mensaje_" . $idioma; print $$mensaje; ?> • Ejemplo de variables variables: página internacionalizada (1)Ejemplo de variables variables: página internacionalizada (1)
  • 21. VariablesVariables <?PHP $mensaje_es="Hola"; $mensaje_en="Hello"; $idioma = "en"; $mensaje = "mensaje_" . $idioma; print $$mensaje; ?> • Ejemplo de variables variables: página internacionalizada (2)Ejemplo de variables variables: página internacionalizada (2)
  • 22. ConstantesConstantes • Definición de constantes:Definición de constantes: define (“CONSTANTE”, “hola”);define (“CONSTANTE”, “hola”); print CONSTANTE;print CONSTANTE; • No llevan $ delanteNo llevan $ delante • Sólo se pueden definir constantes de los tipos escalares (boolean,Sólo se pueden definir constantes de los tipos escalares (boolean, integer, double, string)integer, double, string)
  • 23. Expresiones y operadoresExpresiones y operadores • Operadores aritméticos:Operadores aritméticos: +, -, *, /, %, ++, --+, -, *, /, %, ++, -- • Operador de asignación:Operador de asignación: == operadores combinados: .=, +=, etcoperadores combinados: .=, +=, etc $a = 3; $a += 5;$a = 3; $a += 5;  a vale 8a vale 8 $b = “hola ”; $b .= “mundo”;$b = “hola ”; $b .= “mundo”;  b vale “hola mundo”b vale “hola mundo”  Equivale a $b = $b . “mundo”;Equivale a $b = $b . “mundo”; • Operadores de comparación:Operadores de comparación: ==, !=, <, >, <=, >= y otros==, !=, <, >, <=, >= y otros • Operador de control de error: @. Antepuesto a una expresión, evitaOperador de control de error: @. Antepuesto a una expresión, evita cualquier mensaje de error que pueda ser generado por la expresióncualquier mensaje de error que pueda ser generado por la expresión • Operadores lógicos:Operadores lógicos: and (&&), or (||), !, xorand (&&), or (||), !, xor and/&& y or/|| tienen diferentes prioridadesand/&& y or/|| tienen diferentes prioridades • Operadores de cadena:Operadores de cadena: concatenación: . (punto)concatenación: . (punto) asignación con concatenación: .=asignación con concatenación: .=
  • 24. Expresiones y operadoresExpresiones y operadores • Precedencia de operadores (de mayor a menor):Precedencia de operadores (de mayor a menor): ++, --++, -- *, /, %*, /, % +,-+,- <, <=, >, >=<, <=, >, >= ==, !===, != &&&& |||| andand oror
  • 25. Estructuras de controlEstructuras de control • Estructuras selectivas:Estructuras selectivas: – if-elseif-else – switchswitch • Estructuras repetitivas:Estructuras repetitivas: – whilewhile – forfor – foreachforeach
  • 26. Estructuras de controlEstructuras de control • Estructura selectivaEstructura selectiva if-else • Mismo comportamiento que en CMismo comportamiento que en C • Las sentencias compuestas se encierran entre llavesLas sentencias compuestas se encierran entre llaves • elseif puede ir todo juntoelseif puede ir todo junto if (condición) sentencia if (condición1) sentencia 1 else if (condición2) sentencia 2 ... else if (condición n) sentencia n else sentencia n+1 if (condición) sentencia 1 else sentencia 2
  • 27. Estructuras de controlEstructuras de control • Ejemplo de estructura selectiva if-else:Ejemplo de estructura selectiva if-else: <?PHP<?PHP if ($sexo == ‘M’)if ($sexo == ‘M’) $saludo = "Bienvenida, ";$saludo = "Bienvenida, "; elseelse $saludo = "Bienvenido, ";$saludo = "Bienvenido, "; $saludo = $saludo . $nombre;$saludo = $saludo . $nombre; print ($saludo);print ($saludo); ?>?>
  • 28. Estructuras de controlEstructuras de control • Estructura selectivaEstructura selectiva switch switch (expresión)switch (expresión) {{ case valor_1:case valor_1: sentencia 1sentencia 1 break;break; case valor_2:case valor_2: sentencia 2sentencia 2 break;break; …… case valor_n:case valor_n: sentencia nsentencia n break;break; defaultdefault sentencia n+1sentencia n+1 }} • Mismo comportamiento que en C, sólo que la expresión delMismo comportamiento que en C, sólo que la expresión del case puede ser integer, float o stringcase puede ser integer, float o string
  • 29. Estructuras de controlEstructuras de control • Ejemplo de estructura selectiva switch:Ejemplo de estructura selectiva switch: switch ($extension)switch ($extension) {{ case ("PDF"):case ("PDF"): $tipo = "Documento Adobe PDF";$tipo = "Documento Adobe PDF"; break;break; case ("TXT"):case ("TXT"): $tipo = "Documento de texto";$tipo = "Documento de texto"; break;break; case ("HTML"):case ("HTML"): case ("HTM"):case ("HTM"): $tipo = "Documento HTML";$tipo = "Documento HTML"; break;break; default:default: $tipo = "Archivo " . $extension;$tipo = "Archivo " . $extension; }} print ($tipo);print ($tipo);
  • 30. Estructuras de controlEstructuras de control • Estructura repetitivaEstructura repetitiva while while (condición)while (condición) sentenciasentencia • Mismo comportamiento que en CMismo comportamiento que en C
  • 31. Estructuras de controlEstructuras de control • Ejemplo de estructura repetitiva while:Ejemplo de estructura repetitiva while: <?PHP<?PHP print ("<UL>n");print ("<UL>n"); $i=1;$i=1; while ($i <= 5)while ($i <= 5) {{ print ("<LI>Elemento $i</LI>n");print ("<LI>Elemento $i</LI>n"); $i++;$i++; }} print ("</UL>n");print ("</UL>n"); ?>?>
  • 32. Estructuras de controlEstructuras de control • Estructura repetitivaEstructura repetitiva for for (inicialización; condición; incremento)for (inicialización; condición; incremento) sentenciasentencia • Mismo comportamiento que en CMismo comportamiento que en C
  • 33. Estructuras de controlEstructuras de control • Ejemplo de estructura repetitiva for:Ejemplo de estructura repetitiva for: <?PHP<?PHP print ("<UL>n");print ("<UL>n"); for ($i=1; $i<=5; $i++)for ($i=1; $i<=5; $i++) print ("<LI>Elemento $i</LI>n");print ("<LI>Elemento $i</LI>n"); print ("</UL>n");print ("</UL>n"); ?>?>
  • 34. FuncionesFunciones • Ejemplo:Ejemplo: function suma ($x, $y)function suma ($x, $y) {{ $s = $x + $y;$s = $x + $y; return $s;return $s; }} $a=1;$a=1; $b=2;$b=2; $c=suma ($a, $b);$c=suma ($a, $b); print $c;print $c;
  • 35. FuncionesFunciones • Por defecto los parámetros se pasan por valorPor defecto los parámetros se pasan por valor • Paso por referencia:Paso por referencia: function incrementa (&$a)function incrementa (&$a) {{ $a = $a + 1;$a = $a + 1; }} $a=1;$a=1; incrementa ($a);incrementa ($a); print $a; // Muestra un 2print $a; // Muestra un 2
  • 36. FuncionesFunciones • Argumentos por defectoArgumentos por defecto function muestranombre ($titulo = "Sr.")function muestranombre ($titulo = "Sr.") {{ print "Estimado $titulo:n";print "Estimado $titulo:n"; }} muestranombre ();muestranombre (); muestranombre ("Prof.");muestranombre ("Prof."); • Salida:Salida: Estimado Sr.:Estimado Sr.: Estimado Prof.:Estimado Prof.:
  • 37. FuncionesFunciones • Los argumentos con valores por defecto deben serLos argumentos con valores por defecto deben ser siempre los últimos:siempre los últimos: function muestranombre ($nombre, $titulo= "Sr.")function muestranombre ($nombre, $titulo= "Sr.") {{ print "Estimado $titulo $nombre:n";print "Estimado $titulo $nombre:n"; }} muestranombre (“Fernández”);muestranombre (“Fernández”); muestranombre (“Fernández”, "Prof.");muestranombre (“Fernández”, "Prof."); • Salida:Salida: Estimado Sr. Fernández:Estimado Sr. Fernández: Estimado Prof. Fernández:Estimado Prof. Fernández:
  • 38. Arrays = TablaArrays = Tabla ¿Qué es un¿Qué es un arrayarray?? • UnUn arrayarray es sencillamente una tabla de valores.es sencillamente una tabla de valores. • Cada uno de losCada uno de los elementoselementos de esade esa tablatabla se identifica por medio de unse identifica por medio de un nombrenombre (común para todos) y un(común para todos) y un índiceíndice (que diferenciaría a cada uno de ellos).(que diferenciaría a cada uno de ellos). • La sintaxis que permite definir elementos en un array es la siguiente:La sintaxis que permite definir elementos en un array es la siguiente: $nombre[indice]$nombre[indice] ElEl índiceíndice puede serpuede ser un númeroun número (habría que escribirlo dentro del corchete(habría que escribirlo dentro del corchete sinsin comillascomillas),), unauna cadenacadena (que habría que poner en el corchete encerrada entre(que habría que poner en el corchete encerrada entre comillas sencillascomillas sencillas –'–).–'–). Cuando losCuando los índicesíndices de un array sonde un array son númerosnúmeros se dice que esse dice que es escalarescalar mientrasmientras que si fueranque si fueran cadenascadenas se le llamaría arrayse le llamaría array asociativoasociativo..
  • 39. Arrays UnidimensionalesArrays Unidimensionales Arrays EscalaresArrays Escalares • Los elementos de unLos elementos de un arrayarray escalar puedeescalar puede escribirse con una de estas sintaxis:escribirse con una de estas sintaxis: $a[]=$a[]=valorvalor ó $a[xx]=ó $a[xx]=valorvalor • En el primero se asigna los índices deEn el primero se asigna los índices de forma automática, éste es un valorforma automática, éste es un valor enteroentero y empieza por ely empieza por el 00 (CERO).(CERO). • En el segundo de los casos, seremosEn el segundo de los casos, seremos nosotros quienes pongamos (nosotros quienes pongamos (xxxx) el) el númeronúmero correspondiente alcorrespondiente al valor delvalor del índiceíndice.. Arrays AsociativoArrays Asociativo • Los elementos de unLos elementos de un arrayarray asociativoasociativo pueden escribirse usando la siguientepueden escribirse usando la siguiente sintaxis:sintaxis: $a[$a['indice''indice']=]=valorvalor • En éste caso estamos obligados a escribirEn éste caso estamos obligados a escribir el nombre del índice que habrá de ser unael nombre del índice que habrá de ser una cadenacadena y debe ponerse entre comillas.y debe ponerse entre comillas. • Tanto en este supuesto como en el anterior,Tanto en este supuesto como en el anterior, es posible –y bastante frecuente– utilizares posible –y bastante frecuente– utilizar como índice el contenido de una variable. Elcomo índice el contenido de una variable. El modo de hacerlo sería:modo de hacerlo sería: $a[$ind]=$a[$ind]=valorvalor • En este caso, sea cual fuere el valor de laEn este caso, sea cual fuere el valor de la variablevariable $ind$ind, el nombre de la variable, el nombre de la variable nuncanunca se pone entre comillas.se pone entre comillas.
  • 40. Arrays UnidimensionalesArrays Unidimensionales << Escalares y Asociativos >><< Escalares y Asociativos >> $a[0]=“Domingo” $a[“Primero”]=“Domingo”
  • 41. Arrays BidimensionalesArrays Bidimensionales Arrays EscalaresArrays Escalares • Los elementos de unLos elementos de un arrayarray bidimensionalbidimensional escalar pueden escribirse usando una deescalar pueden escribirse usando una de estas sintaxis:estas sintaxis: $a[][]=$a[][]=valor óvalor ó $a[xx][]=$a[xx][]=valorvalor $a[][xx]=$a[][xx]=valor óvalor ó $a[xx][yy]=$a[xx][yy]=valorvalor Arrays AsociativoArrays Asociativo • Los elementos de unLos elementos de un arrayarray asociativo seasociativo se pueden escribir usando la siguiente sintaxis:pueden escribir usando la siguiente sintaxis: $a[$a["indice1""indice1"][]["indice2""indice2"]=]=valorvalor
  • 42. La función ArrayLa función Array Por ejemplo:Por ejemplo: $z=array ($z=array ( 0 => 2,0 => 2, 1 => "Pepe",1 => "Pepe", 2 => 34.7,2 => 34.7, 3 => "34Ambrosio",3 => "34Ambrosio", );); producirá igual resultado que:producirá igual resultado que: $z[0]=2;$z[0]=2; $z[1]="Pepe";$z[1]="Pepe"; $z[2]=34.7;$z[2]=34.7; $z[3]="34Ambrosio";$z[3]="34Ambrosio"; $a= array ($a= array ( índice 0índice 0 =>=> valorvalor, ..... ,, ..... , índice níndice n =>=> valorvalor,);,);
  • 43. La función ArrayLa función Array • La funciónLa función array()array() permite escribir arrayspermite escribir arrays de cualquier dimensión utilizando la técnicade cualquier dimensión utilizando la técnica dede anidadoanidado. Ejemplo de array escalar:. Ejemplo de array escalar: $z[0][0]=34;$z[0][0]=34; $z[0][1]=35;$z[0][1]=35; $z[0][2]=36;$z[0][2]=36; $z[1][0]=134;$z[1][0]=134; $z[1][1]=135;$z[1][1]=135; $z[1][2]=136;$z[1][2]=136; podríamos hacerlo así:podríamos hacerlo así: $z=array( 0 => array (0 => 34,$z=array( 0 => array (0 => 34, 1 => 35,1 => 35, 2 => 36,),2 => 36,), 1 => array (0 => 134,1 => array (0 => 134, 1 => 135,1 => 135, 2 =>2 => 136,)136,) );); • El anidado sucesivo permitiría generarEl anidado sucesivo permitiría generar arraysarrays de cualquier dimensión. Ejemplo dede cualquier dimensión. Ejemplo de array asociativoarray asociativo:: $z["a"]["A"]=34;$z["a"]["A"]=34; $z["a"]["B"]=35;$z["a"]["B"]=35; $z["a"]["C"]=36;$z["a"]["C"]=36; $z["b"]["A"]=134;$z["b"]["A"]=134; $z["b"]["B"]=135;$z["b"]["B"]=135; $z["b"]["C"]=136;$z["b"]["C"]=136; que podría definirse también de esta forma:que podría definirse también de esta forma: $z=array("a" => array ("A" => 34,$z=array("a" => array ("A" => 34, "B" =>"B" => 35,35, "C" =>"C" => 36, ),36, ), "b" => array ("A" =>"b" => array ("A" => 134,134, "B" =>"B" => 135,135, $a= array ($a= array ( índice 0índice 0 =>=> valorvalor, ..... ,, ..... , índice níndice n =>=> valorvalor,);,);
  • 44. Bibliotecas de funcionesBibliotecas de funciones • Existen muchas bibliotecas de funciones en PHPExisten muchas bibliotecas de funciones en PHP • Algunos ejemplos:Algunos ejemplos: – Funciones de manipulación de cadenasFunciones de manipulación de cadenas – Funciones de fecha y horaFunciones de fecha y hora – Funciones de arraysFunciones de arrays – Funciones de ficherosFunciones de ficheros – Funciones matemáticasFunciones matemáticas – Funciones de bases de datosFunciones de bases de datos – Funciones de redFunciones de red • Algunas bibliotecas requieren la instalación de componentesAlgunas bibliotecas requieren la instalación de componentes adicionalesadicionales • Todas las funciones de biblioteca están comentadas en laTodas las funciones de biblioteca están comentadas en la documentación de PHPdocumentación de PHP
  • 45. Bibliotecas de funcionesBibliotecas de funciones • Funciones de manipulación de cadenasFunciones de manipulación de cadenas – explode()explode() • Divide una cadena en subcadenasDivide una cadena en subcadenas • arrayarray explodeexplode (string separator, string string [, int limit])(string separator, string string [, int limit]) – rtrim(), ltrim(), trim()rtrim(), ltrim(), trim() • Eliminan caracteres a la derecha, a la izquierda o porEliminan caracteres a la derecha, a la izquierda o por ambos lados de una cadenaambos lados de una cadena • stringstring rtrimrtrim ( string str [, string charlist])( string str [, string charlist]) – strstr()strstr() • Busca la primera ocurrencia de una subcadenaBusca la primera ocurrencia de una subcadena – strtolower() / strtoupper()strtolower() / strtoupper() • Convierte una cadena a minúscula / mayúsculaConvierte una cadena a minúscula / mayúscula – strcmp() / strcasecmp()strcmp() / strcasecmp() • Compara dos cadenas con/sin distinción de mayúsculasCompara dos cadenas con/sin distinción de mayúsculas – strlen()strlen() • Calcula la longitud de una cadenaCalcula la longitud de una cadena
  • 46. Bibliotecas de funcionesBibliotecas de funciones • Funciones de fecha y horaFunciones de fecha y hora – date()date() • Formatea una fecha según un formato dadoFormatea una fecha según un formato dado • Ejemplo:Ejemplo: $fecha = date ("j/n/Y H:i");$fecha = date ("j/n/Y H:i"); print ("$fecha");print ("$fecha"); Resultado:Resultado: 26/9/2005 17:3626/9/2005 17:36 – strtotime()strtotime() • Convierte una fecha en unConvierte una fecha en un timestamptimestamp de UNIXde UNIX • Ejemplo:Ejemplo: $fecha = date ("j/n/Y", strtotime(“5 april 2001"));$fecha = date ("j/n/Y", strtotime(“5 april 2001")); print ("$fecha");print ("$fecha"); Resultado:Resultado: 5/4/20015/4/2001
  • 47. Bibliotecas de funcionesBibliotecas de funciones • Funciones de arraysFunciones de arrays – array_count_values()array_count_values() • Calcula la frecuencia de cada uno de los elementos de un arrayCalcula la frecuencia de cada uno de los elementos de un array – array_search()array_search() • Busca un elemento en un arrayBusca un elemento en un array – count()count() • Cuenta los elementos de un arrayCuenta los elementos de un array – sort(), rsort()sort(), rsort() • Ordena y reindexa un array (r=decreciente)Ordena y reindexa un array (r=decreciente) – ksort(), krsort()ksort(), krsort() • Ordena por claves un array (r=decreciente)Ordena por claves un array (r=decreciente)
  • 48. FormulariosFormularios 1.1. Acceso a formularios HTML desde PHPAcceso a formularios HTML desde PHP 2.2. El formulario de PHPEl formulario de PHP 3.3. Subida de ficheros al servidorSubida de ficheros al servidor 4.4. Validación de los datos de un formularioValidación de los datos de un formulario
  • 49. Acceso a formularios desde PHPAcceso a formularios desde PHP • Desde PHP se puede acceder fácilmente a los datosDesde PHP se puede acceder fácilmente a los datos introducidos desde un formulario HTMLintroducidos desde un formulario HTML • Veámoslo con un ejemplo simpleVeámoslo con un ejemplo simple
  • 50. Acceso a formularios desde PHPAcceso a formularios desde PHP • Fichero uno.phpFichero uno.php <HTML><HTML> <BODY><BODY> <FORM ACTION=”dos.php” METHOD=”POST”><FORM ACTION=”dos.php” METHOD=”POST”> Edad: <INPUT TYPE=”text” NAME=”edad”>Edad: <INPUT TYPE=”text” NAME=”edad”> <INPUT TYPE=”submit” VALUE=”aceptar”><INPUT TYPE=”submit” VALUE=”aceptar”> </FORM></FORM> </BODY></BODY> </HTML></HTML> • Fichero dos.phpFichero dos.php <HTML><HTML> <BODY><BODY> <?PHP<?PHP print (“La edad es: $edad”);print (“La edad es: $edad”); ?>?> </BODY></BODY> </HTML></HTML>
  • 51. Acceso a formularios desde PHPAcceso a formularios desde PHP
  • 52. Acceso a formularios desde PHPAcceso 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’];
  • 53. Acceso a formularios desde PHPAcceso 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>
  • 54. Acceso a formularios desde PHPAcceso a formularios desde PHP • Acceso a los diferentes tipos de elementos deAcceso a los diferentes tipos de elementos de entrada de formularioentrada de formulario – Elementos de tipo INPUTElementos de tipo INPUT • TEXTTEXT • RADIORADIO • CHECKBOXCHECKBOX • BUTTONBUTTON • FILEFILE • HIDDENHIDDEN • PASSWORDPASSWORD • SUBMITSUBMIT – Elemento SELECTElemento SELECT • Simple / múltipleSimple / múltiple – Elemento TEXTAREAElemento TEXTAREA
  • 55. Acceso a formularios desde PHPAcceso a formularios desde PHP • TEXTTEXT Introduzca la cadena a buscar: <INPUT TYPE="text" NAME="cadena" VALUE="valor por defecto" SIZE="20"> <?PHP $cadena = $_POST[‘cadena’]; print ($cadena); ?>
  • 56. Acceso a formularios desde PHPAcceso a formularios desde PHP • RADIORADIO Sexo: <INPUT TYPE="radio" NAME=“sexo" VALUE=“M“ CHECKED>Mujer <INPUT TYPE="radio" NAME=“sexo" VALUE=“H">Hombre <?PHP $sexo = $_POST[‘sexo’]; print ($sexo); ?>
  • 57. Acceso a formularios desde PHPAcceso a formularios desde PHP • CHECKBOXCHECKBOX <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”); ?>
  • 58. Acceso a formularios desde PHPAcceso a formularios desde PHP • BUTTONBUTTON <INPUT TYPE="button" NAME=“actualizar" VALUE="Actualizar datos"> <?PHP $actualizar = $_POST[‘actualizar’]; if ($actualizar) print ("Se han actualizado los datos"); ?>
  • 59. Acceso a formularios desde PHPAcceso a formularios desde PHP • FILEFILE <FORM ACTION="procesa.php" METHOD="post“ ENCTYPE="multipart/form-data"> <INPUT TYPE="file" NAME="fichero"> </FORM>
  • 60. Acceso a formularios desde PHPAcceso a formularios desde PHP • HIDDENHIDDEN <?PHP print(“<INPUT TYPE=’hidden’ NAME=’username’ VALUE=’$usuario’>n”); ?> <?PHP $username = $_POST[‘username’]; print ($username); ?>
  • 61. Acceso a formularios desde PHPAcceso a formularios desde PHP • PASSWORDPASSWORD Contraseña: <INPUT TYPE="password" NAME="clave"> <?PHP $clave = $_POST[‘clave’]; print ($clave); ?>
  • 62. Acceso a formularios desde PHPAcceso a formularios desde PHP • SUBMITSUBMIT <INPUT TYPE="submit" NAME="enviar" VALUE="Enviar datos"> <?PHP $enviar = $_POST[‘enviar’]; if ($enviar) print ("Se ha pulsado el botón de enviar"); ?>
  • 63. Acceso a formularios desde PHPAcceso a formularios desde PHP • SELECT simpleSELECT 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); ?>
  • 64. Acceso a formularios desde PHPAcceso a formularios desde PHP • SELECT múltipleSELECT múltiple Idiomas: <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”); ?>
  • 65. Acceso a formularios desde PHPAcceso a formularios desde PHP • TEXTAREATEXTAREA Comentario: <TEXTAREA COLS=“50" ROWS=“4" NAME="comentario"> Este libro me parece ... </TEXTAREA> <?PHP $comentario = $_POST[‘comentario’]; print ($comentario); ?>
  • 66. El formulario de PHPEl formulario de PHP • La forma habitual de trabajar con formularios en PHP es utilizar unLa forma habitual de trabajar con formularios en PHP es utilizar un único programa que procese el formulario o lo muestre segúnúnico programa que procese el formulario o lo muestre según haya sido o no enviado, respectivamentehaya sido o no enviado, respectivamente • Ventajas:Ventajas: – Disminuye el número de ficherosDisminuye el número de ficheros – Permite validar los datos del formulario en el propio formularioPermite validar los datos del formulario en el propio formulario • Procedimiento:Procedimiento: si se ha enviado el formulario:si se ha enviado el formulario: Procesar formularioProcesar formulario si no:si no: Mostrar formularioMostrar formulario fsifsi
  • 67. El formulario de PHPEl formulario de PHP • Esquema de funcionamiento:Esquema de funcionamiento: si se ha enviado el formulario: Procesar formulario si no: Mostrar formulario fsi a) b) – La 1ª vez que se carga la página se muestra el formulario (a)La 1ª vez que se carga la página se muestra el formulario (a) – La 2ª vezLa 2ª vez se procesa el formulario (b)se procesa el formulario (b)
  • 68. El formulario de PHPEl formulario de PHP • Para saber si se ha enviado el formulario se acude a la variablePara 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 lacorrespondiente al botón de envío. Si este botón aparece de la siguiente forma en el formulario HTML:siguiente forma en el formulario HTML: <INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar"><INPUT TYPE="SUBMIT" NAME="enviar“ VALUE="procesar"> entonces la condición anterior se transforma en:entonces la condición anterior se transforma en: if (isset($enviar))if (isset($enviar)) o bieno bien if ($enviar == “procesar”)if ($enviar == “procesar”)