Programación en lenguaje PHP Nivel...

135
Programación en lenguaje PHP Nivel Básico

Transcript of Programación en lenguaje PHP Nivel...

Page 1: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

Programación en lenguaje PHPNivel Básico

Page 2: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHP

Page 3: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPFuncionamiento de un servidor Web

En su versión más sencilla, un servidor Web responde a una petición de usuario enviando páginas HTML que tiene almacenadas por medio del protocolo HTTP.

CLIENTE SERVIDOR

Archivo HTML

Petición HTTP

Page 4: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPFuncionamiento de un servidor Web

Si la página tiene varios elementos de imagen, se deberá establecer una conexión http para enviar cada imagen.Por ejemplo, una página con cinco imágenes precisará un total de 6 conexiones http.

CLIENTE SERVIDOR

Petición HTTP 1 imagen

Archivo imagen

5 vecesCLIENTE SERVIDOR

Petición HTTP

Archivo HTML

Page 5: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPFuncionamiento de un servidor Web

Si la página es dinámica puede ocurrir que el dinamismo esté en la parte cliente. En este caso el funcionamiento no cambia mucho.Como un elemento más de la página se envía, por ejemplo, el applet Java, archivos Javascript.Luego el elemento dinámico se ejecuta en la máquina cliente, dotándola de dinamismo visual, pero no de contenido.

Page 6: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPFuncionamiento de un servidor Web

Si, en cambio, optamos por dinamismo en la parte del servidor, la cosa cambia más.Aunque desde el punto de vista del usuario no cambia mucho, pues él solicita una página y recibe HTML como respuesta.La página que se envía al cliente, sin embargo, ya no se envía tal cual está almacenada en el servidor, sino que se construye en el momento de ser enviada.

Page 7: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPFuncionamiento de un servidor Web

La construcción de esta página se hace ejecutando un script que la página tiene escrito en su interior.El servidor Web no ejecuta el script por si mismo, sino que se lo envía a un módulo que es capaz de interpretarlo.Este módulo a su vez puede usar otros recursos, como ficheros de datos, bases de datos, etc. en la configuración de la página.Ya compuesta sólo de html, la página es entregada de nuevo al servidor, quien la envía al cliente.

Page 8: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPFuncionamiento de un servidor Web

El proceso en su conjunto quedaría representado por la siguiente figura.

CLIENTE SERVIDOR

Petición HTTP

Archivo HTML

SCRIPT RECURSOS

Ejecutar Script Obtener recurso

Devolver recursoDevolver resultado

Page 9: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPHistoria de PHP

PHP/FI Fue creado por Rasmus Lerdorf en 1995 como un simple conjunto de scripts para acceder a su trabajo on line.A medida que fue necesitando más funcionalidad acabó por escribir una implementación en C, que finalmente liberó para que cualquiera pudiera utilizarla.

Page 10: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPHistoria de PHP

PHP/FI 2.0 Apareción en 1997 como una segunda escritura de PHP.Esta versión contó ya con numerosas colaboraciones de otros programadores.Esta versión salió ya del ámbito personal y hasta 50.000 sitios de Internet llegaron a tenerlo instalado, a pesar de su corta vida.

Page 11: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPHistoria de PHP

PHP 3.0 era la primera versión que se parecía fielmente al PHP tal y como lo conocemos hoy en día. Fue creado por Andi Gutmans y Zeev Zuraski en 1997 rescribiéndolo completamenteUna de las mejores características de PHP 3.0 era su gran extensibilidad. Además de proveer a los usuarios finales de una sólida infraestructura para muchísimas bases de datos, protocolos y APIs.Muchos desarrolladores se unieron y enviaron nuevos módulos de extensión.

Page 12: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPHistoria de PHP

PHP 4 partió una reescritura del núcleo que buscaba mejorar la ejecución de funciones complejas y la modularidad del código base.El nuevo motor (llamado Zend) se introdujo a mediados de 1999 y fue liberado en Mayo de 2000.Además de las mejoras en la ejecución, PHP 4 proporciona soporte para numerosos servidores Web, sesiones HTTP, buffers de salida, y numerosas nuevas instrucciones.

Page 13: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPHistoria de PHP

El 13 de julio de 2004, fue lanzado PHP 5Utilizando el motor Zend Engine II Incluye las ventajas que provee el nuevo Zend

Engine 2: Mejor soporte para la Programación Orientada a Objetos, mejoras de rendimiento, mejor soporte a XML, mejor soporte para MySQL, …

Page 14: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPPHP frente a otros lenguajes

Velocidad: No solo la velocidad de ejecución, la cual es importante, sino además no crear demoras en la máquina. PHP se integra muy bien junto a otro software, especialmente bajo ambientes Unix, cuando se configura como módulo de Apache, está listo para ser utilizado.Estabilidad: PHP utiliza su propio sistema de administración de recursos y dispone de un sofisticado método de manejo de variables, conformando un sistema robusto y estable.

Page 15: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPPHP frente a otros lenguajes

Seguridad: PHP provee diferentes niveles de seguridad, estos pueden ser configurados desde el archivo .iniSimplicidad: Los usuarios con experiencia en C y C++ podrán utilizar PHP rápidamente.

Page 16: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPLa instalación de PHP

En términos generales la instalación de PHP va a constar de tres pasos:1. La instalación de un servidor Web (si no hay ya uno instalado), que en nuestro caso será Apache.2. El desempaquetado de la distribución PHP que vayamos a usar.3. La configuración del servidor Web para que pueda usar el intérprete PHP.Veremos a continuación estos tres pasos en detalle.

Page 17: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPInstalación de Apache

Puedes obtener el programa en su sitio web, http://www.apache.org/.La versión binaria de Apache para Windows viene en formato msi, es un instalador de Microsoft que ya viene de serie con Windows 2000.Para comenzar la instalación de los archivos basta hacer doble click en el archivo .msi que hemos bajado.

Page 18: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPInstalación de Apache

Como vamos a usar Apache como servidor de pruebas pondremos localhost en el nombre del servidor.El nombre del dominio y el correo electrónico no tienen importancia.Elegiremos a continuación la instalación personalizada.

Page 19: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPInstalación de Apache

Lo siguiente es elegir el directorio de instalación. Para no tener que manejar una trayectoria tan larga, lo cambiamos por c:\wamp\apache22El instalador creará automáticamente una carpeta llamada Apache22. Una vez acabada la instalación el servidor webestará instalado y funcionando como un servicio de windows denominado Apache2.2

Page 20: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPInstalación de PHP

Paso 1:Podemos obtener PHP desde la página www.php.net. Descomprimimos el fichero bajado (p.ej. php-5.2.6-Win32.zip), en un nuevo directorioPodemos colocar PHP como un subdirectorio de la instalación WAMP. Así que en el WinZip elegimos c:\wamp como destino.WinZip creará un directorio con un nombre largo que luego renombraremos php526.

Page 21: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPInstalación de PHP

Paso 2:Renombramos el archivo php.ini-recommended como php.ini.

Copiamos c:\wamp\php526\php5ts.dll al directorio c:\windows.

Page 22: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPPreparar Apache para PHP

Existen dos formas de instalar PHP para que funcione con Apache:Como CGI: En este caso Apache ejecuta PHP como un programa independiente cada vez que necesita interpretar una página PHP.Es menos eficiente, pero se considera más estable y seguro.Como módulo de Apache: Las rutinas de PHP pasan a ser un módulo más de Apache, al que este accede mediante llamadas a la correspondiente dll.

Page 23: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPPreparar Apache para PHP

Instalación de PHP como CGI. Paso 1.Tenemos que editar el fichero httpd.conf de Apache, que se encuentra en el subdirectorio confde la instalación.Buscamos la sección alias_module.Introducimos la siguiente línea nueva:

ScriptAlias /php/ "C:/WAMP/php526/"

Page 24: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPPreparar Apache para PHP

Instalación de PHP como cgi. Paso 2.A continuación buscamos la sección mime_module y escribimos:

AddType application/x-httpd-php .php

A continuación escribimos:Action application/x-httpd-php /php/php-cgi.exe

Dotamos a Apache de permisos en el directorio de PHP:

<Directory “C:/WAMP/PHP526”>Allow from all

</Directory>

Page 25: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPPreparar Apache para PHP

Instalación de PHP como cgi. Paso 3.Para comprobar que funciona hacemos lo siguiente:Abrimos nuestro editor de texto y escribimos:

<?php phpinfo(); ?>

guardamos este archivo como prueba.php dentro del document root de la instalación de Apache que es donde se guardan los documentos a servir.A continuación arrancamos Apache y el navegador, donde pondremos la dirección

http://localhost/prueba.php

Page 26: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

1. Introducción a PHPPreparar Apache para PHP

Instalación de PHP como módulo Apache. Paso 1.En lugar de las líneas que añadíamos a nuestro archivo .conf de apache, añadimos las siguientes:LoadModule php5_module c:/wamp/php526/php5apache2_2.dll

AddType application/x-httpd-php .phpPHPIniDir “c:/wamp/php526”

Page 27: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

2. Características de PHP

Page 28: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

2. Características de PHP

PHP se embebe en el código HTML, del que se separa mediante delimitadores, que pueden tomar cuatro formas.Algunas de estas formas están siempre disponibles, mientras que otras pueden habilitarse y deshabilitarse en el archivo php.ini

Page 29: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

2. Características de PHPDelimitadores.

<? echo 'Etiquetas cortas, pueden deshabilitarse'; ?>

<?php echo 'Segundo método, siempre disponible'; ?>

<script language="php">echo 'Algunos editores (como el FrontPage) Sólo entienden este método, que siempre está habilitado';

</script>

<% echo 'Método de compatibilidad con ASP, puede estar habilitado o no'; %>

Page 30: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

2. Características de PHPComentarios

Se permiten comentarios estilo C y C++, pero también estilo shell script de Unix:<?echo $variable; // Este es un comentario de una lineaecho $variable; /* usando este estilo se pueden

escribir varias lineas

de comentario */echo $variable; # otra forma de comentario de una linea?>

Page 31: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

2. Características de PHPSentencias

Las sentencias se terminan con ';'.La última sentencia de un bloque no necesita ';'.Una serie de sentencias se pueden agrupar mediante llaves, formando una única sentencia compuesta.Veremos a continuación los elementos necesarios para escribir sentencias: variables, constantes, operadores y estructuras de control.

Page 32: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantes

Page 33: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantesVariables. Conceptos básicos

Son automáticas. No es preciso declararlas.Comienzan con el símbolo ‘$’ seguido del nombre de la variable.Se distingue entre minúsculas y mayúsculas.El nombre sólo puede empezar por una letra o '_'El resto de caracteres del nombre puede ser cualquier letra, número, el símbolo '_' o caracteres ASCII entre 128 y 255.

Page 34: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantesAsignación por valor y por referencia

Normalmente se realiza una asignación por valor.Para realizar una asignación por referencia se antepone el símbolo '&'<?php$a=&$b;

?>

Despues de esto todo lo que se haga sobre $a se hará sobre $b y viceversa, pues hacen referencia al mismo valor.

Page 35: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantes Variables predefinidas

Las principales variables predefinidas son:$GLOBALS$_SERVER$_GET$_POST$_COOKIE$_FILES$_SESSION

Page 36: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantes Ámbito de las variables

Cada variable es visible en el ámbito simple en el que está definida.Para una variable global este ámbito es todo el código php de la página y los ficheros incluidos, pero NO el interior de las funciones que puedan estar definidas.

Page 37: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantes Ámbito de las variables

Ejemplo de lo anterior, el siguiente programa nogenera como salida un 1, sino un warning.<?php

$a = 1; // ambito global

function Test(){

echo $a; // referencia a variable local

}

Test();

?>

Page 38: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantes Ámbito de las variables

Una variable definida dentro de una función sólo será visible desde esa función.<?php

function Test(){

$a=2; // referencia a variable local

}

Test();

echo $a; // Se genera un warning, la variable // $a no está definida

?>

Page 39: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantes Ámbito de las variables

Una variable global puede hacerse visible dentro de una función declarándola con la palabra reservada global.<?php

$a = 1;

$b = 2;function Sum() {

global $a, $b;

$b = $a + $b;} Sum();

echo $b;?>

Page 40: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantes Ámbito de las variables

Las variables predefinidas que vimos antes están disponibles sin necesidad de declararlas global, por lo que se denominan superglobales.<?php

$a = 1;

$b = 2;function Sum(){

$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];} Sum();

echo $b;?>

Page 41: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantes Variables variables

Una variable puede almacenar el nombre de otra y utilizarse para referirse a ésta última.<?php

$numero = 1; // esta linea podría no existir$x = "numero";

$$x=100;echo $numero; // la salida es 100

?>

Page 42: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

3. Variables y constantesConstantes

Los identificadores de constantes siguen las mismas reglas que los de variables, pero no llevan el prefijo $.Distinguen mayúsculas y minúsculas. Por convención se suelen usar mayúsculas.El ámbito de las constantes es superglobal.Se definen con una llamada a la función define()<?php

define(EURO, 166.386);

?>

Page 43: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datos

Page 44: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datos

PHP soporta los siguientes tipos de datosBooleanosEnteros.Números en punto flotante.Cadenas.Matrices.Objetos.RecursosNULL

Page 45: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datos

Habitualmente es PHP y no el programador quien decide el tipo de un dato.PHP realiza conversiones automáticas para adaptar el tipo de un dato al contexto.El programador puede usar la función gettype() para conocer el tipo de un dato y settype() para forzar un dato a un tipo concreto.

Page 46: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosBooleanos

Este es el tipo más simple. Un booleano expresa un valor de verdad. Puede ser TRUE o FALSE.

<?php$valor = TRUE;echo "Valor de \$valor: $valor"; // la salida es: Valor de $valor: TRUE

?>

Page 47: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosEnteros

Los enteros se pueden especificar usando una de las siguientes sintaxis:

<?php$a = 1234; # número decimal$a = -123; # un número negativo$a = 0123; # octal (equivale a 83 decimal)

$a = 0x12; # hexadecimal (equivale a 18 decimal)?>

Page 48: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosPunto Flotante

Los números en punto flotante (double) se pueden especificar utilizando cualquiera de las siguientes sintaxis:<?php$a = 1.234; $a = 1.2e3;$a = 7E-10;

?>

Page 49: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosCadenas

Se pueden especificar entre comillas dobles ("), en este caso todas las variables que estén dentro de la cadena se expandirán.Se puede usar la barra invertida para indicar caracteres especiales: \n, \t,... o para escapar las comillas o una variable: \", \$edad<?php

$edad = 25;echo "Valor de \$edad: $edad";

// la salida es: Valor de $edad: 25?>

Page 50: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosCadenas

Si se encierra una cadena de caracteres entre comillas simples ('), no se expanden las variables y los únicos caracteres especiales comprendidos son \\ y \'<?php

$edad = 25;

echo 'Edad: $edad'; //la salida es: Edad: $edad

?>

Page 51: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosConversión de cadenas

Si una cadena se usa en una operación aritmética, se convertirá al tipo numérico en el que mejor encaje, si esto es posible.<?php

$cad1 = "25";

$cad2 = "2e-3";$a = 7 + $cad1;$b = 50 * $cad2;

echo "$a, $b"; //la salida es: 32, 0.1?>

Page 52: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosArrays

En PHP los arrays pueden ser indexados (vectores) al estilo C:<?php

$vector[0] = 25;$vector[1] = 12;$suma=0;

for($i=0 ; i<2 ; $suma += $vector[i++]);

echo $suma; //la salida es: 37

?>

Page 53: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosArrays

Si dejamos en blanco el índice se van asignando automáticamente en orden.<?php

// Este ejemplo es equivalente al anterior$vector[0] = 25;$vector[] = 12;

$suma=0;for($i=0 ; i<2 ; $suma += $vector[i++]);

echo $suma; //la salida es: 37?>

Page 54: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosArrays

PHP también permite manejar los arrays como tablas asociativas, que pueden usar cualquier valor como índice:<?php

$salario ["María José"] = 1125.36;

$salario ["Jose Antonio"] = 1100.25;// .........$empleado="María José" ;

echo "$empleado\t".$salario [$empleado]."\n";//Salida: María José 1125.36

?>

Page 55: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosArrays

Los arrays también se pueden definir con el constructor array().<?php

// Este sería un vector de índices 0, 1, 2 y 3$otroArray = array(1, "Hola", 3.14,

"Mortadelo");

// Este otro sería una tabla asociativa $otroArrayMas = array ( "María" => 26,

"Pepe" => 34,

"Antonio" => 28);?>

Page 56: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosArrays y cadenas

Se puede acceder a los caracteres de una cadena como si fuera un array (como se hace en lenguaje C)<?php

$cadena="María";echo "$cadena[0] - $cadena[2] - $cadena[4]";// la salida sería: M - r - a

?>

Page 57: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosArrays multidimensionales

Simplemente se ponen las dimensiones que necesitemos.<?php

$a[1][0]= $f; // bidimensional$a["foo"][2] = $f; // se pueden mezclar $a[3]["bar"] = $f; // índices numéricos

// y asociativos)$a["foo"][4]["bar"][0]=$f; //4dimensiones

?>

Page 58: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosArrays multidimensionales

También podemos anidar llamadas a array().<?php

$matriz =array("manzana" => array("color" => "rojo",

"sabor" => "dulce","forma" => "redondeada"),

"naranja" =>array("color" => "naranja",

"sabor" => "ácido","forma" => "redondeada"),

);?>

Page 59: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosExpansión de arrays multidimensionales

Si situamos una referencia a un elemento de un arraymultidimensional dentro de una cadena, no se expandirá completamente.<?php

$a[0][1]= "Abracadabra"; echo "La palabra mágica es: $a[0][1]";

// Esto genera la salida:

// La palabra mágica es: Array[1]?>

Page 60: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosExpansión de arrays multidimensionales

A partir de PHP 4 esto se puede solucionar situando la referencia al array entre llaves:<?php

$a[0][1]= "Abracadabra"; echo "La palabra mágica es: {$a[0][1]}";

// Esto genera la salida:

// La palabra mágica es: Abracadabra?>

Page 61: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosObjetos

Para inicializar un objeto, se usa la sentencia newpara instanciar el objeto a una variable.<?php

class foo {function do_foo () {

echo "Doing foo."; }

}

$bar = new foo;$bar->do_foo();

?>

Page 62: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosForzado de tipos

PHP no soporta la declaración de tipos para las variables. Esto significa que una variable cambia su tipo según sea lo que en ella se introduce.<?php

$a = 4; // $a es de tipo entero$a = "Hola"; // $a es de tipo cadena$a = 2.45; // $a es de tipo double$a = "2.45"; // $a es de tipo cadena

?>

Page 63: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosForzado de tipos

PHP adapta los tipos de los valores según el contexto. Esto no siempre afecta a los tipos de las variables que los contienen.<?php

$a = "2.45"; // $a es de tipo cadena/* en la siguente sentencia el valor de $a se convierte a double para la operación, (pero $a sigue siendo de tipo cadena) y $b toma tipo double */

$b = 3 * $a;?>

Page 64: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosForzado de tipos

En cambio en este ejemplo el tipo de $a si se ve afectado<?php

$a = "2.45"; // $a es de tipo cadena/* en la siguente sentencia el valor de $a se

convierte a double para la operación, el tipode $a cambia a double para guardar elresultado */

$a = 3 * $a;?>

Page 65: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

4. Tipos de datosForzado de tipos

Podemos forzar el tipo de un valor usando un cast, al estilo del lenguaje C.<?php

$a = "2.45"; // $a es de tipo cadena/* en la siguente sentencia el valor de $a se fuerza a int para la operación, el tipo del resultado es int y $a cambia a int para acomodar este resultado */

$a = 3 * (int) $a;?>

Page 66: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. Operadores

Page 67: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperadores aritméticos

Disponemos de los clásicos operadores aritméticosSuma: +Resta: -Multiplicación: *División: /Módulo: %La división es siempre real.

Page 68: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperadores de asignación

Además del operador de asignación simple (=), disponemos de los operadores combiandos:+=, -=, *=, /=, *=, .=, etc.

Realizan la operación indicada entre la variable de la izquierda de la asignación y el resultado de la expresión de la derecha y guardan el resultado en la variable de la izquierda.

Page 69: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperadores de bits

Disponemos de los mismos operadores de bits que en C.Operadores lógicos bit a bit: &, |, ^ y ~. Operadores de desplazamiento: >> y <<.

Page 70: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperadores de comparación

Además de los mismos comparadores que en C:==, !=, <, >, <= y >=Disponemos de dos nuevos operadores, que comparan simultáneamente valor y tipo:Identidad: === 12 === 12.0 es falso pues no coinciden los tipos10 === 10 es verdaderoNo idénticos: !==12 !== 12.0 es verdadero10 !== 10 es falso pues son idénticos

Page 71: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperador de ejecución

PHP soporta un operador de ejecución el apóstrofe invertido ( ` ). La cadena contenida entre estos signos se intentará ejecutar como un comando del shell. El resultado del comando se devuelve como resultado de la expresión.<?php

$resultado=`ls -la`;echo $resultado;

?>

Page 72: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperadores de incremento y decremento

PHP dispone de los mismos operadores de incremento y decremento que C: ++ y --Ojo porque con cadenas de caracteres ¡las incrementa como tales cadenas! Por ejemplo:<?php

$a="Madrid";$a++;echo "$a, tipo: ". gettype($a);// El resultado es: Madrie tipo: string

?>

Page 73: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperadores lógicos

Son los mismos y funcionan igual que en C, pero además de los signos de C podemos usar las palabras inglesas and y or y disponemos del operador adicional xor:

Y lógico: && o andO lógico: || o orO exclusivo: xorNO lógico: !

Page 74: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperador de cadenas

PHP permite concatenar cadenas con el operador punto (.)<?php

$a=1;$b=2;echo $a ." + " . $b ."=". $a+$b;

?>

Este operador también nos da una solución sencilla para la expansión de arrays multidimensionales sin tener que usar las llaves.

Page 75: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresOperador de Control de Errores

PHP5 ofrece un operador de control de errores (@). Cuando es colocado al comienzo de una expresión en PHP, cualquier mensaje de error que pudiera generarse a causa de esa expresión será ignorado. <?php

$mi_archivo = @file ('archivo_que_no_existe')or die ("La apertura de archivo ha fallado");

?>

Page 76: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

5. OperadoresPrecedencia de operadores

Asoc Operandos Asoc Operandosiz , iz ^iz or iz &iz xor no asoc == != === !==iz and no asoc < <= > >=der print iz << >>

iz = += -= *= /= .= %=&= |= ^= ~= <<= >>= iz + - .

iz ? : iz * / %

iz||

der! ~ ++ -- (int)(double) (string)(array) (object) @

iz && der [iz | no asoc new

Page 77: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de control

Page 78: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlAlternativa simple y doble

Se usan if e if...else respectivamente.Si alguna rama tiene más de una sentencia deberán agruparse entre llaves.<?php

if ($a<0){$b=-$a;echo "\$a es menor que 0";}

else$b=$a;

?>

Page 79: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlEncadenamiento de ifs

Se pueden anidar en cascada varias alternativas dobles usando la palabra reservada elseif<?php

if ($a<0)echo "\$a es menor que 0";

elseif ($a<4)echo "\$a está entre 0 y 4";

elseif ($a<10)echo "\$a está entre 4 y 100;

elseecho "\$a es mayor que 10";

?>

Page 80: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlAlternativa múltiple

En PHP es la sentencia switch que funciona casi igual que en C. Sólo permite, por lo tanto, comparaciones de igualdad de una expresión con valores constantes, pero de cualquier tipo.La sintaxis es:

switch (expresion) {case cte_1: sentencias_1case cte_2: sentencias_2...case cte_n: sentencias_ndefault: sentencias_n+1

}

Page 81: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlBucles while y do...while

Son bucles controlados por una condición. Se diferencian en que el while evalua la condición antes de ejecutar cada iteración y el do...while lo hace justo despues de cada iteración.La sintaxis es:while(expresion) do

cuerpo_del_bucle cuerpo_del_buclewhile(expresion);

El cuerpo del bucle deberá ir entre llaves si lo forma más de una sentencia.

Page 82: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlBucle for

Es una versión abreviada del bucle while que, típicamente, incorpora un contador.La sintaxis es:

for(expresion1; expresion2; expresion3) cuerpo_del_bucle

expresion1 se ejecuta una única vez antes del comienzo del bucle.expresion2 se evalúa al comienzo de cada iteración y cuando su resultado es false se abandona el bucle.expresion3 se evalúa al final de cada iteración.

Page 83: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlBucle foreach

Este bucle no tiene equivalente en C.Está especialmente concebido para recorrer arrays.Admite dos posibilidades de sintaxis:

foreach(expresion_array as $value)cuerpo_del_bucle

foreach(expresion_array as $key => $value)cuerpo_del_bucle

En ambos casos el cuerpo del bucle se ejecutará tantas veces como elementos tenga el array. En cada iteración $value tomará un valor de los contenidos en el array.

Page 84: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlBucle foreach

Ejemplo de la primera forma del bucle foreach.<?php

$precios=array(3.23, 56.7, 12.5, 96.2);$suma=0;foreach($precios as $precio)

{echo "$precio\n"; $suma=$precio;}

echo "Suma articulos: $suma";?>

Page 85: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlBucle foreach

Ejemplo de la segunda forma del bucle foreach.<?

$precios=array("libro" => 3.23, "pantalon" =>56.7, "disco" => 12.5,"cazadora" => 96.2);

echo "Tarifa de precios\n";foreach($precios as $producto => $precio)

echo "$producto\t$precio\n"; ?>

Page 86: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlSentencias break y continue

break provoca la salida de estructuras iterativas o de la sentecia switch. Admite un parámetro opcional que indica de cuantos niveles de estructuras anidadas se debe salir.continue sólo se usa en bucles provoca que se pase a la siguiente iteración sin terminar la actual. Al igual que break admite un parámetro que indica a cuantos niveles de anidamiento va a afectar.

Page 87: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlSentencia return

Si se llama desde una función, return provoca la salida de la función y su parámetro se devuelve como valor de retorno de la funciónSi se llama desde el cuerpo principal de un scriptprovoca la terminación del mismo.Si se llama desde un script invocado mediante include o require, provoca el final del mismo y el retorno al script llamante. Además el valor del argumento de return será devuelto como valor de retorno del include o require.

Page 88: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlinclude y require

Ambas sentencias provocan la inclusión y evaluación del fichero especificado.Cualquier variable disponible en la línea donde está el include o require en el script principal lo estará también en la evaluación del archivo incluido.Al incluir un fichero, el intérprete sale del modo PHP y entra en modo HTML y vuelve de nuevo al modo PHP al final. Por esta razón, cualquier código dentro del archivo referenciado que debiera ser ejecutado como código PHP debe ser encerrado dentro de etiquetas de comienzo y fin de PHP válidas.

Page 89: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlinclude y require

La diferencia entre ambas sentencias reside en el tratamiento de errores. Cuando por alguna razón la inclusión del fichero no puede tener lugar, includegenera un warning, mientras que require genera un fatal error y finaliza la ejecución del script.La sintaxis de ambas sentencias es:

include(fichero);require(fichero);

Page 90: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

6. Estructuras de controlSintaxis alternativa

Las estructuras de control admiten una sintaxis alternativa para las estructuras if, while, for y switch.Esta otra sintaxis consiste, básicamente, en cambiar la apertura de llaves por : y el cierre por endif;, endwhile;, endfor; y endswitch;Esta sintaxis permite que el cuerpo de cada rama o bucle sea directamente html y no sentencias php.

Page 91: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. Funciones

Page 92: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesFunciones definidas por el usuario

Las funciones de usuario son bloques de código que pueden ser utilizados en cualquier momento dentro del código PHP.Se define una función con la sentencia functionseguida del nombre de la función y de las líneas de instrucciones.Estas últimas deben ir entre las llaves {...}. Si la función tiene que devolver un valor a la línea de código donde se invocó, como última instrucción hay que poner la orden return seguida del valor que se devuelve.

Page 93: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesFunciones definidas por el usuario

Las funciones, en la mayoría de los casos, tienen parámetros o argumentos entre paréntesis, a través de los cuales se pasan los datos con los que hay que realizar operaciones.Una función se puede definir con la siguiente sintaxis: <?php

function foo ($arg_1, $arg_2, ..., $arg_n) {

echo "Función de ejemplo.\n";return $retval;

}?>

Page 94: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesParámetros de las funciones

PHP soporta paso de parámetros por valor (comportamiento por defecto), por referencia, y parámetros por defecto. Además PHP4 y PHP5 permiten funciones con un número variable de parámetros. En PHP3 puede conseguirse algo similar pasando un array de parámetros.

Page 95: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesPaso de parámetros por referencia

Si se quiere que un parámetro siempre se pase por referencia basta anteponer el símbolo '&' antes del nombre del mismo en la definición de la función.Aún cuando un parámetro no esté definido como pasado por referencia, puede hacerse así anteponiendo un '&' al nombre del parámetro actual en la llamada a la función.

Page 96: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesParámetros por defecto

Se pueden definir valores por defecto para los parámetros escalares, al estilo C++.Los parámetros con valores por defecto deben estar a la derecha en la lista de parámetros.<?php

function makecoffee ($type = "cappucino") {

return "Hacer una taza de $type.\n";}echo makecoffee ();echo makecoffee ("espresso");

?>

Page 97: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesLista de longitud variable de parámetros

No necesita de ninguna sintaxis especial, y las listas de parámetros pueden ser escritas en la llamada a la función y se comportarán de la manera esperada.En la definición de la función no se escribe la lista de argumentos y se utilizan las funciones siguientes para acceder a los parámetros:

func_num_args()func_get_arg()func_get_args()

Page 98: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesLista de longitud variable de parámetros

func_num_args(): Devuelve el número de parámetros pasados a una función de parámetros variable. func_get_arg(): Devuelve el valor de un parámetro en particular. Por ejemplo, para retornar el valor del primer parámetro de una función de parámetros variable, podemos escribir:

$arg1 = func_get_arg(0);

func_get_args(): Retorna todos los parámetros pasados a la función en forma de array.

Page 99: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesLista de longitud variable de parámetros

<?phpfunction p_variable()

{$argc=func_num_args();$argv=func_get_args();for($i=0; $i<$argc; $i++)

echo "Parametro $i: $argv[$i]\n";}

p_variable(1, 2);

p_variable("a", "b", "c", "d");?>

Page 100: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesDevolviendo valores

Se pueden devolver valores de cualquier tipo, incluyendo arrays y objetos, usando la sentencia return.

<?phpfunction numeritos()

{return array(0, 1, 2);}

list($cero, $uno, $dos) = numeritos();?>

Page 101: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesFunciones variables

PHP soporta funciones variables, esto quiere decir que si a una variable se le añaden parentesis, PHP intentará ejecutar una función con el nombre resultado de evaluar la variable.<?php

$a="sumar";$suma=$a(2,3);/* Se llamaría a la función sumar(2,3);

Si existe y está definida como es de esperaren $suma se guardaría un 5

*/?>

Page 102: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesFunciones de tratamiento de cadenas

Funciones para mostrar información:echoprintprintf()sprintf(). Ojo, la sintaxis de esta función es:

$cadena= sprintf("formato", lista_de_argumentos)

Para saber la longitud de una cadena:strlen()

Page 103: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesAdaptar una cadena al contexto

Hay muchas, algunas de las mas importantes son:addSlashes(). Devuelve una cadena con barras invertidas delante de los caracteres que los necesitan en consultas a Bases de Datos.stripSlashes(). Es la contraria de la anterior, elimina las barras invertidas delante de caracteres especiales.

Page 104: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesAdaptar una cadena al contexto

urlencode(). Prepara una cadena de caracteres para ser enviada como parte de una URL, eliminando espacios en blanco y cambiando los caracteres no alfanuméricos por un signo % y un código de dos dígitos hexadecimales.urldecode(). Es la opuesta a la anterior. Restituye una cadena procesada con la función urlencode() a su estado original.nl2br(). Convierte los saltos de linea de un texto en saltos html (<br>), conservando los saltos originales.

Page 105: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesLimpiar una cadena de caracteres

chop(). Elimina espacios en blanco y saltos de línea al final de una cadena.ltrim(). Elimina espacios en blanco y saltos de línea al principio de una cadena de caracteres.trim(). Es una combinación de las anteriores. Elimina espacios en blanco y saltos de línea tanto al principio como al final de la cadena.strip_tags(). Elimina las etiquetas HTML de una cadena.

Page 106: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesMayúsculas y minúsculas.

strtoupper(). Devuelve la misma cadena convirtiendo todos sus caracteres a mayúsculas.strtolower(). Devuelve la misma cadena convirtiendo todos sus caracteres a minúsculas.ucfirst(). Devuelve la misma cadena convirtiendo su primer caracter a mayúscula.ucwords(). Devuelve la misma cadena convirtiendo a mayúscula la primera letra de cada palabra.

Page 107: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesBuscar en una cadena.

strcspn(). Devuelve el índice del primer caracter de la primera cadena que coincida con algún caracter de la segunda cadena. strpos(). Devuelve el índice del caracter de la primera cadena donde comienze la primera aparición completa de la cadena pasada como segundo argumento.strstr(). Devuelve una subcadena de la primera cadena que comprende desde la primera aparición de la cadena pasada como segundo argumento hasta el final de la primera cadena.

Page 108: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesOperaciones con subcadenas.

substr(). Devuelve una subcadena de la cadena que se pasa como primer argumento. Esta subcadenacontiene los caracteres de la cadena desde la posición que se indica en el segundo argumento, hasta el número que se indique en el tercer argumento.strtok(). Separa una cadena de texto en bloques según el separador indicado en el segundo argumento. Para completar la separación de una cadena se deben hacer llamadas sucesivas en las que sólo en la primera se pasa la cadena a dividir.

Page 109: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesFunciones de tratamiento de arrays.

count(). Devuelve el número de elementos de una matriz.reset(). Coloca el puntero del vector en la primera posición del mismo.end(). Coloca el puntero del vector en la última posición del mismo.next(). Devuelve el valor siguiente al apuntado por el puntero y desplaza este a la nueva posición.prev(). Devuelve el valor anterior al apuntado por el puntero y desplaza este a la nueva posición.

Page 110: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesFunciones de tratamiento de arrays.

current(). Devuelve el valor apuntado por el puntero sin desplazar la posición del mismo.key(). Devuelve el valor de la clave del lugar apuntado por el puntero.explode(). Convierte una cadena de caracteres en un array, separando según un carácter que se pasa como primer argumento.implode(). Convierte un array en una cadena separándolos con el carácter indicado en el primer argumento.

Page 111: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesOrdenación de arrays.

sort(). Ordena un array de menor a mayor sin mantener la asociación de cada elemento con su índice.rsort(). Hace lo mismo que la anterior pero en orden inverso.asort(). Ordena un array de mayor a menor manteniendo la asociación de cada elemento con su índice.arsort(). Hace lo mismo que la anterior pero en orden inverso.

Page 112: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesOrdenación de arrays.

ksort(). Ordena un array de menor a mayor segun la clave manteniendo la asociación de cada elemento con su índice.krsort(). Hace lo mismo que la anterior pero en orden inverso.shuffle(). Ordena aleatoriamente los elementos de una matriz, sin mantener la asociación de cada elemento con su índice.array_reverse(). Devuelve una matriz con los elementos ordenados en el orden inverso al de la matriz que se le pasa como parámetro.

Page 113: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesTratar un array como si fuera una pila.

array_push(). Inserta un elemento al final de un array.array_pop(). Devuelve el último elemento de un array, que además elimina.array_shift(). Devuelve el primer elemento de un array, que además elimina, desplazando el resto un lugar a la izquierda.array_unshift(). Inserta un elemento en la primera posición del array, desplazando el resto un lugar a la derecha.

Page 114: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesFunciones de tratamiento de fechas

check_date(). Comprueba la validez de una fecha que se le pasa como parámetro en el orden mes, día, año.time(). Devuelve un timestamp o instante Unix, esto es el número de segundos transcurridos desde el 1/1/1970. date(). Devuelve una cadena formateada según se le indique en el primer parámetro. El segundo indica la fecha a formatear como timestamp. Si no se pone nada en el segundo, se toma la fecha actual.

Page 115: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

7. FuncionesFunciones de tratamiento de fechas

get_date(). Recibe como parámetro un timestamp. Devuelve un array con los siguientes elementos:

"seconds" - segundos"minutes" - minutos"hours" - horas"mday" - día del mes"wday" - dia de la semana, en número"mon" - mes, en número"year" - año, en número"yday" - día del año"weekday" - día de la semana en texto"month" - mes en texto

Page 116: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

8. Entrada y salida de datos

Page 117: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

8. Entrada y Salida de datosEntrada de datos

Normalmente la entrada se realiza a través de un formulario HTML.En PHP el propio lenguaje se encarga de crear las variables correspondientes a los controles del formulario en la página que lo recibe, y rellenarlas con los correspondientes valores.

Page 118: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

8. Entrada y Salida de datosEntrada de valores sencillos

Para el caso de valores sencillos, tales como cuadros de texto, listas desplegables, casillas de verificación (checkbox) y casillas de selección (radio buttons), PHP crea un elemento del array SuperGlobal $_GET o $_POST (dependiendo del método con que se envíe el formulario) por cada uno de los elementos que haya en el formulario.El nombre de la variable para recuperar el valor será el elemento de clave igual al name del control en el formulario, dentro del array SuperGlobal $_GET o $_POST.

Page 119: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

8. Entrada y Salida de datosEntrada de valores sencillos

En el caso de casillas de selección, el valor almacenado en la variable será el designado en el atributo "value" del elemento que haya seleccionado el usuario.En el caso de casillas de verificación, se crearán variables con el mismo nombre que aquellas casillas que hayan sido seleccionadas por el usuario. El valor introducido en la variable será el contenido en el atributo "value" del elemento.Si un elemento no se selecciona no se crea la correspondiente variable.

Page 120: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

8. Entrada y Salida de datosEntrada de valores multiples

En el caso de valores múltiples tambien PHP se encarga de rellenar con los valores variables del mismo nombre que el elemento del formulario, pero en este caso deberemos dar al elemento un nombre de array, para que pueda albergar varios valores.Deberemos actuar así con listas de seleccion múltiple.

Page 121: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

8. Entrada y Salida de datosConsideraciones sobre la E/S

En PHP es frecuente que una página se llame a sí misma.En este caso la primera vez que se ejecuta la página típicamente se limita a mostrar un formulario.En ejecuciones sucesivas, ya recibiendo datos, la página actúa como corresponda para procesar esos datos y mostrar el resultado al usuario.La forma de distinguir cuando una página se llama por primera vez es porque las variables del formulario no están creadas.

Page 122: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

8. Entrada y Salida de datosConsideraciones sobre la E/S

Podemos pasar información de una página a otra a traves de la URL del enlace.Para ello añadiremos tras la dirección el signo ? seguido de pares nombre=valor, separados por el símbolo &.Los nombres de las variables que se ponen en la URL no llevan el símbolo $.De forma análoga a lo que pasa con los formularios, las variables y los valores pasados por URL estarán automáticamente disponibles en la página destino.

Page 123: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

8. Entrada y Salida de datosConsideraciones sobre la E/S

HTML no entiende de espacios, por lo que si queremos pasar valores con espacios en la URL deberemos adaptar la cadena con la función urlencode() y recuperar luego los valores originales con urldecode().Si se pasan numerosos valores a través de una URL, lo más práctico es componer la cadena en una variable y luego citarla en el enlace:$parametros="?nombre=Pepe&apellido=García&edad=45";echo "<a href=\"alta.php$parametros\">Alta</a>";

Page 124: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directorios

Page 125: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosAbrir y cerrar ficheros

Un fichero se abre con la función fopen(), cuya sintaxis es:

fopen(nombre_de_fichero, modo_de_apertura)Los modos de apertura coinciden con los de C:

"r", "r+", "w", "w+", "a", "a+", “x”, “x+” y sus correspondientes versiones para ficheros binarios, añadiendoles una b al final.fopen() devuelve un cursor que nos servirá para manejar el fichero una vez abierto o False si la apertura no tiene éxito.

Page 126: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosAbrir y cerrar ficheros

Una forma conveniente de comprobar si la apertura del fichero tuvo éxito es utilizar la función die()<?php

$fichero=@fopen("datos.txt", "r") ordie("No se pudo abrir el fichero");

?>

Para cerrar un fichero utilizaremos fclose(), pasandole como parámetro su cursor<?php

fclose($fichero);?>

Page 127: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosLeer el contenido de un fichero

La función fread() se utiliza para leer una cadena de un fichero abierto. Tiene esta sintaxis:

fread(cursor, número_de_caracteres);Devuelve una cadena con los caracteres leidos. Se leerán menos caracteres de los indicados si se alcanza el fin de fichero.La función fgets() es igual que la anterior pero para no solo en el fin de fichero, sino tambien al final de una línea.La función fgetc() lee un sólo caracter de cada vez.

Page 128: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosEscribir en un fichero

La función fputs() escribe el contenido de la cadena en el fichero. Tiene un tercer parámetro opcional que indica el número máximo de caracteres a escribir. Tiene esta sintaxis:

fread(cursor, cadena, número_de_caracteres);La función fwrite() es en todo idéntica a la anterior.

Page 129: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosRecorrer un fichero

La función rewind() coloca el puntero del fichero al comienzo del mismo.La función fseek() desplaza offset bytes el puntero contados desde la posición indicada por el tercer parámetro. Su sintaxis es:

fseek(cursor, offset, desde_donde)Los valores posibles de desde_donde son:

SEEK_SET, SEEK_CUR y SEEK_ENDLa función ftell() devuelve la posición del puntero medida en bytes desde el principio del fichero.

Page 130: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosCopiar, borrar y renombrar un fichero

copy() copia un fichero en otro, su sintaxis es:copy(nombre_actual, nombre_nuevo)

file_exists() comprueba si un fichero existe.file_exists(nombre_fichero)

unlink() borra un fichero, su sintaxis es:unlink(nombre de fichero)

rename() cambia el nombre de un fichero:rename(nombre_actual, nombre_nuevo)

Page 131: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosTamaño y tipo de un fichero

filesize() devuelve el tamaño de un ficherofilesize(nombre_de_fichero)

filetype() devuelve un string con el tipo del fichero.filetype(nombre_fichero)

file: es un fichero normal.dir: es un nombre de directorio.link: es un enlace simbólico (sólo en sistema UNIX).fifo: es una pila de tipo FIFO.char: es en dispositivo de tipo carácter, por ejemplo “C:\”.block: es un dispositivo de bloque.unknown: tipo desconocido.

Page 132: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosOperaciones con directorios

opendir() abre un directorio del servidor.closedir() cierra un directorio previamente abierto.readdir() lee un nombre de fichero del directorio y avanza el puntero para que apunte al siguiente.rewinddir() mueve el puntero del directorio al principio del mismo.chdir() coloca un directorio como directorio actual.mkdir() crea un directorio dentro del actual.rmdir() borra un directorio especificado.

Page 133: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosSubir ficheros al servidor

Con PHP el cliente puede subir ficheros al servidor.La forma habitual de hacerlo será rellenando un formulario entre cuyos elementos habrá uno de tipo "file", en el que el usuario introducirá el nombre del fichero a enviar.La página PHP destino recibirá en la variable que corresponde al elemento "file" el nombre del fichero temporal en el que se guarda momentáneamente en el servidor el fichero recién subido.

Page 134: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosSubir ficheros al servidor

El siguiente prodría ser un formulario simple para subir un fichero.<FORM ENCTYPE="multipart/form-data"

ACTION="recibir.php" METHOD=POST><INPUT TYPE="hidden" name="MAX_FILE_SIZE"

value="51200">Fichero: <INPUT NAME="fichero" TYPE="file">

<INPUT TYPE="submit" VALUE="Enviar"></FORM>.

En la página recibir.php aparecerá una variable $_FILES[‘fichero’][‘tmp_name’], con el nombre temporal del fichero.

Page 135: Programación en lenguaje PHP Nivel Básicoadministraciondesistemas.pbworks.com/f/Presentacion_PHP5_Basico.pdf · 1.Introducción a PHP Funcionamiento de un servidor Web Si, en cambio,

9. Ficheros y directoriosSubir ficheros al servidor

Además se crean automáticamente las siguientes variables con sus contenidos:$_FILES[‘fichero’][‘name’]: nombre original del fichero subido. $_FILES[‘fichero’][‘size’]: tamaño del fichero que se pasa. $_FILES[‘fichero’][‘type’]: tipo del fichero que se pasa.Con esta información deberemos copiar a otro lugar el fichero, pues el fichero temporal es eliminado automáticamente por el servidor.Podemos usar la función move_uploaded_file()