Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Introduccin al PHP
Febrero-2006
Programacion en Lenguaje PHP
I- Aspectos Generales
Orgenes PHP (Personal Home Page), 1994, inventado por Rasmus Lerdof. Basado en scripts desarrollados en perl, luego reescritos en C. Versin actual PHP5 (sept 2004), presente en 20% de servidores web en internet. 6 lenguaje mas utilizado (C,Java, C++, VB, Perl)
I- Aspectos Generales
Necesidades para programar en PHP
PC
Apache
Interprete de PHP
(http://www.php.net)
Intrprete PHP
I- Aspectos Generales
Primer programa en PHP
< <HTML> HTML> <HEAD> <HEAD> <TITLE>Primer <TITLE>PrimerPrograma</TITLE> Programa</TITLE> </HEAD> </HEAD> <BODY> <BODY> <?PHP <?PHP echo echoMi Miprimer primerprograma; programa; ?> ?> </BODY> </BODY> </HTML> </HTML> Programa1.php
I- Aspectos Generales
Cmo incrustar cdigo en PHP
Forma ms recomendable
Siempre disponible (no depende de configuracin del Servidor. Especfica de PHP. nica que permite incrustar cdigo PHP en XML y XHTML
Otras formas
<SCRIPT LANGUAGE=php> ......................................... ............... ......................................... ............... </SCRIPT> <? ..................... ........ ..................... ........ ?> <% ..................... ........ ..................... ........ %>
I- Aspectos Generales
Cmo incrustar cdigo en PHP
<?php <?php if if($x<0) ($x<0){ { $y=1; $y=1; echo echoNmero Nmero negativo; negativo; } } else else{ { $y=2; $y=2; echo echoNmero Nmero positivo; positivo; } } ?> ?>
<?php <?php if if($x<0) ($x<0){ { $y=1; $y=1; ?> ?> Nmero Nmeronegativo negativo <?php <?php } } else else{ { $y=2; $y=2; ?> ?> Nmero Nmeropositivo positivo <?php <?php } } ?> ?>
Los scripts pueden ser divididos en bloques y escribir entre ellos HTML puro.
I- Aspectos Generales
Algunos ejemplo PHP
<?php <?php phpinfo(); phpinfo(); ?> ?>
La funcin phpinfo() para obtener informacin acerca de su sistema y configuracin como las variables predefinidas disponibles
<?php <?php echo echo $_SERVER["HTTP_USER_AGENT"]; $_SERVER["HTTP_USER_AGENT"]; ?> ?>
10
11
I- Aspectos Generales
Ejemplo
<?php <?php var_dump((bool) // var_dump((bool)""); ""); //bool(false) bool(false) var_dump((bool) // var_dump((bool)1); 1); //bool(true) bool(true) var_dump((bool) // var_dump((bool)-2); -2); //bool(true) bool(true) var_dump((bool) var_dump((bool)"foo"); "foo"); // //bool(true) bool(true) var_dump((bool) var_dump((bool)2.3e5); 2.3e5); // //bool(true) bool(true) var_dump((bool) var_dump((bool)array(12)); array(12));// //bool(true) bool(true) var_dump((bool) var_dump((bool)array()); array()); // //bool(false) bool(false) var_dump((bool) var_dump((bool)"false"); "false"); // //bool(true) bool(true) ?> ?>
14
16
<?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?> Conversin a flotante. Ver seccin en documentacin complementaria
17
18
Ejemplos de valores
20
//equivale //equivalea a
21
Asignacin de variables:
<?PHP <?PHP $x=5; $x=5; $y=3; $y=3; echo echox=$x<BR>y=$y; x=$x<BR>y=$y; $x=5*$x*$y; $x=5*$x*$y; echo echox=$x<BR>y=$y; x=$x<BR>y=$y; ?> ?>
22
gettype() is_array()
is_float() determina si contiene un nm. en coma flotante. is_int() determina si contiene un nmero entero. is_object() determina si hace referencia a un objeto. is_string() determina si contiene una cadena de caracteres.
Programacion en Lenguaje PHP 23
I- Aspectos Generales
Ejemplo is_array() <?php <?php $si $si= = array('esto', array('esto', 'es', 'es', 'una 'unamatriz'); matriz'); echo echois_array($si) is_array($si) ? ? 'Matriz<br>: 'Matriz<br>:'no 'no es es Ma Ma triz'; triz'; echo echo"\n"; "\n"; $no $no= = 'esto 'estoes es una unacadena'; cadena'; echo echois_array($no) is_array($no) ? ? 'Matriz' 'Matriz' ::'no 'noes es Matriz' Matriz' ;; ?> ?> Matriz no es Matriz
24
empty() Permite saber si una variable que existe tiene un valor nulo o vaco
25
I- Aspectos Generales
Ejemplo isset(), unset() <?php <?php $var $var = = ''; ''; if if (isset($var)) (isset($var)){{ echo echo"Esta "Estavariable variableesta estadefinida, definida, asi asi que quese seimprimira imprimiraesto."; esto."; }} $a $a= = "prueba"; "prueba"; $b $b= = "otraprueba"; "otraprueba"; var_dump(isset($a)); var_dump(isset($a)); // //TRUE TRUE var_dump(isset($a, var_dump(isset($a, $b)); $b)); // //TRUE TRUE unset unset ($a); ($a); var_dump(isset($a)); var_dump(isset($a)); // //FALSE FALSE var_dump(isset($a, var_dump(isset($a, $b)); $b));// //FALSE FALSE $foo $foo= = NULL; NULL; var_dump(isset($foo)); var_dump(isset($foo)); // //FALSE FALSE ?> ?>
26
El programador puede forzar la conversin de una variable de dos formas Mediante el uso de la funcin settype() $b=settype($a, string); Mediante el operador de conversin $b=(integer)$a; tambin llammado cast o molde
27
Variables globales:
Se conocen en todo el programa documento Se declaran fuera de las funciones Existen en todo el documento, incluso si hay varios scripts. Pueden ser referenciadas dentro de una funcin solo si se declaran como global dentro de la funcion.
Programacion en Lenguaje PHP 28
29
Parmetros formales:
Si una funcin utiliza argumentos, debe declarar las variables que van a aceptar los valores de los argumentos (parmetros formales). Se comportan como var. locales
Programacion en Lenguaje PHP 30
32
33
34
<?PHP <?PHP$edad=54; $edad=54; echo echomi miedad edades es$edad<BR>; $edad<BR>; echo echomi mi edad edades es..$edad $edad.. <BR>; <BR>; echo echo<<<TEXTO <<<TEXTO mi miedad edades es$edad<BR> $edad<BR> TEXTO; TEXTO;?> ?>
36
37
38
39
40
nota: variable >> nmero posiciones en bits /* dividir */ variable << nmero posiciones en bits /*multiplicar */
42
/*1 */ /*1 */
Ejemplo-2:
<?PHP $x=10; $y=20; echo ($x&$y); echo"<br>"; echo ($x|$y); ?> Resultado:
Programacion en Lenguaje PHP 43
/* 0 */ /* 30 */
45
operador ` (ejecucin)
la expresin encerrada entre acentos debe ser tratada como una sentencia a ejecutar directamente por el sistema operativo Ejemplo <?php $x=`dir`; echo <pre> $x </pre>; ?> /* genera una pagina web con el contenido del directorio donde est */
Programacion en Lenguaje PHP 46
47
48
49
Resumen de precedencias:
Mayor () [ -> . ++ --(cast), @ */% +. (concatenacion) << >> << = >> = ==, ! =, === &, ^, |,&&,|| condicional asignacion and, or, xor Menor I-D D-I I-D (aritmticos) I-D (aritmticos) I-D I-D (relacionales) I-D (relacionales) I-D (relacionales) I-D (lgicos) I-D I-D (lgicos)
50
51
54
12 txtnumero1 25 btnSumar
13 txtnumero2
55
En php cualquier valor distinto de 0 se considera true, 0 se considera falso. Sentencia. Puede ser simple, bloque o ninguna.
57
if anidado
Es una variante del if consistente en una sentencia if objeto de otro if o else. En PHP, al igual que en C, el else est asociado al if ms prximo que no tenga sentencia else asociada
58
59
Sintaxis alternativa: PHP admite sintaxis alternativa para delimitar el bloque (til para fraccionar una estructura en dos scripts)
if (condicion) : sentencia1; .. sentencian; endif;
Programacion en Lenguaje PHP 60
61
64
for
forma general for (inicializacin; condicin; incremento) sentencia; Descripcin inicializacin-> sentencia de asignacin para iniciar variable de control de ciclo. condicin -> expresin relacional. incremento -> determina como cambia la variable de control.
65
do-while
analiza la condicin a final del ciclo. forma general do { sentencia; } while (condicion);
Descripcin el bucle itera hasta que la condicin se hace falsa.
66
Sentencia incorporada en la versin php 4.0. (*) Permite recorrer todos los elementos de un array de una forma muy simple. En la primera iteracin la variable contendr el valor del primer elemento del array nombre_array en las siguientes iteraciones los sucesivos valores hasta recorrer todos los elementos del array
67
for (inicializacin; condicin; modificacin) : sentencia(s) a ejecutar si se cumple la condicin endfor; do { sentencia(s) a ejecutar si se cumple la condicin } while (expresin);
Programacion en Lenguaje PHP 68
Dentro de un bucle, ambas sentencias admite el uso de un parmetro opcional que indica: Nmero de estructuras de control de las que hay que salir o Nmero de niveles a saltar para continuar la ejecucin (break n; continue n;).
69
de bloque grupo de sentencias relacionadas que se tratan como una unidad Los bloques comienzan con { y concluyen con } Se pueden colocar en cualquier punto de programa
Programacion en Lenguaje PHP 70
?>
71
73
function Potencia ($base, $exp) { $p=1; for ($i=1;$i<=$exp;$i++) $p=$p*$base; return $p; } $b1=2; $b2=-2; for ($i=0;$i<10; $i++) { echo potencia($b1,$i); echo potencia($b2,$i); echo potencia(potencia($b1,$b2),$i); } ?>
</BODY> </HTML>
74
75
function suma () { $n=func_num_args(); $aux=0; for ($i=0;$i<$n;$i++) $aux += func_get_arg($i); return aux; } print suma (2,5,6). <BR>; print suma (1,5,7,2). <BR>; print suma ().<BR>; ?>
76
78
80
82
83
84
86
88
(*) Se vern en los correspondientes captulos Todo en http://www.php.net Otras referencias especficas de inters:
http://www.interec.com/tutoriales/manuales/php.phtml
Programacion en Lenguaje PHP 89
90
91
Transformacin de los ndices array_change_key_case (array, caso) Subdivisin array_chuck (array, dimensin, valor_booleano) Contabilizacin de elementos array_count_values (array) count (array)
93
95
V- ARRAYS Introduccin
Un array es una coleccin de datos que se referencian con un nombre comn En PHP los datos pueden ser de diferente tipo (cadenas, valores numricos, otros arrays, ...) A cada elemento especifico del array se accede mediante un ndice No es necesario determinar la dimensin antes de inicializarlo Existen multitud de funciones que permiten la gestin y manipulacin de arrays. Constan de posiciones de memoria consecutivas; la direccin mas baja es la del primer elemento
Programacion en Lenguaje PHP 96
V- ARRAYS conceptos
Arrays unidimensiolanes son en esencia listas de informacin heterognea guardadas en posiciones contiguas de memoria
formatos y ejemplos de uso $nombre_variable[indice]=valor; valor= contenido del elemento indce= elemento del array nombre_variable= identificador del arrary
97
V- ARRAYS conceptos
Ejemplo.4.1.1- //Array lineal de 4 elementos
98
V- ARRAYS conceptos
Arrays multidimensionales es un array cuyos elementos son a su vez nuevos arrays
formatos y ejemplos de uso $nombre_variable[indice1][indice2]..[indic eN]= valor;
Ejemplo.4.2.1- //Array de 2x2 elementos
$X=array(array(1,0),array(-1,-2));
99
V- ARRAYS conceptos
Aspectos varios: La funcion print_r ( ) muestra los elementos de un array La manipulacin de los elementos requiere uso de sentencias iterativas (foreach, for, etc.) Funciones para manipulacin de arrays (ver captulo III)
100
PHP tiene funciones de conectividad a las bases de datos, que son especficas del SGBD: mysql_nombrefuncion Ora_nombrefuncion ifx_nombrefuncion dbase_nombrefuncion dngres_ombrefuncion Ejemplo: mysql_connect()
Programacion en Lenguaje PHP 101
1. Conexin con MYSQL desde PHP 1. Apertura de conexin 2. Cierre de conexin 2. Seleccin de la base de datos 3. Ejecucin de sentencias SQL sobre la BD seleccionada 4. Otras funciones de manipulacin de datos
102
Cierre de conexin
mysql_close (identificador) En caso de no poner el identificador se cerrar la ltima conexin abierta. La funcin devuelve un valor entero, que ser nulo si se produce algn error en el proceso.
103
En caso de no utilizar la funcin mysql_close(), la conexin se cerrar al finalizar el script. la funcin die (), sirve para mostrar el aviso de error si $c no nulo, y abortar ejecucin del resto de programa
Programacion en Lenguaje PHP 104
105
106
<html> <head> <title>Problema 8_2</title> </head> <body> <?php $c = mysql_connect ("localhost", "root", ""); $bd= mysql_select_db("compras",$c); if (!$bd) { die ("Base de datos no existente"); } mysql_close($c); ?> </body> </HTML></HTML>
Aborta el programa si no se puede seleccionar la base de datos compras. Probar a cambiar compras por otros nombres
107
109
sentencia idntica a la anterior pero que permite ejecutar la sentencia sobre cualquier base de datos.
110
111
112
$c $c= =mysql_connect mysql_connect(localhost, (localhost,root, root,); ); mysql_select_db mysql_select_db(Compras, (Compras,$c); $c); $strSQL= $strSQL=SELECT SELECT**FROM FROMArticulos;; Articulos;; $rs $rs= =mysql_query mysql_query($strSQL, ($strSQL,$c); $c); while while($registro ($registro= =mysql_fetch_row($rs)) mysql_fetch_row($rs)){{ print(Codigo: print(Codigo:$registro[0].<br>); $registro[0].<br>); print(Articulo: print(Articulo:$registro[1].<br>); $registro[1].<br>); print(Descripcin: print(Descripcin:$registro[2].<br>); $registro[2].<br>); print(Precio: print(Precio:$registro[3] $registro[3]euros.<br>); euros.<br>); }} mysql_close mysql_close($c); ($c);
113
EJEMPLO 8.3
Programacion en Lenguaje PHP 114