Скачать презентацию Introducción a PHP 1 INTRODUCCIÓN Diferencias entre Скачать презентацию Introducción a PHP 1 INTRODUCCIÓN Diferencias entre

03943a289cb823dbdb33ee964c3a4904.ppt

  • Количество слайдов: 117

Introducción a PHP Introducción a PHP

1. INTRODUCCIÓN: Diferencias entre ASP y PHP l Software propietario l Free Software l 1. INTRODUCCIÓN: Diferencias entre ASP y PHP l Software propietario l Free Software l Plataformas Microsoft l Multiplataforma l Varios lenguajes (VBScript, Java. Script) l Un solo lenguaje: PHP

Características de PHP l Más rápido que ASP l Lenguaje más fácil y potente Características de PHP l Más rápido que ASP l Lenguaje más fácil y potente l l Integración perfecta con 8 servidores HTTP Acceso a 20 tipos de Bases de Datos l Diseño modular de fácil ampliación l Licencia abierta

Historia y Desarrolladores Fechas • Inicio del desarrollo en otoño de 1994 • PHP Historia y Desarrolladores Fechas • Inicio del desarrollo en otoño de 1994 • PHP Versión 1 en primavera 1995 • PHP Versión 2 1995 -1997 • PHP Versión 3 1997 -2000 • PHP Versión 4 en el segundo trimestre de 2000 • PHP Versión 5 se encuentra en etapa de planeamiento Equipo de Desarrollo (195 personas con acceso al CVS) • Zeev Suraski y Andi Gutmans (Israel) • Shane Caraveo (Florida) • Stig Bakken (Norway) • Andrei Zmievski (Lincoln, Nebraska) • Sascha Schumann (Dortmund, Germany) • Thies C. Arntzen (Hamburg, Germany) • Jim Winstead (Los Angeles) • Sam Ruby (Raleigh, NC) • Rasmus Lerdorf (San Francisco)

Estadísticas de uso Fuente: Netcraft Agosto 2000 Fuente: Security. Space. com Septiembre 2000 Informe Estadísticas de uso Fuente: Netcraft Agosto 2000 Fuente: Security. Space. com Septiembre 2000 Informe sobre Módulos Apache 3, 314, 634 Dominios, 637, 746 Direcciones IP 19, 823, 296 Dominios analizados PHP instalado en el 16. 7% de todos los dominios 1, 322, 329 Servidores Apache analizados 429, 589 (32. 49%) PHP 247, 642 (18. 73%) Frontpage 133, 414 (10. 09%) mod_perl 111, 576 (8. 44%) mod_ssl 78, 030 (5. 90%) Open. SSL 46, 404 (3. 51%) Apache. JServ

Plataformas soportadas Plataformas (actualidad): • UNIX (todas las variantes) • Win 32 (NT/W 95/W Plataformas soportadas Plataformas (actualidad): • UNIX (todas las variantes) • Win 32 (NT/W 95/W 98/W 2000) • QNX • Mac (Web. Ten) • OS/2 • Be. OS Servidores: • Apache (UNIX, Win 32) • CGI • fhttpd • ISAPI (IIS, Zeus) • NSAPI (Netscape i. Planet) • Java servlet • AOLServer • Roxen Plataformas (en perparación): • OS/390 • AS/400 Servidores (en preparación): • Apache 2. 0 • WSAPI (O'Reilly Web. Site) • phttpd • thttpd

Bases de datos soportadas SQL Otros • d. Base • file. Pro (sólo lectura) Bases de datos soportadas SQL Otros • d. Base • file. Pro (sólo lectura) • dbm (ndbm, gdbm, Berkeley db) • Adabas D • Empress • IBM DB 2 • Informix • Ingres • Interbase • Frontbase • m. SQL • Direct MS-SQL • My. SQL • ODBC • Oracle (OCI 7, OCI 8) • Postgre. SQL • Raima Velocis • Solid • Sybase

2. El lenguaje PHP 2. El lenguaje PHP

2. 1. Extensión de los Archivos Ø Ø . php 3 Indica código PHP 2. 1. Extensión de los Archivos Ø Ø . php 3 Indica código PHP 3. x. . php 4 Indica código PHP 4. x. . php Indica código PHP. Preferiremos esta extensión por ser más genérica. . phtml Actualmente en desuso.

2. 2. Delimitadores <? echo 'Primer método de delimitar código PHP'; ? > <? 2. 2. Delimitadores <% echo 'Método de compatibilidad con ASP'; %>

 2. 2. Delimitadores. Ejemplo. <%@ Language=VBScript %> <html> <body> <html> <? php <body> 2. 2. Delimitadores. Ejemplo. <%@ Language=VBScript %> if ( Hour(time)>20 || Hour(time)<4) <%IF Hour(time)>20 OR Hour(time)<4 THEN%> 20 || Hour(time)<4) { ? > { Buenas noches. echo “Buenas noches. ”; } <%ELSE%> else Buenos días. { <%END IF%> echo “Buenos días. ”; } ? >

2. 3. Fin de línea print( date( 2. 3. Fin de línea print( date("M d, Y H: i: s", time()) ); print ( date( "M d, Y H: i: s", time() ) ) ;

2. 4. Comentarios /* Comentarios estilo C. * Pueden extenderse durante varias líneas. */ 2. 4. Comentarios /* Comentarios estilo C. * Pueden extenderse durante varias líneas. */ // Comentarios estilo C++. Hasta fin de línea. # Comentarios estilo Perl. Hasta fin de línea.

2. 5. 1. Variables. Declaración y Uso. • NO hace falta declararlas • Llevan 2. 5. 1. Variables. Declaración y Uso. • NO hace falta declararlas • Llevan delante el signo ‘$’. $var_1 = 123; $var_2 = ’hola’; $var_3 = $var_1 * 2;

2. 5. 2. Variables. Tipado. Variables débilmente tipadas (tipo mixed). $mi_variable = ’Inicializamos como 2. 5. 2. Variables. Tipado. Variables débilmente tipadas (tipo mixed). $mi_variable = ’Inicializamos como texto’; $mi_variable = 3; // Entero. $mi_variable = 3. 14 * $mi_variable; // Float. $mi_variable = new Mi. Clase(); // Objeto.

2. 5. 2. Variables. Tipado. Conversión automática. PHP realiza conversiones automáticas de tipo: $mivar 2. 5. 2. Variables. Tipado. Conversión automática. PHP realiza conversiones automáticas de tipo: $mivar = 123; echo $mivar; // Se convierte a string $mivar = ’ 3’; // Se convierte a entero $mivar = 2 + $mivar; // para realizar la suma

2. 5. 2. Variables. Tipado. Conversión explícita. Operador cast: $mivar = (string)123; Cambiar el 2. 5. 2. Variables. Tipado. Conversión explícita. Operador cast: $mivar = (string)123; Cambiar el tipo de una variable: $mivar = 12; settype($mivar, "double");

2. 5. 3. Variables. Ámbito. l l l En el cuerpo de un archivo, 2. 5. 3. Variables. Ámbito. l l l En el cuerpo de un archivo, las variables son GLOBALES al archivo y archivos incluidos. En una función, son LOCALES a esa función. Dentro de una clase, sólo pueden ser accedidas a través del operador “->” sobre el nombre del objeto.

2. 5. 4. Referencias. Se definen con el carácter ‘&’: $alias = &$variable Se 2. 5. 4. Referencias. Se definen con el carácter ‘&’: $alias = &$variable Se puede eliminar una referencia con la función unset(): $a = 1; $b = &$a; unset ($a); // Pero $b sigue valiendo 1

2. 6. Tipos de datos. • Enteros, en decimal, octal o hexadecimal. $Mi. Var 2. 6. Tipos de datos. • Enteros, en decimal, octal o hexadecimal. $Mi. Var = 123; • Punto flotante. $Mi. Var = 1. 3 e 4; • Arrays. $Mi. Var[2] = 123; • Strings. $Mi. Var = “Cadena de texton”; • Objetos: $Mi. Var = new Mi. Clase();

2. 6. 3. Tipos de datos. Arrays. $Mi. Array[0] = 1; $Mi. Array[1] = 2. 6. 3. Tipos de datos. Arrays. $Mi. Array[0] = 1; $Mi. Array[1] = “hola!!”; $Mi. Array[] = 3; echo $Mi. Array[2]; // 3

2. 6. 3. Tipos de datos. Arrays (2). Funcionan como vectores o tablas hash 2. 6. 3. Tipos de datos. Arrays (2). Funcionan como vectores o tablas hash al mismo tiempo: $Mi. Array[“nombre”] = “Homer”; echo $Mi. Array[0]; // 1 echo $Mi. Array[“nombre”]; // “Homer” Y pueden tener más de una dimensión: $Mi. Otro. Array[1][“pepe”][4] = “ 3 dimensiones!”;

2. 6. 3. Tipos de datos. Arrays (3). También se pueden definir con el 2. 6. 3. Tipos de datos. Arrays (3). También se pueden definir con el constructor array() : $Otro. Array. Mas = array( 1, “hola”, 5); $YOtro. Array = array( 0 => 1, 1 => “hola”, 2 => 5, 3 => 8, “nombre” => “Homer” );

2. 6. 4. Tipos de datos. Strings. Comillas dobles. 2. 6. 4. Tipos de datos. Strings. Comillas dobles.

2. 6. 4. Tipos de datos. Strings (2). Comillas simples. l Si se delimitan 2. 6. 4. Tipos de datos. Strings (2). Comillas simples. l Si se delimitan entre comillas simples (’), las variables no se expanden y además las únicas secuencias de escape que se reconocen son “\” y “'” (barra invertida y comillas simples. )

2. 6. 4. Tipos de datos. Strings (3). “Here Doc” l Utilizando la sintaxis 2. 6. 4. Tipos de datos. Strings (3). “Here Doc” l Utilizando la sintaxis “here doc” de Perl. Las variables se expanden y no hace falta escapar las comillas: $cadena = <<

2. 6. 4. Tipos de datos. Strings (4). Para concatenar cadenas se utiliza el 2. 6. 4. Tipos de datos. Strings (4). Para concatenar cadenas se utiliza el operador ‘. ’ : $cad = ‘A esta cadena ‘; $cad = $cad. ‘le vamos a añadir más texto. ’; Se puede acceder a cada carácter como si fuera un array: $cad 2 = “Tercer carácter de $cad : ‘$cad[2]’”;

2. 7. Constantes. Las constantes se definen con la función define(): define(“SALUDO”, “Hola, mundo!”); 2. 7. Constantes. Las constantes se definen con la función define(): define(“SALUDO”, “Hola, mundo!”); echo “La constante SALUDO vale ”. SALUDO; Las constantes en PHP se diferencian de las variables en que: • no llevan el símbolo del dólar delante. • puede accederse a ellas desde cualquier parte del código donde han sido definidas, sin restricciones de ámbito como en las variables. • no pueden ser redefinidas o borradas una vez definidas. • sólo pueden contener valores escalares, no vectores.

2. 8. Mayúsculas y minúsculas. Comportamiento mixto en variables y funciones: • En las 2. 8. Mayúsculas y minúsculas. Comportamiento mixto en variables y funciones: • En las variables, las mayúsculas y minúsculas IMPORTAN. • En los nombres de funciones y palabras reservadas, las mayúsculas NO IMPORTAN.

2. 9. 1. Operadores aritméticos. 2. 9. 1. Operadores aritméticos.

2. 9. 2. Auto-incremento y auto-decremento. 2. 9. 2. Auto-incremento y auto-decremento.

2. 9. 3. Operadores de bits. 2. 9. 3. Operadores de bits.

2. 9. 4. Operadores lógicos. 2. 9. 4. Operadores lógicos.

2. 9. 5. Operadores. Asignación, igualdad e identidad. 2. 9. 5. Operadores. Asignación, igualdad e identidad.

2. 9. 5. Operadores. Asignación, igualdad e identidad. Ejemplo. $var 1 = 1; $var 2. 9. 5. Operadores. Asignación, igualdad e identidad. Ejemplo. $var 1 = 1; $var 2 = 1; $var 3 = “ 1”; ($var 1 == $var 2) ($var 1 == $var 3) ($var 1 === $var 2) ($var 1 === $var 3) // Asignación // Cierto, son iguales // Son iguales (tras conversión) // Cierto, son idénticas // FALSO, el tipo no coincide

2. 9. 5. Operadores. Asignación, igualdad e identidad. Error. $var 1 = 1; $var 2. 9. 5. Operadores. Asignación, igualdad e identidad. Error. $var 1 = 1; $var 2 = 2; if( $var 1 = $var 2 ) { echo ‘iguales’; } else { echo ‘distintas’; }

2. 9. 6. Comparaciones. 2. 9. 6. Comparaciones.

2. 9. 7. Operadores de cadenas. $a = 1; $b = 2; $c = 2. 9. 7. Operadores de cadenas. $a = 1; $b = 2; $c = ‘El resultado de ‘. $a. ‘ + ‘. $b. ‘ es ‘. $a + $b;

2. 9. 8. Atajos en la asignación. += -= *= /= %= &= ^= 2. 9. 8. Atajos en la asignación. += -= *= /= %= &= ^= . = >>= y <<= $var 1 += 3; $var 2 /= 2; $var 3 >>= 1; // $var 1 = $var 1 + 3; // $var 2 = $var 2 / 2; // $var 3 = $var 3 >> 1;

2. 9. 9. Precedencia. 2. 9. 9. Precedencia.

2. 10. 1. Estructuras de control. if … else if (expresión) { comandos } 2. 10. 1. Estructuras de control. if … else if (expresión) { comandos } if (expresión) { comandos_cierto } else { comandos_falso }

 2. 10. 1. Estructuras de control. if … else (2) if (expresion 1) 2. 10. 1. Estructuras de control. if … else (2) if (expresion 1) { comandos 1 } elseif (expresion 2) { comandos 2 } elseif (expresion 3) { comandos 3 }. . . else { comandos. Else }

2. 10. 2. while y do … while (expresión) { comandos } do { 2. 10. 2. while y do … while (expresión) { comandos } do { comandos } while (expresión);

2. 10. 4. for (expresión 1; expresión 2; expresión 3) { comandos } $factorial 2. 10. 4. for (expresión 1; expresión 2; expresión 3) { comandos } $factorial 5 = 1; for ($i = 2; $i <= 5; $i++ ) { $factorial 5 *= $i; }

 2. 10. 4. for (2) for ($factorial 5 = 1, $i = 2; 2. 10. 4. for (2) for ($factorial 5 = 1, $i = 2; $i <= 5; $i++ ) { $factorial 5 = $factorial 5 * $i; } for ($factorial 5=1, $i=2; $i<=5; $factorial 5*=$i, $i++);

 2. 10. 4. for (3). ASP. ’ ASP <%FOR i=1 TO 100%> <%=Mi. 2. 10. 4. for (3). ASP. ’ ASP <%FOR i=1 TO 100%> <%=Mi. Var%> <%NEXT%> // PHP

2. 10. 5. foreach (array as variable) { comandos } $a = array (1, 2. 10. 5. foreach (array as variable) { comandos } $a = array (1, 2, 3, 17); foreach ($a as $v) { print "Valor actual de $a: $v. n"; } // Valor actual de $a: 1 // Valor actual de $a: 2 // Valor actual de $a: 3 // Valor actual de $a: 17

2. 10. 5. foreach (2) foreach (array as indice => variable) { comandos } 2. 10. 5. foreach (2) foreach (array as indice => variable) { comandos }

2. 10. 6. switch (variable) { case valor 1: comandos 1 case valor 2: 2. 10. 6. switch (variable) { case valor 1: comandos 1 case valor 2: comandos 2 . . . case valor. N: comandos. N default: comandos. Default }

2. 10. 6. switch (2) switch ($i) { case 1: echo “Código del 1”; 2. 10. 6. switch (2) switch ($i) { case 1: echo “Código del 1”; case 2: echo “Código del 2”; case 3: echo “Código del 3”; break; case 4: echo “Código del 4”; }

2. 11. Cierto o falso. Valores numéricos. $x = 1; // $x if( $x 2. 11. Cierto o falso. Valores numéricos. $x = 1; // $x if( $x ) // se evalúa a cierto $x = 0; // $x definida como el entero 0 if( $x ) // se evalúa a falso

2. 11. Cierto o falso. Strings. $x = 2. 11. Cierto o falso. Strings. $x = "hello"; // asignamos una cadena a $x if( $x ) // se evalúa a cierto $x = ""; // cadena vacía if( $x ) // evalúa a falso // Excepción: $x = "0"; // cero en una cadena if( $x ) // evalúa a falso // (se convierte a entero)

2. 11. Cierto o falso. Arrays. $x = array(); // $x es un array 2. 11. Cierto o falso. Arrays. $x = array(); // $x es un array vacío if( $x ) // se evalúa como falso $x = array( "a", "b", "c" ); if( $x ) // se evalúa a cierto

2. 11. Cierto o falso. Objetos. Class Yod {} // clase vacía $x = 2. 11. Cierto o falso. Objetos. Class Yod {} // clase vacía $x = new Yod(); if( $x ) // se evalúa a falso Class Yod { // clase no vacía var $x = 1; } $x = new Yod(); if( $x ) // se evalúa a cierto

2. 11. Cierto o falso. Constantes. • TRUE es el valor entero decimal 1. 2. 11. Cierto o falso. Constantes. • TRUE es el valor entero decimal 1. • FALSE es la cadena vacía.

2. 12. Funciones. function nombre ($arg_1, $arg_2, . . . , $arg_n) { comandos 2. 12. Funciones. function nombre ($arg_1, $arg_2, . . . , $arg_n) { comandos return $salida; }

 2. 12. Funciones. (2) Ejemplo. function factorial ($valor) { if ($valor < 0) 2. 12. Funciones. (2) Ejemplo. function factorial ($valor) { if ($valor < 0) { return – 1; // Error } if ($valor == 0 ) { return 1; } if ($valor == 1 || $valor == 2) { return $valor; } $ret = 1; for ($i = 2; $i <= $valor; $i++) { $ret = $ret * $i; } return $ret; } $factorial 5 = factorial(5);

2. 12. Funciones. (3) Valores por defecto. function enlace($url = ”www. php. net”) { 2. 12. Funciones. (3) Valores por defecto. function enlace($url = ”www. php. net”) { echo ‘Pulsa aquí’; }

2. 1. Funciones. Argumentos por referencia. function Mi. Funcion(&$var) { $var++; } $a = 2. 1. Funciones. Argumentos por referencia. function Mi. Funcion(&$var) { $var++; } $a = 5; Mi. Funcion($a); // Aquí $a == 6

2. 12. 2. Funciones. Devolución por referencia. function &buscar_cliente($nombre) { //. . . buscamos. 2. 12. 2. Funciones. Devolución por referencia. function &buscar_cliente($nombre) { //. . . buscamos. . . return $registro; } $cliente = &buscar_cliente(“Juan”); echo $cliente->dni;

2. 13. include y require l l La sentencia include(arch) incluye y evalúa el 2. 13. include y require l l La sentencia include(arch) incluye y evalúa el archivo especificado. La sentencia require(arch) se sustituye a sí misma con el archivo especificadotal y como funciona la directiva #include de C. El intérprete sale del modo PHP y entra en modo HTML al principio del archivo referenciado, y vuelve de nuevo al modo PHP al final.

2. 13. include y require l Include() se re-evalúa cada vez que se encuentra 2. 13. include y require l Include() se re-evalúa cada vez que se encuentra (y sólo cuando está siendo ejecutada) l require() siempre leerá el archivo referenciado, incluso si la línea en que está no se ejecuta nunca (condicional).

2. 13. include y require(“cabecera. inc”); If ($incluir == TRUE) { $archivos = array(“uno”, 2. 13. include y require(“cabecera. inc”); If ($incluir == TRUE) { $archivos = array(“uno”, ”dos”, ”tres”); foreach ($archivos as $archivo) { include($archivo); } }

2. 14. Variables de Sistema l $HTTP_USER_AGENT Nos informa principalmente sobre el sistema operativo 2. 14. Variables de Sistema l $HTTP_USER_AGENT Nos informa principalmente sobre el sistema operativo y tipo y versión de navegador utilizado por el internauta. Su principal utilidad radica en que, a partir de esta información, podemos redireccionar nuestros usuarios hacia páginas optimizadas para su navegador o realizar cualquier otro tipo de acción en el contexto de un navegador determinado. l $HTTP_ACCEPT_LANGUAGE Nos devuelve la o las abreviaciones de la lengua considerada como principal por el navegador. Esta lengua o lenguas principales pueden ser elegidas en el menú de opciones del navegador. Esta variable resulta también extremadamente útil para enviar al internauta a las páginas escritas en su lengua, si es que existen. l $HTTP_REFERER Nos indica la URL desde la cual el internauta ha tenido acceso a la página. Muy interesante para generar botones de "Atrás" dinámicos o para crear nuestros propios sistemas de estadísticas de visitas.

2. 14. Variables de Sistema l $PHP_SELF Nos devuelve una cadena con la URL 2. 14. Variables de Sistema l $PHP_SELF Nos devuelve una cadena con la URL del script que está siendo ejecutado. Muy interesante para crear botones para recargar la página. l $HTTP_GET_VARS Se trata de un array que almacena los nombres y contenidos de las variables enviadas al script por URL o por formularios GET l $HTTP_POST_VARS Se trata de un array que almacena los nombres y contenidos de las variables enviadas al script por medio de un formulario POST l $HTTP_COOKIES_VARS Se trata de un array que almacena los nombres y contenidos de las cookies. Veremos qué son más adelante.

2. 14. Variables de Sistema l $PHP_AUTH_USER Almacena la variable usuario cuando se efectúa 2. 14. Variables de Sistema l $PHP_AUTH_USER Almacena la variable usuario cuando se efectúa la entrada a páginas de acceso restringido. Combinado con $PHP_AUTH_PW resulta ideal para controlar el acceso a las páginas internas del sitio. l $PHP_AUTH_PW Almacena la variable password cuando se efectúa la entrada a páginas de acceso restringido. Combinado con $PHP_AUTH_USER resulta ideal para controlar el acceso a las páginas internas del sitio. l $REMOTE_ADDR Muestra la dirección IP del visitante. l $DOCUMENT_ROOT Nos devuelve el path físico en el que se encuentra alojada la página en el servidor. l $PHPSESSID Guarda el identificador de sesión del usuario. Veremos más adelante en qué consisten las sesiones.

3. Programando en PHP 3. Programando en PHP

Su nombre: Su nombre: 3. 1. 1. Forms. Valores sencillos. Su nombre: Su edad: Hola . Tiene años.

" /> 3. 1. 2. Forms. Valores múltiples.

3. 1. 2. Forms. Valores múltiples. (php 3)

3. 2. 1. Sesiones. l Una sesión es una cantidad de información que se 3. 2. 1. Sesiones. l Una sesión es una cantidad de información que se almacena dentro del servidor con un identificador único de usuario l Éste id es enviado aútómaticamente al usuario por medio de cookies.

3. 2. 2. Sesiones. l l Dentro de ésta sesión se puede almacenar los 3. 2. 2. Sesiones. l l Dentro de ésta sesión se puede almacenar los valores de las variables y disponer de ellas en cualquiera de las páginas en las que se inicie una sesión. Una ventaja extra es que al cambiar el valor de las variables, automáticamente cambia su valor para la sesión

3. 2. 3. Sesiones. bool session_start(void); bool session_register (mixed name [, mixed. . . 3. 2. 3. Sesiones. bool session_start(void); bool session_register (mixed name [, mixed. . . ]) bool session_destroy(void); // Ejemplo, un contador session_start(); print($contador); $contador++; session_register("contador"); Continuar

3. 3. Cookies. int setcookie (string nombre [, string valor [, int fin [, 3. 3. Cookies. int setcookie (string nombre [, string valor [, int fin [, string camino [, string dominio [, int seguro]]]]]) setcookie(“Prueba. Cookie”, “expiraré dentro de una hora”, time() + 3600); setcookie(“Prueba. Cookie”, “”, time());

3. 4. Tratamiento de errores. $nombre = '/etc/shadow'; $archivo = @fopen ($nombre, 'r'); if( 3. 4. Tratamiento de errores. $nombre = '/etc/shadow'; $archivo = @fopen ($nombre, 'r'); if( !$archivo ) { die("No se pudo abrir el archivo ($nombre)"); }

3. 5. 1. Cadenas. Comparación. int strcmp (string str 1, string str 2) int 3. 5. 1. Cadenas. Comparación. int strcmp (string str 1, string str 2) int strcasecmp (string str 1, string str 2) // Ejemplo: if (strcmp($a, $b) == 0) { echo ‘iguales’; }

3. 5. 2. Cadenas. Subcadenas. string substr (string cadena, int inicio [, int tamaño]) 3. 5. 2. Cadenas. Subcadenas. string substr (string cadena, int inicio [, int tamaño]) $str = substr('abcdef', 2, 3); // cde $str = substr('abcdef', -2); // ef $str = substr('abcdef', -2, 1); // e $str = substr('abcdef', 1, -2); // bcd

3. 5. 2. Cadenas. Subcadenas. Ejemplo: substr. php 3 <? php echo 3. 5. 2. Cadenas. Subcadenas. Ejemplo: substr. php 3

3. 5. 2. Cadenas. Subcadenas. (2) int strpos (string cadena, string referencia [, int 3. 5. 2. Cadenas. Subcadenas. (2) int strpos (string cadena, string referencia [, int inicio]) int strrpos (string cadena, char referencia) string strstr (string cadena, string referencia) $i = strpos('cadena de prueba', 'de'); // $i = 2 $i = strpos('cadena de prueba', 'de', 5); // $i = 7 $s = strrpos('cadena de prueba', 'de'); // $s = 7 $s = strstr('cadena de prueba', 'de'); // $s = dena de prueba

3. 5. 2. Cadenas. Subcadenas. (2) Ejemplo: cadpos. php 3 <? php echo 3. 5. 2. Cadenas. Subcadenas. (2) Ejemplo: cadpos. php 3

3. 5. 3. Cadenas. Imprimir y formatear. int printf (string formato [, mixed args. 3. 5. 3. Cadenas. Imprimir y formatear. int printf (string formato [, mixed args. . . ]) string sprintf (string formato [, mixed args. . . ]) 1. 2. 3. 4. 5. Relleno Alineación Número de caracteres Precisión Tipo % b c d f o s x X Secuencias de formato El carácter de tanto por ciento. Entero en binario. Entero como carácter ASCII. Entero en decimal. Double en punto flotante. Entero en octal. Cadena. Entero en hexadecimal (minúsculas). Entero en hexadecimal (mayúsculas).

3. 5. 3. Cadenas. Imprimir y formatear. (2) printf(“%02 d/%04 d”, $dia, $mes, $año); 3. 5. 3. Cadenas. Imprimir y formatear. (2) printf(“%02 d/%04 d”, $dia, $mes, $año); $pago 1 = 68. 75; $pago 2 = 54. 35; $pago = $pago 1 + $pago 2; // echo $pago mostraría "123. 1" // Mostrar al menos un dígito entero y exactamente // dos decimales, rellenando con ceros printf ("%01. 2 f", $pago);

3. 5. 4. Escapar caracteres. SQL. $busca = “D’Alton”; // Habrá que escapar el 3. 5. 4. Escapar caracteres. SQL. $busca = “D’Alton”; // Habrá que escapar el apóstrofe $sql = ‘SELECT * FROM usuarios WHERE apellido = ’’. addslashes($busca). ‘’’;

3. 5. 4. Escapar caracteres. Shell. string system (string comando [, int valor_salida]) echo 3. 5. 4. Escapar caracteres. Shell. string system (string comando [, int valor_salida]) echo system(“finger $usuario”); ¿Qué pasa si $usuario=“pepe ; apachectl stop” ? string escapeshellcmd (string comando)

3. 5. 4. Escapar caracteres. HTML. $valor = “a>b”; echo ‘<input type=hidden name=var value=”’. 3. 5. 4. Escapar caracteres. HTML. $valor = “a>b”; echo ‘’; // string nl 2 br (string cadena)

3. 5. 5. Extraer campos. array explode (string delimitador, string cadena [, int límite]) 3. 5. 5. Extraer campos. array explode (string delimitador, string cadena [, int límite]) $cadena = “campo 1: campo 2: campo 3”; $campos = explode(“: ”, $cadena); string implode (string delimitador, array campos) $cadena = implode(“: ”, $campos);

3. 5. 5. Extraer campos. Expresiones regulares. array split (string delimitador, string cadena [, 3. 5. 5. Extraer campos. Expresiones regulares. array split (string delimitador, string cadena [, int límite]) $fecha = "12/4 2002"; $campos = split ('[ /. -]', $fecha);

3. 5. 6. Recorrer un array. reset(), end(), next(), each(), current(), key() $arr = 3. 5. 6. Recorrer un array. reset(), end(), next(), each(), current(), key() $arr = array(1, 'cosa', 1. 57, 'gato'=>'raton', 'perro'=>'gato'); current($arr); // 1 next($arr); // cosa current($arr); // cosa prev($arr); // 1 end($arr); // gato current($arr); // gato key($arr); // perro reset($arr); // 1 each($arr); // array(0, 1) each($arr); // array(1, 'foo') each($arr); // array(2, 1. 57)

3. 5. 7. Ordenar un array. • sort(): • rsort(): Ordena el array por 3. 5. 7. Ordenar un array. • sort(): • rsort(): Ordena el array por contenido en orden ascendente. • ksort(): Ordena por el índice en orden ascendente. • rksort(): Ordena por el índice en orden descendente. Ordena por contenido en orden descendente.

3. 5. 8. Otras funciones. Eliminar espacios en blanco: string trim (string cadena) string 3. 5. 8. Otras funciones. Eliminar espacios en blanco: string trim (string cadena) string ltrim (string cadena) string rtrim (string cadena) Mayúsculas y minúsculas: string strtoupper (string cadena) string strtolower (string cadena) string ucfirst (string cadena)

3. 6. 1. Archivos. Abrir y cerrar. int fopen (string nombre, string modo [, 3. 6. 1. Archivos. Abrir y cerrar. int fopen (string nombre, string modo [, int include_path]) Modos: • ‘r’ • ‘r+’ • ‘w+’ • ‘a+’ Sólo lectura. Puntero al inicio. Lectura/escritura. Puntero al inicio. Sólo escritura. Se trunca el archivo. Lectura/escritura. Se trunca el archivo. Sólo escritura. Puntero al final. Lectura/escritura. Puntero al final. int fclose (int identificador)

3. 6. 2. Archivos. Leer y escribir. string fgets (int identificador, int tamaño) mixed 3. 6. 2. Archivos. Leer y escribir. string fgets (int identificador, int tamaño) mixed fscanf (int identificador, string formato [, string var 1. . . ]) int feof (int identificador) array file (string archivo [, int include_path]) int fwrite (int identificador, string cadena [, int tamaño])

3. 6. 3. Archivos. Copiar / renombrar / borrar. int copy (string origen, string 3. 6. 3. Archivos. Copiar / renombrar / borrar. int copy (string origen, string destino) int rename (string origen, string destino) int unlink (string archivo)

3. 6. 4. Directorios. int chdir (string directorio) int mkdir (string nombre, int modo) 3. 6. 4. Directorios. int chdir (string directorio) int mkdir (string nombre, int modo) int rmdir (string nombre) int opendir (string nombre) string readdir (int identificador) void closedir (int identificador)

3. 6. 4. Directorio. Listado de contenidos. $direcotrio = opendir('. '); while (($archivo = 3. 6. 4. Directorio. Listado de contenidos. $direcotrio = opendir('. '); while (($archivo = readdir($directorio)) !== FALSE) { echo "$archivon"; } closedir($directorio);

" src="https://present5.com/presentation/03943a289cb823dbdb33ee964c3a4904/image-96.jpg" alt="3. 6. 5. Archivos. Envío.

" /> 3. 6. 5. Archivos. Envío. archivo:
// Contenido de “recibir. php” echo "Recibido el archivo: ". $archivo_name. " n"; echo "Tamaño del archivo: ". $archivo_size. " n"; echo "Tipo mime: ". $archivo_type. " "; rename($archivo, $archivo_name);

3. 6. 5. Archivos. Envío.

archivo:
// Contenido de “recibir 1. php” echo "Recibido el archivo: ". $archivo_name. " n"; echo "Tamaño del archivo: ". $archivo_size. " n"; echo "Tipo mime: ". $archivo_type. " "; @rename($archivo, $archivo_name);

3. 6. 6 Pasar Variables por la URL l Para pasar las variables de 3. 6. 6 Pasar Variables por la URL l Para pasar las variables de una página a otra lo podemos hacer introduciendo dicha variable dentro del enlace hipertexto de la página destino. La sintaxis sería la siguiente: Mi enlace l Estas variables no poseen el símbolo $ delante. Esto es debido a que en realidad este modo de pasar variables no es específico de PHP

3. 6. 6 Pasar Variables por la URL. Ejemplo: origen. html <HTML> <HEAD> <TITLE>origen. 3. 6. 6 Pasar Variables por la URL. Ejemplo: origen. html origen. html Pasaje de variables saludo y texto a la página destino. php

3. 6. 6 Pasar Variables por la URL. Ejemplo: destino. php <HTML> <HEAD> <TITLE>destino. 3. 6. 6 Pasar Variables por la URL. Ejemplo: destino. php destino. php

3. 6. 7. Pasar variables por formularios l l l Este tipo de transferencia 3. 6. 7. Pasar variables por formularios l l l Este tipo de transferencia nos permite interaccionar directamente con el usuario. El proceso es similar al explicado para las URLs. Primeramente, presentamos una primera página con el formulario clásico a rellenar y las variables son recogidas en una segunda página que las procesa

3. 6. 8. Pasar variables por formularios. Ejemplo: formulario. html <HTML> <HEAD> <TITLE>formulario. html</TITLE> 3. 6. 8. Pasar variables por formularios. Ejemplo: formulario. html formulario. html

Nombre Apellidos

3. 6. 9. Pasar variables por formularios. Ejemplo: destino 2. php <HTML> <HEAD> <TITLE>destino 3. 6. 9. Pasar variables por formularios. Ejemplo: destino 2. php destino 2. php

3. 7. 1. POO. Definición de una clase. class Nombre. Clase { var $variables; 3. 7. 1. POO. Definición de una clase. class Nombre. Clase { var $variables; function metodos ($parametros) { codigo } }

 3. 7. 1. POO. Definición de una clase. Ejemplo. class Coche { var 3. 7. 1. POO. Definición de una clase. Ejemplo. class Coche { var $velocidad; // Velocidad actual // Constructor por defecto. El coche está parado. function coche() { $this->velocidad = 0; } // Constructor que indica la velocidad inicial. function coche($vel) { $this->velocidad = $vel; } // Método acelerar. El coche va más rápido. function acelerar() { $this->velocidad++; } // Método frenar. El coche va más lento hasta frenar. function frenar() { if ($this->velocidad > 0) { $this->velocidad--; } } }

 3. 7. 2. POO. Herencia. class Clase. Derivada extends Clase. Base { // 3. 7. 2. POO. Herencia. class Clase. Derivada extends Clase. Base { // definición de métodos y variables // exclusivos de Clase. Derivada, // y redefinición (especialización) // de métodos de Clase. Base }

 3. 7. 2. POO. Herencia. Ejemplo. class Coche. Fantastico extends coche() { // 3. 7. 2. POO. Herencia. Ejemplo. class Coche. Fantastico extends coche() { // Frenado instantáneo function frena() { $this->velocidad = 0; } // ¡El coche habla! function habla() { echo “Hola, Michael. ”; } // ¡Salta! function salta() { echo “Boing!!”; } // Turbo propulsión function turbo() { $this->velocidad = 200; } }

3. 7. 3. POO. Creación y uso de objetos. // Creación (instanciación) $Mi. Coche 3. 7. 3. POO. Creación y uso de objetos. // Creación (instanciación) $Mi. Coche = new Coche; $Mi. Coche. Se. Mueve = new Coche(10); // Uso $Mi. Coche->acelerar(); echo $Mi. Coche->velocidad; $Mi. Coche->frenar();

3. 8. 1. BD. Conexión y desconexión. int mysql_connect ([string servidor [: puerto] [: 3. 8. 1. BD. Conexión y desconexión. int mysql_connect ([string servidor [: puerto] [: /camino/al/socket] [, string usuario [, string contraseña]]]) int mysql_close ([int identificador]) int mysql_pconnect ([string servidor [: puerto] [: /camino/al/socket] [, string usuario [, string contraseña]]]) int mysql_pclose ([int identificador])

3. 8. 1. BD. Conexión y desconexión. Ejemplo. $link = mysql_connect ( 3. 8. 1. BD. Conexión y desconexión. Ejemplo. $link = mysql_connect ("www. mmlabx. ua. es", "nobody", ""); if (!$link) { die ("No se pudo conectar"); } print ("Conexión realizada"); mysql_close ($link);

3. 8. 2. BD. Elegir una BD. int mysql_select_db (string nombre_bd [, int identificador]) 3. 8. 2. BD. Elegir una BD. int mysql_select_db (string nombre_bd [, int identificador]) if (!mysql_select_db("prueba", $link)) { die (“No existe la BD”); }

3. 8. 3. BD. Querys. int mysql_query (string query [, int identificador]) int mysql_db_query 3. 8. 3. BD. Querys. int mysql_query (string query [, int identificador]) int mysql_db_query (string nombre_bd, string query [, int identificador]) int mysql_free_result (int result) $query = "SELECT codigo, nombre, descripcion, creditos, tipo FROM asignatura"; $asignaturas = mysql_query($query, $link); if (!$asignaturas) { die (“Error en el query”); }

3. 8. 4. BD. Extraer información. int mysql_affected_rows ([int identificador]) int mysql_num_rows (int resultado) 3. 8. 4. BD. Extraer información. int mysql_affected_rows ([int identificador]) int mysql_num_rows (int resultado) array mysql_fetch_row (int resultado) array mysql_fetch_array(int resultado [, int tipo_resultado]) object mysql_fetch_object (int result) array mysql_fetch_lengths (int resultado) int mysql_data_seek (int resultado, int numero_fila)

3. 8. 5. BD. Extraer información. Ejemplos. while ($fila = mysql_fetch_array($asignaturas)) { echo $fila[‘codigo’]. 3. 8. 5. BD. Extraer información. Ejemplos. while ($fila = mysql_fetch_array($asignaturas)) { echo $fila[‘codigo’]. ‘ ‘. $fila[‘nombre’]. “n”; } while ($fila = mysql_fetch_object($asignaturas)) { echo $fila->codigo. ‘ ‘. $fila->nombre. “n”; }

3. 9. Acceso a BD unificado. Clase Conexion. Generica. class Conexion. Generica { var 3. 9. Acceso a BD unificado. Clase Conexion. Generica. class Conexion. Generica { var $link; function connect($servidor, $usuario, $clave) { echo "El mé todo connect ", "no está implementado en la ", "clase ". get_class($this). ""; return FALSE; } function close() {} function select_db($base_datos) {} function query($query) {} function fetch_array($resultado) {} function free_result($resultado) {} }

3. 9. Acceso a BD unificado. Clase Conexion. My. SQL. require ( 3. 9. Acceso a BD unificado. Clase Conexion. My. SQL. require ("Conexion. Generica. inc"); class Conexion. My. SQL extends Conexion. Generica { function connect($servidor="localhost", $usuario="nobody", $clave="") { return $this->link = mysql_connect($servidor, $usuario, $clave); } function close() {} function select_db($base_datos) {} function query($query) {} function fetch_array($resultado) {} function free_result($resultado) {} }

3. 9. Acceso a BD unificado. Uso. // archivo Crea. Conexion. inc require ( 3. 9. Acceso a BD unificado. Uso. // archivo Crea. Conexion. inc require ("Conexion. My. SQL. inc"); $conexion = new Conexion. My. SQL(); require ("Crea. Conexion. inc"); $conexion->connect("localhost", "nobody"); $conexion->select_db("prueba", $link); $asignaturas = $conexion->query("SELECT codigo, nombre, descripcion, creditos, tipo FROM asignatura");