php-parte basica

103
 PHP – Linux Introducción Goi eskola politeknikoa CAPÍTULO I..................................................................................3 INTRODUCCIÓN....................................................................................................3 1.1Histor ia de PHP........ ............................................................................3 1.2Car acterísticas... ................................................................................. 3 CAPITULO II.................................................................................5 INSTALACIÓN   Y CONFIGURACIÓN DEL INTÉRPRETE PHP.......................................................5 1.1Insta lación de PHP como intérprete........... .........................................5 1.1.1Teste ar el intérprete de PHP.........................................................7 1.2Insta lación de PHP como módulo interno de Apache...................... ....8 1.2.1Teste ar el módulo PHP................................................................12 CAPITULO III...............................................................................14 INCLUSIÓN DE CÓDIGO PHP EN PÁGINAS HTML..........................................................14 1.1Intro ducción......................................................................................14 1.3Configur ación del intérprete. .............................................................17 CAPITULO IV...............................................................................19 LENGUAJE PHP................................................................................................19 1.1Sintaxis básica..... .............................................................................19 1.4Var iables...........................................................................................19 1.4.1Variables de Variables ...............................................................20 1.4.2Ambito de las variables.. .............................................................22 1.4.3Variables Estáticas......................................................................23 1.4.4Variables Predefinidas................................................................23 1.5Tipos de datos..... .............................................................................. 24 1.5.1Simples ................................................................................... ....24 1.5.2Enteros........................................................................................25 1.5.3Coma flotante.............................................................................26 1.5.4Booleanos...................................................................................27 1.5.5Cadenas de caracteres...............................................................27 1.5.6Tipos de datos Complejos...........................................................29 1.5.7Arrays.........................................................................................29 1.5.8Funciones de gestión de tipos de datos......................................31 1.6Const antes........................................................................................ 33 1.7Opera dores........................................................................................34 1.8Estruct uras de control.......................................................................36 1.8.1“If” vs “?:”...................................................................................36 1.8.2For...............................................................................................39 1.8.3Foreach.......................................................................................40 1.8.4While...........................................................................................42 1.8.5Do … while..................................................................................43 1.8.6Break y continue.........................................................................44 1.8.7Switch......................................................................................... 45 1.9Funciones ..........................................................................................46 1.9.1Def inicion....................................................................................46 1.9.2Ejecucion.....................................................................................47 1.9.3Paso de parametr os....................................................................47 1.9.4Recur sividad...............................................................................48 1.10Funcione s especificas: cadenas de caracteres, fechas, arrays........49 1.10.1Fechas.......................................................................................49 1.10.2Cadenas de caracter es.............................................................55 Informatika saila 1

Upload: erregistroak

Post on 14-Jul-2015

51 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 1/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

CAPÍTULO I..................................................................................3

INTRODUCCIÓN....................................................................................................3

1.1Historia de PHP....................................................................................31.2Características....................................................................................3

CAPITULO II.................................................................................5

INSTALACIÓN  Y CONFIGURACIÓN DEL INTÉRPRETE PHP.......................................................51.1Instalación de PHP como intérprete....................................................5

1.1.1Testear el intérprete de PHP.........................................................71.2Instalación de PHP como módulo interno de Apache..........................8

1.2.1Testear el módulo PHP................................................................12

CAPITULO III...............................................................................14

INCLUSIÓN DE CÓDIGO PHP EN PÁGINAS HTML..........................................................141.1Introducción......................................................................................141.3Configuración del intérprete..............................................................17

CAPITULO IV...............................................................................19

LENGUAJE PHP................................................................................................191.1Sintaxis básica..................................................................................191.4Variables...........................................................................................19

1.4.1Variables de Variables ...............................................................201.4.2Ambito de las variables...............................................................221.4.3Variables Estáticas......................................................................231.4.4Variables Predefinidas................................................................23

1.5Tipos de datos...................................................................................241.5.1Simples.......................................................................................241.5.2Enteros........................................................................................251.5.3Coma flotante.............................................................................261.5.4Booleanos...................................................................................271.5.5Cadenas de caracteres...............................................................271.5.6Tipos de datos Complejos...........................................................291.5.7Arrays.........................................................................................291.5.8Funciones de gestión de tipos de datos......................................31

1.6Constantes........................................................................................331.7Operadores........................................................................................341.8Estructuras de control.......................................................................36

1.8.1“If” vs “?:”...................................................................................361.8.2For...............................................................................................391.8.3Foreach.......................................................................................401.8.4While...........................................................................................421.8.5Do … while..................................................................................431.8.6Break y continue.........................................................................441.8.7Switch.........................................................................................45

1.9Funciones..........................................................................................461.9.1Definicion....................................................................................461.9.2Ejecucion.....................................................................................471.9.3Paso de parametros....................................................................47

1.9.4Recursividad...............................................................................481.10Funciones especificas: cadenas de caracteres, fechas, arrays........491.10.1Fechas.......................................................................................491.10.2Cadenas de caracteres.............................................................55

Informatika saila 1

Page 2: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 2/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.10.3Arrays.......................................................................................63CAPITULO V...............................................................................................66SERVICIO WEB  Y EL PROTOCOLO HTTP....................................................................66

1.1Funcionamiento del servicio Web......................................................661.11Codificacion de los URLs..................................................................661.12Funcionamiento del protocolo http detallado..................................671.13Metodos del protocolo http.............................................................681.14Campos de las cabeceras http........................................................681.15Mensajes de Respuesta...................................................................69

1.15.1Campos de los mensajes de respuesta.....................................70FORMULARIOS..................................................................................................72

1.1Procedimiento de envío/recepción de formularios en http................721.15.2Método GET..............................................................................721.15.3Método HEAD............................................................................74

1.15.4Método POST.............................................................................741.15.5¿Cómo subir ficheros?...............................................................741.16Diferencias entre los diferentes de métodos...................................75

CONEXIONES A BASES DE DATOS............................................................................771.1Introducción......................................................................................771.17Tipos de conexiones a bases de datos............................................77

1.17.1Conexiones normales................................................................771.17.2Conexiones persistentes (ventajas e inconvenientes)..............77

1.18Conexión a una base de datos mySQL............................................781.18.1Uso de la conexión y selección de la base de datos.................801.18.2Cierre de la conexión................................................................801.18.3Obtención de metainformación de la base de datos: El

diccionario de datos............................................................................801.18.4Consultas: selección, borrado y modificación...........................821.19Manejo de errores...........................................................................851.20Gestión del acceso concurrente......................................................86

CAPITULO VI..............................................................................................87BIBLIOGRAFIA...................................................................................................87

CAPITULO VII..............................................................................88

APENDICE – RESUMEN HTML ..............................................................................88ELEMENTO......................................................................................................89DESCRIPCIÓN...................................................................................................89

Informatika saila 2

Page 3: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 3/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

CAPÍTULO I

Introducción

1.1 Historia de PHP

PHP es un lenguaje que permite la generación de contenido dinámico en unservidor web, por tanto se trata de un lenguaje como ASP, o JSP porejemplo.

Su nombre oficial es PHP que significa HyperText Preprocessor. Fuedesarrollado por Rasmus Lerdorf con una pequeña biblioteca de funcionespara añadir más capacidades a las páginas web.

Esta pequeña biblioteca inicial llamada PHP/FI y posteriormente PHP 2.0 enpoco tiempo gano mucha popularidad gracias a sus características. Esteconjunto de herramientas fue rehecho por Zeev Suraski y Andi Gutmans yse le llamo desde entonces PHP3, posteriormente se rediseño por completoel intérprete añadiéndole mas funciones y siendo más eficiente para dar

lugar al que conocemos como PHP4.

1.2 Características

PHP es un lenguaje de programación que posee características de C, de Perly Java, además su sintaxis es parecida a la de estos lenguajes lo que fácilitaa las personas que los conozcan su aprendizaje.

Informatika saila 3

Page 4: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 4/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

• Dispone de muchas bibliotecas para realizar todo tipo de tareas:• Preprocesamiento de ficheros.• Funciones de tratamiento de textos.• Generación dinámica de imágenes.•  Tratamiento de documentos XML• Soporte de múltiples protocolos de comunicaciones estándares: HTTP,

IMAP, FTP, LDAP, SNMP, POP, …• Su código fuente es abierto.• Es gratuito: no es necesario pagar por la obtención de este lenguaje.• Es multiplataforma lo que garantiza su portabilidad.• Consume pocos recursos haciendo que sea un lenguaje muy eficiente.

Informatika saila 4

Page 5: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 5/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

CAPITULO II

Instalación y configuración delintérprete PHP.Existen varios procedimientos de instalación y configuración de PHP enfunción de las necesidades que tengamos.

Estas necesidades serán disponer del intérprete de PHP como tal, es decircomo intérprete, tenerlo como CGI o bien el caso más habitual tenerlo comomódulo del servidor web Apache (u otros).

A continuación se explicarán cada de las diferentes formas de instalarlosegún el contexto de nuestra necesidad.

1.1 Instalación de PHP como intérprete

Para instalar PHP como intérprete vamos a seguir el procedimiento mas fácilde los existentes.

La secuencia de pasos a seguir es la siguiente (suponiendo que la versiónque vamos a utilizar es la 4.3.1):

• Descargar el codigo fuente comprimido desde:http://www.php.net/get/php-4.3.1.tar.gz/from/a/mirror una vez aquí deberemos elegir uno de los mirrors existentes.

• Copiar el fichero descargado en el directorio adecuado:

$ cp php-4.3.1.tar.gz /usr/local/src

• Descomprimir el fichero:

$ tar xvzf php-4.3.1.tar.gzphp-4.3.1/php-4.3.1/build/...

php-4.3.1/mkinstalldirsphp-4.3.1/configurephp-4.3.1/acconfig.h

Informatika saila 5

Page 6: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 6/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

• Configurar la compilación (usamos aquí las opciones de configuraciónestándar; si deseamos algo diferente o especial deberemos consultarla documentación de instalación para ver los detalles):

$ ./configure --prefix=/usr/local/bin/php-4.3.1loading cache ./config.cachechecking for Cygwin environment... (cached) nochecking for mingw32 environment... (cached) no...+----------------------------------------------------------+| License:|| This software is subject to the PHP License, available in| this distribution in the file LICENSE. By continuing this| installation process, you are bound by the terms of this| license agreement.| If you do not agree with the terms of this license, you| must abort the installation process at this point.|+----------------------------------------------------------+| *** NOTE ***|| The default for register_globals is now OFF!

|||| If your application relies on register_globals being ON,| you should explicitly set it to on in your php.ini file.|| Note that you are strongly encouraged to read|| http://www.php.net/manual/en/security.registerglobals.php| about the implications of having register_globals set to| on, and avoid using it if possible.|

+----------------------------------------------------------+Thank you for using PHP.

$

• Compilar el intérprete:

$ make/bin/sh libtool --silent --mode=link gcc -export-dynamic -g-O2 ext/ctype/ct

ype.lo ext/mysql/php_mysql.lo ext/mysql/libmysql/libmysql.loext/mysql/libmysql/errmsg.lo ext/mysql/libmysql/net.loext/mysql/libmysql/violite.lo ext/mysql/libm

Informatika saila 6

Page 7: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 7/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

.

.

.

$

• Instalar el intérprete (debe hacerse como usuario roothabitualmente):

# make install/bin/sh libtool --silent --mode=link gcc -g -O2 -prefer-non-pic -static -rpath /usr/local/src/php-4.3.1/libsext/ctype/ctype.lo ext/mysql/php_mysql.lo

ext/mysql/libmysql/libmysql.lo ext/mysql/libmysql/errmsg.loext/mysql/libmysql/net.lo...Installing PHP SAPI moduleInstalling shared extensions: /usr/local/php-4.3.1/lib/php/extensions/no-debug-non-zts-20020429/Installing PEAR environment: /usr/local/php-4.3.1/lib/php/[PEAR] Archive_Tar - already installed: 0.9[PEAR] Console_Getopt - already installed: 1.0

[PEAR] PEAR - already installed: 1.0b3[PEAR] DB - already installed: 1.3[PEAR] HTTP - already installed: 1.2[PEAR] Mail - already installed: 1.0.1[PEAR] Net_SMTP - already installed: 1.0[PEAR] Net_Socket - already installed: 1.0.1[PEAR] XML_Parser - already installed: 1.0[PEAR] XML_RPC - already installed: 1.0.4Installing build environment: /usr/local/php-4.3.1/lib/php/build/Installing header files: /usr/local/php-4.3.1/include/php/Installing helper programs: /usr/local/php-4.3.1/bin/program: phpizeprogram: php-configprogram: phpextdist

#

1.1.1Testear el intérprete de PHP

Para testear que el intérprete de PHP está funcionando correctamenterealizaremos una primera página PHP y se la pasaremos al intérprete:

Informatika saila 7

Page 8: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 8/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<?phpecho "Mi primera pagina PHP\n";

?>

Ahora procederemos a ejecutar esta página PHP (presuponemos que elintérprete de PHP está en el PATH del sistema):

$ php holamundo.phpContent-type: text/htmlX-Powered-By: PHP/4.3.1

Mi primera pagina PHP$

1.2 Instalación de PHP como módulo interno deApache

Para poder instalar PHP como módulo interno de Apache primerodeberemos tener instalado Apache para poder reconfigurarlo con el nuevomódulo.

Entonces la secuencia de pasos mínima a seguir es la siguiente:

• Descargar el codigo fuente comprimido desdehttp://www.php.net/get/php-4.3.1.tar.gz/from/a/mirror una vez aquí deberemos elegir uno de los mirrors existentes.

• Los siguentes dos pasos son iguales:

$ cp php-4.3.1.tar.gz /usr/local/src$ tar xvzf php-4.3.1.tar.gz.

.

.$

• A continuación es cuando vienen las diferencias, ya que hay volver areconfigurar apache sino lo habiamos hecho antes (para ello debemosdisponer del código fuente de Apache descargado y desempaquetadoen un directorio previamente):

Apache

$ cd /usr/local/src/apache-1.3.27

Informatika saila 8

Page 9: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 9/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

$ ./configure \--prefix=/usr/local/apache--enable-module=so

Configuring for Apache, Version 1.3.27+ using installation path layout: Apache (config.layout)Creating MakefileCreating Configuration.apaci in src...Creating Makefile in src/mainCreating Makefile in src/lib/expat-liteCreating Makefile in src/modules/standard$

Ahora procederemos a compilarlo:

$ make===> srcmake[1]: Entering directory `/usr/local/src/apache_1.3.27'make[2]: Entering directory`/usr/local/src/apache_1.3.27/src'..

.<=== src/supportmake[1]: Leaving directory `/usr/local/src/apache_1.3.27'<=== src$

 Y ahora procederemos a instalarlo:

$ make install

make[1]: Entering directory `/usr/local/src/apache_1.3.27'===> [mktree: Creating Apache installation tree]./src/helpers/mkdir.sh /usr/local/apache/bin...+--------------------------------------------------------+| You now have successfully built and installed the || Apache 1.3 HTTP server. To verify that Apache actually || works correctly you now should first check the || (initially created or preserved) configuration files || |

| /usr/local/apache/conf/httpd.conf| || and then you should be able to immediately fire up |

Informatika saila 9

Page 10: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 10/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

| Apache the first time by running: || || /usr/local/apache/bin/apachectl start

| || Thanks for using Apache. The Apache Group || http://www.apache.org/ |+--------------------------------------------------------+$

Ahora viene la segúnda parte de cómo configurar PHP con Apache ...

PHP

En primer lugar deberemos configurar PHP (aquí es donde añadimos soportede nuevas funcionalidades) :

$ ./configure \--with-apxs=/usr/local/apache/bin/apxs

loading cache ./config.cachechecking for Cygwin environment... (cached) nochecking for mingw32 environment... (cached) no...+----------------------------------------------------------+| License:|| This software is subject to the PHP License, available in| this distribution in the file LICENSE. By continuing this| installation process, you are bound by the terms of this| license agreement.| If you do not agree with the terms of this license, you| must abort the installation process at this point.|+----------------------------------------------------------+| *** NOTE ***|| The default for register_globals is now OFF!|||| If your application relies on register_globals being ON,| you should explicitly set it to on in your php.ini file.|| Note that you are strongly encouraged to read|| http://www.php.net/manual/en/security.registerglobals.php| about the implications of having register_globals set to| on, and avoid using it if possible.|+----------------------------------------------------------+

Informatika saila 10

Page 11: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 11/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Thank you for using PHP.

$

Ahora nos toca compilar el módulo PHP.Pero debemos tener cuidado en unaspecto: si por alguna razón necesitamos compilar PHP varias veces, antesde hacer cada vez debemos ejecutar:

# make clean..

#

ya que si no fallará la compilacion.

El proceso de compilacion sería:

$ make/bin/sh libtool --silent --mode=link gcc -export-dynamic -g-O2 ext/ctype/ct

ype.lo ext/mysql/php_mysql.lo ext/mysql/libmysql/libmysql.loext/mysql/libmysql/errmsg.lo ext/mysql/libmysql/net.loext/mysql/libmysql/violite.lo ext/mysql/libm...$

 Y ahora el proceso de instalación seria el siguiente (de nuevo como usuario

root):

# make installInstalling PHP CLI binary: /usr/local/php-4.3.1/bin/Installing PHP SAPI module[activating module `php4' in/usr/local/apache/conf/httpd.conf]...program: phpize

program: php-configprogram: phpextdist

#

Informatika saila 11

Page 12: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 12/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Ahora debemos copiar el fichero de configuración (llamado php.ini) de ladistribucion (la plantilla de base se llama php.ini-dist) al directorio lib de PHPy echar una ojeada por si queremos modificar alguno de los parámetros quevienen establecidos por defecto.

# cp php.ini-dist /usr/local/php-4.3.1/lib/php.ini# vi /usr/local/php-4.3.1/lib/php.ini

Una vez hecho esto debemos terminar de configurar Apache.

ApacheDeberemos configurar apache para que realice las siguientes tareas:

• Configurar apache para que cargue el módulo de PHP.• Configurar apache para que reconozca el nuevo tipo de ficheros:

.php y los asocie con el módulo de PHP para interpretarlos.

Para realizar estas tareas deberemos modificar fichero de configuraciónprincipal de Apache llamado httpd.conf y añadir las dos líneas siguientes:

LoadModule php4_module libexec/libphp4.soAddType application/x-httpd-php .php

1.2.1Testear el módulo PHP

Para testear que el módulo PHP está funcionando correctamenteañadiremos una página, que llamaremos holamundo.php, para ver sifunciona:

holamundo.php

<html><head></head><body><?php

echo "Mi primera pagina PHP";?></body>

</html>

Informatika saila 12

Page 13: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 13/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Si utilizamos un navegador y accedemos a la página holamundo.phpveriamos lo siguiente:

Mi primera pagina PHP

Esto quiere decir que ya está operativo.

En todo caso, la opción más recomendable es usar directamente la versiónprecompildada y pre-empaquetada de nuestra distribución de Linux. Esonos asegurará que ha sido testeada ampliamente tanto por los creadores dela distribución como por los miles de usuarios de la misma.

Como ventaja adicional, nos aseguramos de que los posibles problemas quesurjan con la versión de la distribución (así como los agujeros de seguridadque se detecten y corrijan) serán resueltos con las actualizaciones quepublicará nuestra distribucion.

Sólo en caso de que la versión del intérprete tenga deshabilitada algunaopción que nos sea necesaria merecería la pena la compilación desde cerodel intérprete como se ha mostrado en los puntos anteriores.

Informatika saila 13

Page 14: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 14/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Capitulo III

Inclusión de código PHP enpáginas HTML

1.1 Introducción

Hay varias formas de incluir código PHP en las páginas:• Utilizando las etiquetas <?php y ?> (es el método recomendado)• Empleando las etiquetas cortas o “short tags” <? y ?> . Para poder

utilizar éstas debe estar habilitada la opción “short_open_tags” en elfichero de configuración php.ini .

• Con la etiqueta <SCRIPT Language=”php”> y </SCRIPT> de HTML.• Con las etiquetas <% y %>. Para poder utilizar éstas debe estar

habilitada la opción “asp_tags” en el fichero de configuración php.ini.(desaconsejado).

Realicemos un ejemplo con cada una de estas formas de incluir código PHP.

Ejemplo 1: Etiquetas <?php y ?>.

Crearemos una página llamada index.php y en ésta incluiremos el siguientecódigo:

<html><head>

<title>Página del curso de PHP

</title>

<head><body>

<br><br><center>

<font face="verdana" size=2><?php

echo "Mi primera página php"?></center>

</body></html>

Lo que veremos en el navegador será lo siguiente:

Informatika saila 14

Page 15: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 15/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Ejemplo 2: Etiquetas <? y ?>.

Lo primero que debemos realizar es comprobar si el fichero php.ini tienehabilitada la opción de “short_open_tags”.

Lo que vamos a realizar es en primer lugar la habilitacion de dicha opción yejecución de la página php para ver que ocurre. Para realizar estastareas es necesario reiniciar el servidor para que cargue de nuevoel módulo y este lea el fichero de configuración (siempre y cuandose haya instalado como módulo del servidor).

Entonces el primer paso será modificar el php.ini para disponer de los tags:

; Allow the <? tag. Otherwise, only <?php and <script> tags; are recognized.

short_open_tag = Off ← On

posteriormente reiniciamos el servidor de páginas:

# /etc/init.d/apache restartReloading apache modules.#

y modificamos la página inicial con los nuevos tags:

<html><head>

<title>Pagina del curso de PHP

</title><head><body>

Informatika saila 15

Page 16: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 16/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<br><br><center>

<font face="verdana" size=2>   <?

echo "Mi primera pagina php"  ?> 

</center></body>

</html>

y obtendríamos la misma página que en el caso anterior.

Ejemplo 3: Etiquetas <SCRIPTlanguage=”php”> y </SCRIPT>.

Reescribimos la misma página con los nuevos tags.

<html><head>

<title>Pagina del curso de PHP

</title><head><body>

<br><br><center>

<font face="verdana" size=2>   <SCRIPT language="php"> 

echo "Mi primera pagina php"   </SCRIPT> 

</center></body>

</html>

y obtendríamos la misma página que en el caso anterior.

Ejemplo 4: Etiquetas ASP <% y %>.

Al igual que en el ejemplo 2, es necesario modificar el fichero php.ini yhabilitar la opción “asp_tags” y posteriormente reiniciar el servidor.

Entonces el primer paso será modificar el php.ini para disponer de los tags:

; Allow ASP-style <% %> tags.

asp_tags = Off ← On

posteriormente reiniciamos el servidor de páginas:

Informatika saila 16

Page 17: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 17/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

# /etc/init.d/apache restartReloading apache modules.

#

y modificamos la página inicial con los nuevos tags:

<html><head>

<title>Pagina del curso de PHP

</title><head>

<body><br><br><center>

<font face="verdana" size=2><%

echo "Mi primera pagina php"%></center>

</body></html>

y obtendríamos la misma página que en el caso anterior.

1.3 Configuración del intérprete

El intérprete de PHP se configura a través del fichero php.ini (php3.ini en laversión PHP3) como ya se ha mencionado anteriormente.

Este fichero es leído cada vez que el intérprete se pone enfuncionamiento. Si se ha instalado como módulo del servidor solose lee en el momento de iniciar el servidor.

El fichero de configuración contiene directivas que controlan los siguientesaspectos:

• Opciones del Lenguaje.• Limitación de recursos.• Manipulación de errores y registro de accesos.• Manipulación de datos.• PATHs y directorios.• Extensiones dinámicas.• Configuración especifica de módulos.

Otros detalle importante que pueden ahorrar múltiples problemas es laubicación del fichero de configuración de PHP.

Informatika saila 17

Page 18: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 18/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

La secuencia de búsqueda es la que se indica a continuación:

• Directorio de trabajo donde reside el intérprete.• En el PATH indicado por la variable de entorno PHPRC• En el directorio donde se compilo el intérprete o en su defecto, en el

directorio que se especifico durante la fase de configuración delintérprete.

Otro aspecto relacionado con la sintaxis es que PHP es sensible alas mayúsculas y minúsculas, o dicho en jerga técnica “casesensitive”.

Informatika saila 18

Page 19: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 19/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

CAPITULO IV

Lenguaje PHP

1.1 Sintaxis básica

En PHP al igual que otros lenguajes interpretados no hace falta “declarar”las variables ni el tipo de datos de las mismas.

En PHP cuando se utiliza una variable por primera vez “automáticamente esdeclarada” y su tipo queda determinado por la clase de información quecontenga.

Un ejemplo de este proceso especial de declaración de variables seria elsiguiente:

$Edad =120 ← Se ha declarado la variable Edad de tipo enteropor tener el contenido inicial de 120 que es un

valor entero.

  Como se puede ver también la asignación se rea-liza con el símbolo “=”

1.4 Variables

En PHP todos los nombres de variables comienzan por el símbolo “$” estoindica que se trata de una variable.

Las normas de creación de identificadores de variables son:

• El primer carácter debe ser el símbolo “$”• El segúndo carácter debe ser una letra o el símbolo “_”.•  Y a continuación cualquier secuencia de letras, dígitos o símbolos “_”.

Un posible expresión regular que define esto sería:

$[letra|_]+[letra|digito|_]*

Ejemplos de variables que siguen las normas serían:

Informatika saila 19

Page 20: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 20/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

$Peso_mas_Peso_igual_A_pesado

$__MuchMasPeso

 Y Ejemplos de variables que no siguen las normas serían:

$!peso$+_peso

En estos casos mostrara un mensaje como este:

Parse error: parse error, expecting `T_VARIABLE' or `'$'' in/var/www/index.php on line 13

1.4.1Variables de Variables

PHP tiene la posibilidad de incorporar variables especiales donde elcontenido de estas variables se interpretan como el nombre de otrasvariables (siempre que dicho contenido sea un identificador válido denombre de variable).

Esto se puede llevar a cabo de la manera siguiente:

$Edad = ’Peso’;

Ahora si quisiésemos inicializar el contenido de la variables $Pesotendríamos dos formas posibles de hacerlo:

• Usando directamente la variable final:

$Peso = 85;

• Usando variables de variables. Para ello basta con usar dos '$' en elnombre de la variable de variables:

Informatika saila 20

Page 21: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 21/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

$$Edad = 85;

Esto puede resultar especialmente útil en algunas ocasiones.

Un ejemplo completo de este tipo de variables es el siguiente:

<html><head>

<title>Pagina del curso de PHP

</title>

<head><body>

<br><br><center>

<font face="verdana" size=2><?php

$VariabledeVariable='Peso';$$VariabledeVariable=85;echo $Peso;echo "<br>";$_Peso=10;$__MasPeso=100;

$___MuchoMasPeso=1000;echo "_Peso: ";echo $_Peso;echo "<br>";echo "__MasPeso: ";echo $__MasPeso;echo "<br>";echo "___MuchoMasPeso: ";echo $___MuchoMasPeso;echo "<br>";echo "Mi primera pagina php"

?></center>

</center></body>

</html>

Cuyo resultado se puede ver en la siguiente figura:

Informatika saila 21

Page 22: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 22/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.4.2Ambito de las variables

Éste es otro aspecto que es importante tener en cuenta de cara a nollevarse sorpresas en el contenido de las variables.

En PHP existen dos tipos de variables:

• Locales: que es cuando una variables se “crea” dentro del ámbito deuna función, es decir sólo es accesible dentro de la función. Su valor sólose conserva dentro de la función, cuando la función ha terminado lavariable desaparece.

• Globales: cuando no esta dentro de ninguna función. Su valorpermanece accesible para todas las variabless del script, pero no dentrode una función.

Para que una función pueda acceder a una variable global en principio sólocabria referenciarla, pero existe un problema. Como el ámbito es local lavariable referenciada no tendría efecto sino que se crearía una nueva conese nombre (recuerde que en PHP no existe la declaración de variables yque se crean automáticamente la primera vez que se usan). Para evitar estodebemos etiquetar la variable con la palabra reservada global y entoncesno habría ningún problema:

$variable_global1 = 'esta es una variable global';$variable_global2 = 'esta es otra variable global';

function mi_funcion () {global $variable_global2; // Esta si es global

// Lo siguiente modifica la varible local// $variable_global1$variable_global1 = 'nuevo valor local';

// Esto modifica la variable global.$variable_global2 = 'nuevo valor global';

....}

Informatika saila 22

Page 23: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 23/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.4.3Variables Estáticas

En el punto anterior se ha explicado que es una variable local o global, pero

que ocurre si queremos que el valor de una variable local no pierda su valorcuando la función finaliza.

La solución es utilizar una palabra reservada: static que le indique a PHPque debe permanecer su valor entre invocaciones de la función.

1.4.4Variables Predefinidas

Existe un conjunto de variables predefinidas de PHP (sólo si hemoshabilitado la opción “register_globals” a partir de la versión 4.3.x, que vienedeshabilitado por defecto) que se pueden ver en la siguiente figura. En caso

de no tener register_globals activado (recomendado), se pueden acceder aesos mismos valores usando las variables superglobales que se indican ennegrita:

Variable Contenido$argv

$_ENV['argv']Array de argumentos pasados en la ejecucióndel script.Requiere que la directiva register_argc_argv esté habilitada.

$argc$_ENV['argv']

Número de argumentos pasados en la ejecucióndel scriptRequiere que la directiva register_argc_argv 

esté habilitada.$PHP_SELF

$_SERVER['PHP_SELF']

Nombre del script que se está ejecutando. SiPHP está instalado en modo CGI, aparece con elPATH del intérprete junto con el nombrecompleto desde el directorio raíz del servidorweb. Si se desea evitar se puede poner basename($PHP_SELF) .

$HTTP_COOKIE_VARS$_COOKIE

Array asociativo (o en terminología Perl HASH )de pares [Clave,Valor] pasados a través de lasCOOKIES.

$HTTP_GET_VARS

$_GET

Array asociativo (o en terminología Perl HASH)

de pares [Clave,Valor] pasados usando elmétodo GET.$HTTP_POST_VARS

$_POSTArray asociativo (o en terminologia Perl HASH )de pares [Clave,Valor] pasados usando elmétodo POST.

$HTTP_POST_FILES$_FILES

Array asociativo (o en terminología Perl HASH )de pares [Clave,Valor] pasados usando elmétodo POST y que contiene información de losficheros recibidos.

$HTTP_ENV_VARS$_ENV

Array asociativo (o en terminología Perl HASH )de pares [Clave,Valor] de las variables deentorno.

$HTTP_SERVER_VARS$_SERVER

Array asociativo ( o en terminología Perl HASH )de pares [Clave,Valor] de valores definidos porel servidor web.

Informatika saila 23

Page 24: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 24/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

$HTTP_SESSION_VARS$_SESSION

Array asociativo ( o en terminología Perl HASH )de pares [Clave,Valor] de los valores asociados ala sesión.

Existe por otra parte una serie de variables que se pasan a PHP a través delservidor y que resultan muy útiles y a la vez son muy importantes::

Variable Contenido$SERVER_NAME

$_SERVER['SERVER_NAME']Nombre del servidor que estaproporcionando el servicio.

$SERVER_SOFTWARE$_SERVER['SERVER_SOFTWARE'

]

Identificador del software servidorproporcionado en las cabeceras derespuesta.

$DOCUMENT_ROOT$_SERVER['DOCUMENT_ROOT']

Directorio raíz de los documentos delservidor.

$REMOTE_ADDR$_SERVER['REMOTE_ADDR']

Dirección remota (cliente) desde laque se produce la petición.

1.5 Tipos de datos

PHP soporta dos tipos diferentes de datos:

• Simples: son los más sencillos y conocidos → enteros, reales, cadenasde caracteres, etc.

• Complejos: soportan estructuras de información más complejas,registros, clases, arrays de arrays, hashes, etc. …

1.5.1Simples

Los diferentes tipos de datos que soporta PHP son:

1. Integer: Números enteros.

2. Double: Números en coma flotante.3. String: Cadenas de caracteres.4. Boolean: Valor lógico →Valores TRUE | FALSE.5. Array: Tipo especial de colección de valores.6. Object: Tipo especial de dato complejo.

Nota: El tipo de datos boolean no está definido en la sintaxis del lenguajePHP en la versión 4.x de forma explícita, pero funciona correctamentecuando asignamos el tipo de constantes que se han definido anteriormente.Además se puede obtener el tipo de dato con gettype() o bien cambiarlocon settype(), y en esta última función si que esta definido este tipo de

dato.

Informatika saila 24

Page 25: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 25/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.5.2Enteros

Este tipo de variables permite almacenar valores de tipo entero

habitualmente aunque dependiendo de la plataforma el espacio ocupadosuele ser de 32 bits, lo que implica que el valor máximo será del orden de 2mil millones (en ambos sentidos: positivos y negativos).

Si queremos indicar variables de tipo entero pero en notación octal ohexadecimal simplemente tenemos que escribir un prefijo concreto:

• Hexadecimales: 0xnnnn – donde nnnn es un numero hexadecimalcorrecto.

• Octales: 0nnnn – donde nnnn es un numero octal correcto.

Un ejemplo de uso de este tipo de variable es el siguiente: [entero.php]

<html><head>

<title>Ejemplo variables enteras

</title><head><body><br><br><center>

<?php$PrecioManzanas = 10;$PrecioPeras = 20;$Suma = $PrecioManzanas + $PrecioPeras;$PrecioHexManzanas = 0xA;$PrecioOctPeras = 024;$SumaMixto = $PrecioHexManzanas + $PrecioOctPeras;echo "$PrecioManzanas + $PrecioPeras = $Suma ";echo "<BR>";echo "$PrecioHexManzanas + $PrecioOctPeras= $SumaMixto";

?></center><br>

<br></body>

</html>

El resultado seria el siguiente:

Informatika saila 25

Page 26: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 26/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.5.3Coma flotante

Los valores en coma flotante se pueden especificar de dos formasdiferentes:

• Mediante la notacion del punto decimal.• O en notacion cientifica.

Hay que tener cuidado al manejar numeros de diferentes

magnitudes ya que se puede perder el de menor precision al norepresentar una cantidad significativa frente al otro.

Un ejemplo de este tipo de dato es el siguiente:

<html><head><title>Ejemplo variables flotantes

</title>

<head><body><br><br><center><font face="tahoma"><?php$PrecioTxiki = 10;$PrecioHandi = 20e20;$SumaPrecios = $PrecioTxiki + $PrecioHandi;echo "($PrecioTxiki)+($PrecioHandi)=$SumaPrecios";echo "<br>";echo "<br>";

echo "CUIDADO!!Error por diferencia de magnitudes.";?></font>

</center>

Informatika saila 26

Page 27: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 27/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<br><br>

</body>

</html>

1.5.4Booleanos

Una variable de este tipo es la que admite dos valores: True o False, yaestén escritos en minusculas o mayusculas. Ademas no sólo permiten laasignacion de estos valores sino del resultado de expresiones lógicas. Elvalor False esta asociado al valor numerico 0 y el True a un valor numericodistinto de 0.

Un ejemplo de este tipo de dato es el siguiente:

<html><head>

<title>Ejemplo variables booleanas

</title><head><body>

<br><br>

<center><font face="tahoma"><?php$VbleBool_TRUE = True;$VbleBool_FALSE = False;$VbleBool_Expresiones = (10-2 == 8);echo "Variable Booleana con constante =

TRUE -> $VbleBool_TRUE";echo "<br>";echo "Variable Booleana con constante =

FALSE -> $VbleBool_FALSE";echo "<br>";echo "Variable Booleana con Expresiones

-> $VbleBool_Expresiones";?></font>

</center><br><br>

</body></html>

1.5.5Cadenas de caracteres

Las cadenas de caracteres en PHP se pueden delimitar mediante comillassimples o bien mediante comillas dobles. Si se necesita explicitar dentro de

Informatika saila 27

Page 28: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 28/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

una cadena unas comillas se utilizaran como separadores las comillas delotro tipo.

Es decir:

$MITexto = " 'hola'";$MiTexto = ' "hola" ';

pero estarian mal las siguientes:

$MITexto = " 'hola" ';$MiTexto = ' "hola' ";

L a diferencia estriba en que dentro de una cadena de caracteres limitadapor comillas dobles si utilizamos variables éstas son reemplazadas por suvalor (interpolación de variables), mientras que nada de esto ocurre en elcaso de las comillas simples.

Un ejemplo de esto es lo siguiente:

<html>

<head><title>

Ejemplo variables cadenas de caracteres</title>

<head><body>

<br><br><center>

<font face="tahoma"><?php

$Cadena = "Hoy quiero estar flex";$Edad = 150;

echo '$Cadena y $Edad';echo "<br>";echo "$Cadena y $Edad";

?></font>

</center><br><br>

</body></html>

 Y el resultado es el siguiente:

Informatika saila 28

Page 29: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 29/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

A su vez la utilizacion de comillas simples impide la utilizacion desecuencias como: \n, \t, etc …

1.5.6Tipos de datos Complejos

Ahora entramos en la definición de tipos de datos más complejos que losvistos hasta ahora. Esto implica una gestion más compleja pero a su vezmás rica.

Existen basicamente dos tipos de datos complejos en PHP: los arrays y lasclases, aunque éste último podria perfectamente englobar al primero.

1.5.7Arrays

Un array como en casi cualquier lenguaje se define como una estructuradonde la informacion que está dentro de la estructura comparte el mismonombre como referencia de la estructura de datos, facilitando así su uso.

Al igual que en el resto de los tipos de datos, la declaracion-definicion esimplicita y lo mejor para entender este tipo de datos es mediante un

ejemplo.

En este ejemplo utilizaremos un array para almacenar la ficha personal deuna persona y posteriormente la visualizaremos.

<html><head>

<title>Ejemplo variables de tipo array

</title><head>

<body> <br><br><center>

Informatika saila 29

Page 30: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 30/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<font face="tahoma"><?php

$Ficha[0]="Jose Luis";

$Ficha[1]="Flores Barroso";$Ficha[2]=29;$Ficha[3]=1973;$Ficha[4]="85 Kgs.";$Ficha[5]="M.U.";

echo "Nombre: $Ficha[0]";echo "<br>";echo "Apellido: $Ficha[1]";echo "<br>";echo "Edad: $Ficha[2]";echo "<br>";echo "Año Nacimiento: $Ficha[3]";

echo "<br>";echo "Peso: $Ficha[4]";echo "<br>";echo "Empresa: $Ficha[5]";

?></font>

</center><br><br>

</body></html>

Entre los detalles importantes que posee PHP esta el hecho de que sideseamos añadir un elemento al final del array basta con omitir el subíndicey PHP se encarga de calcular uno que sea superior al máximo existente einsertar el valor en dicha posición:

$Ficha[]=”1 Agosto de 1973”

Otro detalle interesante son los arrays asociativos, este tipo de arrays muyutilizados en Perl permiten que la indexacion del array no sea en base a

indices numéricos sino precisamente a informacion que tambien deseamosalmacenar.

Para entender mejor este nuevo concepto realicemos otro ejemplo de arraysasociativos.

<html><head>

<title>Ejemplo variables de tipo array

</title>

<head><body>

<br>

Informatika saila 30

Page 31: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 31/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<br><center><font face="tahoma">

<?php$Ficha = array ('Nombre' => 'Jose Luis',

'Apellidos' => 'Flores Barroso');$Ficha['Peso'] = '85 Kg';

echo $Ficha['Nombre'];echo "<br>";echo $Ficha['Apellidos'];echo "<br>";echo $Ficha['Peso'];echo "<br>";

?></font>

</center><br><br>

</body></html>

1.5.8Funciones de gestión de tipos de datos

Estas funciones de gestion de tipos permiten realizar ciertas operacionesbasicas con los tipos de datos como:

Redefinir un tipo de dato. Mostrar el tipo de dato. Comprobar si una variable tiene asignado algun valor. Comprobar si es un tipo de dato particular. Conversion de tipos.

Informatika saila 31

Page 32: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 32/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

La lista de funciones de gestion de tipos de datos es:

Nombre Descripcion Ejemplo

gettype(...)

Obtiene el tipo dedato de la variable

gettype($Edad)

settype(..., Tipo) Cambia el tipo dedatos de la variableindicada por el nuevotipo. Los tipos dedatos destino puedenser: integer, boolean,array, object.

settype($Edad,’string’)

boolean is_array(...) Devuelve true si la

variable es un array.Falso en casocontrario.

is_Array($Edad)

boolean is_bool(...) Devuelve true si lavariable es unbooleano. Falso encaso contrario.

is_bool($Edad)

boolean is_int(...) Devuelve true si lavariable es entero.Falso en casocontrario.

is_int($Edad)

boolean is_long(...) Devuelve true si lavariable es un long.Falso en casocontrario.

is_long($Edad)

boolean is_integer(...) Devuelve true si lavariable es entero.Falso en casocontrario.

is_integer($Edad)

boolean is_numeric(...) Devuelve true si lavariable es unnumerica. Falso encaso contrario.

is_numeric($Edad)

boolean is_object(...) Devuelve true si lavariable es un objeto.Falso en casocontrario.

is_object($Edad)

boolean is_double(...) Devuelve true si lavariable es undouble. Falso en casocontrario.

is_double($Edad)

boolean is_real(...) Devuelve true si lavariable es un real.Falso en casocontrario.

is_real($Edad)

boolean is_float(...) Devuelve true si lavariable es un float.Falso en caso

is_float($Edad)

Informatika saila 32

Page 33: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 33/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

contrario.boolean Is_string(...) Devuelve true si la

variable es un string.

Falso en casocontrario.

is_string($Edad)

1.6 Constantes

Una constante en PHP se define de la siguiente forma:

Define ( “Nombre_Constante” , Valor )

Un ejemplo de definicion de constante es el siguiente:

define(“PI”, 3.141592 )

PHP al igual que otros lenguajes posee una serie de constante yapredefinidas que nos pueden resultar especialmente utiles.

Constante Contenido__FILE__ Nombre del fichero que esta siendo interpretado.__LINE__ Numero de linea que esta siendo interpretada.

PHP_VERSION

Cadena indicando la version del intérprete que se estautilizando.

PHP_OS Cadena indicando el nombre del sistema operativo en queesta siendo ejecutado.

TRUE Verdadero.FALSE Falso.

E_ERROR Error critico sin recuperacion posible.E_WARNING Condicion de error que no impide que se continue

interpretando.E_PARSE Error de sintaxis. Se finaliza la ejecucion.E_NOTICE Evento que no detiene la ejecucion.

E_ALL Conjunto de todos los errores E_* .

Vamos a relizar un ejemplo ilustrando las constantes definidas por el usuarioy las predefinidas.

Incluiremos solo la parte de la página activa que cambia

<?phpdefine('EDAD',29);echo "Mi edad es :”,EDAD;echo "<br>";

Informatika saila 33

Page 34: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 34/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

echo "S.O. :",PHP_OS;echo "<br>";echo "Version :",PHP_VERSION;

echo "<br>";echo "Fichero :",__FILE__;echo "<br>";echo "Linea :",__LINE__;

?>

1.7 Operadores

Presentaremos a continuación y al igual que en otros lenguajes todos losoperadores que posee y las reglas de precedencia:

• Operadores Aritmeticos:

Operador

Descripcion Ejemplo

+ Suma de dos numeros 5+2- Resta de dos numeros 1-3* Multiplicacion de dos numeros 2*3/ Division de dos numeros 7/6% Módulo de dos numeros enteros 7 % 5

++ Incremento:

PreIncrementoPostIncremento

++$Sueldo

$Sueldo++-- Decremento:

PreDecrementoPostDecremento

--$Edad$Edad--

• Operadores de Asignacion: Esta es la tabla principal pero tambienentrarian los operadores a nivel de bit.

Operador

Descripcion Ejemplo

= Asignacion de un valor a una variable $Sueldo=7+= Equivale a $Variable=$Variable+Valor $Sueldo+=7-= Equivale a $Variable=$Variable-Valor $Sueldo-=5*= Equivale a $Variable=$Variable*Valor $Sueldo*=2/= Equivale a $Variable=$Variable/Valor $Sueldo/=3.= Equivale a $Variable=$Variable.Cadena $Nombre.=”Perez”

• Operadores de Comparacion:

Operador

Descripcion Ejemplo

== Cierto si son iguales. Falso si no lo son. $Edad1==$Fecha

=== Cierto si son iguales y son del mismotipo. Falso si no lo son.

$Edad1===$Edad2

!= Cierto si son distintos. Falso si no lo $Edad1!=$Fecha

Informatika saila 34

Page 35: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 35/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

son.!== Cierto si son distintos en valor y son del

mismo tipo. Falso si no lo son.$Edad1!==$Edad2

< Cierto si la expresion izquierda esmenor que la derecha.

$Edad1<$Edad2

> Cierto si la expresion derecha es mayorque la derecha.

$Edad1>$Edad2

<= Cierto si la expresion izquierda esmenor o igual que la derecha.

$Edad1<=$Edad2

>= Cierto si la expresion derecha es mayoro igual que la derecha.

$Edad1>=$Edad2

• Operadores Logicos:

Operador Descripcion Ejemplo

And Cierto si la expresion izquierda yderecha es TRUE

$a > $b and $a > $c

Or Cierto si la expresion izquierda o laderecha es TRUE

$a > $b or $a > $c

Xor Cierto si la expresionessimultaneamente poseen valoresdiferentes

$a > $b xor $a > $c

! Negacion de la expresion. Sioriginalmente es false entonces es

 TRUE y FALSE en caso contrario

! $a > $c

&& Igual que AND $a > $b && $a > $c|| Igual que OR $a > $b || $a > $c

• Operadores de bits:

Operador

Descripcion Ejemplo

& Operación AND a nivel de bit entre losvalores de la izquierda y derecha.

$A & $B

| Operación OR a nivel de bit entre losvalores de la izquierda y derecha.

$A | $B

^ Operación XOR a nivel de bit entre losvalores de la izquierda y derecha. $A ^ $B

~ Operación NOT con el valor de laderecha.

~ $B

<< Desplazamiento a nivel de bit a laizquierda tantas posiciones como se leindican en la expresion de la derecha.

$A << $B

>> Desplazamiento a nivel de bit a laderecha tantas posiciones como se leindican en la expresion de la izquierda.

$A >> $B

Otros operadores:

Informatika saila 35

Page 36: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 36/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Operador

Descripcion Ejemplo

. Concatenacion de cadenas de

caracteres

$Nombre . $Apellido

‘ Ejecuta desde el SO el comando quehaya entre estas comillas

‘ls –al’

@ Control de errores: ubicado antes deuna instrucción si genera cualquiererror este es ignorado y se almacenaesta informacion en $php_error_msg( siempre y cuando este activada ladirectiva track_errors ) . Este operadores peligrosa ya que anula los mensajesde error por lo que una aplicación

podria detenerse sin saber nosotros aque se ha debido.

$Asesino = @TRUU

• Precendencia de operadores

Tabla de precedenciaor xor and

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

&&|^&

== != === !==< <= > >=

+ - ./ * %

! ~ ++ - (cast)

De esta forma tenemos ya definidos el conjunto de operadores y las reglas

de precedencia de operadores como en todos los lenguajes.

1.8 Estructuras de control

Como en todos los lenguajes existen una serie de estructuras de controlflujo de un programa, procederemos por tanto a definir todas y cada una delas estructuras de control.

1.8.1“If” vs “?:”

Esta es la estructura clasica de control de flujo.

Sintaxis simple ( Una sola instrucción dentro del bloque de instrucciones ).

Informatika saila 36

Page 37: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 37/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Con sintaxis simple queremos denotar que no es necesario explicitar lossimbolos de apertura y cierre de llaves tipicos que engloban un bloque deinstrucciones.

if (condicion) Instrucción;

else Instrucción; ← Opcional

Ejemplo

<html><head>

<title>Ejemplo de sintaxis simple

</title></head><body>

<?php$Edad = 29;if ( $Edad == 29 )

echo “<center><br>Hay el arroz!</center>?>

</body></html>

Sintaxis compleja ( Mas de una instrucción dentro del bloque deinstrucciones ).

if (condicion) {Instrucción-1;...

Instrucción-N;} else { ← Opcional al igual que antes

Instrucción-11;...Instrucción-1N;

}

Ejemplo

<html>

Informatika saila 37

Page 38: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 38/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<head><title>

Ejemplo de sintaxis compleja

</title></head><body>

<?php$Edad = 29;if ( $Edad == 29 ) {

echo “<center><br>Hay el arroz!”echo “<br>”echo “Los años son los años !!<br>”

}?>

</body></html>

Sintaxis instrucción if con else anidado: Modelo

if (condicion) {Instrucción-11;...

Instrucción-1N;} else {

if ( condicion ) {Instrucción-21;...Instrucción-2M;

} else {Instrucción-31;..

.Instrucción-3M;

}}

Podemos tener algo alternativo pero equivalente a este:

if (condicion) {Instrucción-11;

.

.

.

Informatika saila 38

Page 39: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 39/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Instrucción-1N;

} elsif ( condicion ) {Instrucción-21;...Instrucción-2M;

} else {Instrucción-31;...Instrucción-3M;

}}

Ejemplo

<html><head>

<title>Ejemplo de sintaxis simple

</title>

</head><body>

<?php$Edad = 30;if ( $Edad == 29 ) {

echo “<center><br>Hay el arroz!”echo “<br>”echo “Los años son los años !!<br>”

} elsif ( $Edad == 30 ) {echo “<center><br>El pisito”echo “<br>”echo “Los años son los años !!<br>”

}?>

</body></html>

1.8.2For

Esla estructura clasica de repeticion de un bloque de instrucciones mientrasse cumpla una condicion preestablecida.

Sintaxis

Informatika saila 39

Page 40: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 40/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

for ( expresion-1; condicion; expresion-2) {Instrucción-1;

.

.

.}

Las tres expresiones entre parentesis son opcionales por lo que en caso deno ponerlas se deben respetar los simbolos “;” existentes.

 Y al igual que en el caso del if si solo existe una sola instrucción no es

necesario poner las llaves pero es una costumbre muy buena.

Ejemplo

<html><head>

<title>Ejemplo de for

</title></head><body>

<center>Tabla de multiplicar del 10<br><?php

for($i=1;$i<=10;$i++) {echo “10 * $i = “, $i*10 ,”<br>

}?>

</center></body>

</html>

1.8.3Foreach

Ahora viene otra variante del for ( solo a partir de la version 4 de PHP ) quepermite el recorrido de elementos complejos (por ejemplo arrays) de unaforma sencilla.

Sintaxis

foreach ( NombreElemento as NombreVariable ) {Instrucción-1;..

Informatika saila 40

Page 41: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 41/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

.Instrucción-N;

}

Ejemplo

<html><head>

<title>Ejemplo de for

</title></head>

<body><center>

Tabla de capitales de provincia<br><?php

$Ciudad[0]=”Vitoria-Gasteiz”;$Ciudad[1]=”Bilbao”;$Ciudad[2]=”San Sebastian”;foreach ( $Ciudad as $Nombre )

echo “<br> Mi ciudad es $Nombre”;}

?>

</center></body>

</html>

Existen tambien otro tipo de arrays ya especificados anteriormenteexplicados llamados arrays asociativos cuyo recorrido se agiliza mucho siutilizamos este tipo de estructura de control.

Sintaxis

foreach (NombreArray as Clave => Valor ){

Instrucción-1;...Instrucción-N;

}

Ejemplo

Informatika saila 41

Page 42: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 42/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<html><head>

<title>Ejemplo de for

</title></head><body>

<center><br><?php

$Ficha =array ('Nombre' => 'Jose Luis',

'Apellidos' => 'Flores Barroso');

foreach($Ficha as $Clave=>$Valor) {echo “Campo:”,$Clave;echo “<BR>”;echo “Valor:”,$Valor;echo “<BR>”;

}?>

</center></body>

</html>

1.8.4While

Esta es la isntruccion clasica de iteracion bajo el cumplimiento de unacondicion.

Sintaxis

while ( condicion ) {Instrucción-1;.

.

.Instrucción-N;

}

Ejemplo

Vamos a realizar la misma tabla de multiplicar del ejemplo del for pero conla instrucción while.

<html><head>

Informatika saila 42

Page 43: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 43/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<title>Ejemplo de while

</title>

</head><body>

<center>Tabla de multiplicar del 10<br><?php

$i=1;while($i <=10) {

echo “10 * $i = “, $i*10 ,”<br>$i++;

}?>

</center></body>

</html>

1.8.5Do … while

Esta es una instrucción parecida a la anterior con la diferencia de queprimero se ejecuta una tarea y despues se comprueba una condicion.

Sintaxis

while ( condicion ) {Instrucción-1;...Instrucción-N;

}

Vamos a realizar la misma tabla de multiplicar del ejemplo del for pero conla instrucción while.

<html><head>

<title>Ejemplo de while

</title></head><body>

<center>

Tabla de multiplicar del 10<br><?php

Informatika saila 43

Page 44: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 44/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

$i=1;do {

echo “10 * $i = “, $i*10 ,”<br>

$i++;} while ( $i <= 10 );

?></center>

</body></html>

1.8.6Break y continue

Estas dos sentencias son tipicas de lenguajes como: C, C++ y Java.

La sentencia break permite salir de la ejecucion de un bucle en el que seencuentre sumergido. Mientras que continue permite saltarse la iteracionactual pero no salir del bucle.

Estas sentencias se incluyen normalmente dentro de instrucciones quepermiten crear iteraciones como: for, while, do while, etc …

Lo mejor para ilustrar estos conceptos es el siguiente ejemplo:

<html><head>

<title>Ejemplo de while

</title></head><body>

<center>Tabla de multiplicar del 10 con continue<br><?php

$i=1;do {

if ( $i%2 == 0 ) {$i++;continue;

}echo “10 * $i = “, $i*10 ,”<br>$i++;

} while ( $i <= 10 );?>

</center><br><center>

Tabla de multiplicar del 10 con break

<br><?php$i=1;

Informatika saila 44

Page 45: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 45/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

do {echo “10 * $i = “, $i*10 ,”<br>$i++;

if ( $i%2 == 0 ) break;} while ( $i <= 10 );

?></center>

</body></html>

1.8.7Switch

Esta es otra instrucción clasica de control de flujo como el if pero de formaque podemos tener multiples tareas a diferentes condiciones de entrada,siempre escalares.La sintaxis de esta instrucción seria la siguiente:

switch (expresion){

case Resultado1: Instrucción-11;...Instrucción-1N;Break;

case Resultado2: Instrucción-21;...Instrucción-2N;Break;

.

.

.case ResultadoM: Instrucción-M1;

.

.

.Instrucción-MN;Break;

default: Instrucción-Z1;...Instrucción-ZN;

}

Un ejemplo para ilustrar esta estructura de control es el siguiente:

Informatika saila 45

Page 46: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 46/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<html><head>

<title>Ejemplo de while

</title></head><body>

<center>Tabla de multiplicar del 10 con continue<br><?php

$Edad=18;switch($Edad){

case 18: echo “<br>Pipiolo<br>”;break;

case 19: echo “<br>Pipiolon<br>”;break;

case 20: echo “<br>Jovin<br>”;break;

case 28: echo “<br>Joven<br>”;break;

default: echo “<br>Unknown<br>”;}

?></center>

</body></html>

1.9 Funciones

Ahora pasaremos a explicar las funciones que nos permitiran agrupar tareasrepetitivas de forma que no tengamos que repetir el mismo codigo enmuchas aplicaciones PHP.

1.9.1Definicion

Para definir una funcion hay que seguir una sintaxis concreta:

function nombre ( [&] $param1[=Val1],.., [&] $paramN[=ValN]){

Codigo_PHPReturn valor; ← Opcional

}

Informatika saila 46

Valores porParamatros por

Page 47: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 47/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Podemos definir las partes que aparecen en la declaracion de una funcioncomo:

• Nombre_funcion: Aquí escribiriamos el nombre de la funcion

• $param1, … ,$paramN : Aquí escribiriamos los nombres de losparametros de la funcion, puede contener valores por defecto medianteuna asignacion a un valor.

• Codigo_PHP: Aquí vendria todo el codigo de la funcion que queremosindicar.

• Return valor: Indicariamos el codigo de devolucion de la funcion,tradicionalmente este codigo nos indica el estado de ejecucion, si ha idobien o ha ido mal.

No existe ninguna limitacion en cuanto a la ubicación de las funciones peroexiste una seria de recomendaciones que son seguidas por losprogramadores de PHP sobre el orden en el que deben aparacere cada unade las partes de una aplicación :

• Declaracion de constantes y variables globales.• Declaracion y codificacion de funciones de usuario.• Codigo del programa principal que genera la nueva página.

1.9.2Ejecucion

Para ejecutar una funcion en principio solo existe una restriccion debe estardentro de una expresion escribiendo el nombre y los valores de losparametro que le correspondan entre parentesis.

1.9.3Paso de parametros

El paso de parametros en PHP puede ser de dos tipos:• Por valor: por defecto esta es la situacion habitual.

• Por referencia: para indicar que un parametro es por referencia se debeindicar el simbolo “&” delante del parametro en la declaracion de lafuncion.

Otro aspecto importante es el uso de valores por defecto, el valor pordefecto debe ser siempre una constante y no una variable, ademas losparametros que tienen asignados valores por defecto siempre tiene queaparecer en las ultimas posiciones de la lista de argumentos de la funcion.

Informatika saila 47

Page 48: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 48/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.9.4Recursividad

En PHP esta soportado el uso de la recursividad en los programas lo que le

da una versatilidad de cara a resolver problemas.

Para ilustrar todos estos conceptos sobre funciones realizaremos un ejemploque mezcle todos los aspectos tratados.

<html><head>

<title>Ejemplo de Funcion

</title>

</head><body><center>

Uso de una pila<br><font face="tahoma"><?php$Pila = array();$Cima=0;function Empilar(&$Pila,$Dato,&$Cima){

$Cima++;

$Pila[$Cima]=$Dato;return $Pila[$Cima];}function VerPila($Pila,$Cima=0){

for($i=0;$i<=$Cima;$i++) {echo $Pila[$i];echo "<BR>";

}echo "<BR>";

}Empilar($Pila,0,$Cima);

Empilar($Pila,1,$Cima);Empilar($Pila,2,$Cima);Empilar($Pila,3,$Cima);Empilar($Pila,4,$Cima);Empilar($Pila,5,$Cima);VerPila($Pila,$Cima);?></FONT>

</CENTER></BODY>

</html>

Informatika saila 48

Page 49: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 49/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.10Funciones especificas: cadenas de caracteres,fechas, arrays.

Ahora procederemos a explicar algunas de las muchas funcionespredefinidas que existen en PHP asociadas a cierto tipo de tareas muycotidianas como son:

• La gestion de fechas.

• La gestion de cadenas de caracteres.

• La gestion de arrays: simples y complejos.

1.10.1 Fechas

Para la gestion de fechas disponemos un conjunto de funciones que sepuede agrupar en cuatro categorias muy sencillas:

1. Obtencion de fecha-hora2. Formateo de la fecha-hora3. Establecimiento de la fecha-hora4. Validacion de la fecha-horaDescribiremos las funciones de cada categoria y finalemente realizaremosun ejemplo que trate de utilizar todas las funciones expuestas.

Obtencion de la fecha-horaDisponemos de las funciones:

Funcion Descripciontime() Devuelve un numero entero que representa la marca de

tiempo correspondiente al instante que se ejecuta.microtime En algunos casos nos puede interesar tener una precision

mayor, por lo que esta funcion nos permite obtener lamisma marca pero con una precision de microsegúndos.Siempre que el sistema soporte la funcion:gettimeofday().

getdate() Obtiene un array asociativo con la informacion de fecha yhora del sistema, la descripcion de este array asociativoes:

Clave Contenidoseconds Numero de de segúndos de la hora actual.minutes Numero de minutos de la hora actual.hours Numero de horas de la hora actual.mday Dia del mes.wday Dia de la semana en valor numerico. Es un valor

entre 0 y 6. Teniendo en cuenta que el cero esmon Mes del año en valor numerico.

yday Año en valor numerico.weekday Cadena de caracteres que contiene el dia de la

semana. Escrito en ingles.

Informatika saila 49

Page 50: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 50/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

month Cadena de caracteres que contiene el mes delaño tambien escrito en ingles.

0 Marca de tiempo obtenida por la funciongetdate().

gettimeofday() Obtiene un array tambien asociativo con la informacion defecha y hora.

Clave Contenidosec Numero de segúndos transcurridos desde

el inicio de UNIXusec Numero de microsegúndos de la hora

minuteswest Numero de segúndos al oeste dedstime  Tipo de correccion.

localtime() Es una funcion que recibe como parametros: un valorentero que representa una fecha y un valor booleano quenos indica en que formato queremos obtener lainformacion: indexada o asociativa.Su sintaxis:

localtime(int tiempo[,bool tipo_de_matriz]);

La siguiente tabla muestra los valores de los indices juntocon las claves el tipo de informacion que devuelven:

Indice Clave Contenido

0 tm_sec Numero de segúndos de la fecha1 tm_min Numero de minutos de la fecha2 tm_hour Numero de horas de la fecha indicada.3 tm_mday Dia correspondiente del mes.4 tm_wday Dia de la semana en valor numerico. El

valor esta entre 0 y 6 teniendo encuenta que el 0 es domingo.

5 tm_mon

6 tm_year

7 tm_yday

8 tn_isdst

Formateo de la fecha-horaUna vez que sabemos que funciones tenemos para obtener la fecha y lahora actuales el siguiente problema consiste en como visualizar estos datos.Para esta tarea disponemos a su vez de un conjunto de funciones.

Podemos distinguir dentro de este conjunto de funciones dos subconjuntosdiferentes, tomando como criterio el idioma:

• Sin selección: Ingles• Con selección ( en nuestro caso ): Español.

Para las funciones del primer tipo disponemos de la funcion:

string date(string formato [, int hora])

Informatika saila 50

Page 51: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 51/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

cuya definicion del formato dispone del siguiente conjunto de opciones:

Opcion Descripciona Hace que la hora aparezca la cadena “a.m.” o “p.m.”A Hace que la hora aparezca la cadena “A.M.” p “P.M.”d Dia del mes con dos digitos. Los dias del 1 al 9 los imprime

con cero a la izquierda; es decir, de “01” a “31”.D Dia de la semana como una cadena de caracteres; por

ejemplo, “March”. La cadena se corresponde con elnombre en ingles.

F Nombre del mes completo como una cadena decaracteres; por ejemplo, “March”. La cadena secorresponde con el nombre en ingles.

h Hace que la hora aparezca en formato “01” a “12”.H Hace que la hora aparezca en formato “00” a “23”.g Hace que la hora aparezca en formato “1” a “12”.G Hace que la hora aparezca en formato “0” a “23”.i Hace que los minutos aparezcan en formato “00” a “59”.j Hace que el dia aparezca en formato “1” a “31”.l

(L minuscula)Dia de la semana completo; por ejemplo, “Monday”. Lacadena se corresponde con el nombre en ingles.

L Escribe un “0” o un “1”, en funcion de si el año es bisiestoo no. 0 Indica que no es bisiesto y 1 que si lo es.

m Hace que el mes aparezca en formato “01” a “12”.n Hace que el mes aparezca en formato “1” a “12”.M Mes como una cadena de tres letras; por ejemplo, “Mar”.

La cadena se corresponde con el nombre en ingles.s Hace que los segúndos aparezcan en formato “00” a “59”.S Cadena de dos caracteres con el sufijo ordinal en ingles;

por ejempo, “th”, “nd”.t Numero de dias del mes especificado; de “28” a “31”.U Numero de segúndos desde el comienzo de UNIXw Numero del dia de la semana, teniendo en cuenta que el

“0” es domingo y que el “6” es sabado.Y Año con cuatro cifras; por ejemplo, “2002”.y Año con dos cifras; por ejemplo “02”.

z Dia del año; de “0” a “365”. El primer dia del año es el 0.Z Obtiene la diferencia horaria en segúndos ( de “-43200” a“43200” ) con respecto a la hora GMT ( 12h * 60min *60seg ).

El resto de caracteres que deseemos poner seran escritos como tal salvoque coincidan con las opciones de esta funcion en cuyo caso deberemosponer el simbolo “\” delante del carácter en cuestion.

echo date(“\Ho\y e\s D, d \d e F \d e Y”);

Para las funciones del segúndo tipo disponemos de la funcion strftime(),que utiliza la configuración local de la maquina a traves de la funcion

Informatika saila 51

Page 52: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 52/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

setlocale() donde se ejecuta el script para devolver una cadena con elformato definido. Las opciones que dispone esta funcion son:

Opcion Descripcion%a Nombre del dia de la semana abreviado en el idioma

seleccionado.%A Nombre del dia de la semana completo en el idioma

seleccionado.%b Nombre del mes abreviado.%B Nombre del mes completo.%c Representacion de fecha y hora referidas en el idioma

actual.%d Dia del mes en formato 01 a 31.%H Hora como un numero de 00 a 31.

%I Hora como un numero de 01 a 12.%j Dia del año como un numero de 001 a 366%m Mes como un numero de 01 a 12.%M Minuto en numero.%p “a.m.” o “p.m.” según la hora dada, o las cadenas

correspondientes en el idioma actual.%S Segúndos en numero.%U Numero de la semana en el año, empezando con el primer

domingo como el primer dia de la semana.%W Numero de la semana en el año, empezando con el primer

domingo como el primer dia de la semana.%w Numero de la semana en el año, empezando con el primer

lunes como el primer dia de la primera semana.%x Representacion por defecto de la fecha sin la hora.%X Representacion por defecto de la hora sin la fecha.%y Año en numero de 00 a 99.%Y Año en numero de cuatro cifras.%Z Nombre o abreviatura de la zona horaria.%% Carácter “%”.

Establecimiento de la fecha-horaEl siguiente conjunto de funciones estan relacionadas con el establecimiento

de una fecha y una hora concreta. Es decir estas funciones permiten crearuna variable de tipo fecha y hora, que despues podremos visualizar.

Las funciones relacionadas son:• mktime()

• gmktime()

La sintaxis es la misma para las dos:

int  mktime(int hora, int minutos, int segúndos, int mes,int dia,int anio[,int ajuste]);

Informatika saila 52

Page 53: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 53/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Se pueden omitir los valores de los parametros pero de derecha a izquierda.Los parametros descritos se explican por si mismos excepto el de ajuste,que indica si se debe realizar una correccion debida al ahorrro de consumo

que se establecen en algunos paises. Si el ajuste vale 1 se corresponde conel horario de verano y 0 con el de invierno.

La funcion gmktime() funciona de la misma forma pero considerando quelos parametros estan asociados con la hora GMT.

Validacion de la fechasEste conjunto de funciones es especialmente util de cara a la validacion defechas que se nos pueden proporcionar por diferentes medios.

Las funciones que nos permiten realizar esta tarea son:•

checkdate()• strtotime()

La sintaxis de la primera funcion es:

int checkdate(int mes,int dia,int anio);

Los rangos de los parametros son:• mes : Entre 1 y 12.

• dia : Depende del mes.• anio : Entre 0 y 32767.

La sintaxis de la siguiente funcion es:

int strtotime(string cadena_fecha[, int ahora]);

Esta funcion a diferencia de la anterior devuelve una marca de tiempo apartir de la fecha especificada en la cadena de caracteres.

Posee una desventaja:• No permite realizar conversiones con fechas anteriores a la creacion de

UNIX

Posee una ventaja:• Permite realizar aritmetica de fechas.

En cuanto a los paremetros:• Cadena_fecha: se le debe especificar una cadena en formato ingles:

“mm/dd/aa” o bien “dd mes aaaa”, por ejemplo “14 march 1992”.

• ahora: es la fecha base que se le puede indicar como base en lasoperaciones aritmeticas.

Informatika saila 53

Page 54: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 54/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Un pequeño ejemplo podria ser el siguiente:

$fecha=”+1day”;$dia=strtotime($fecha);

Funciones complementariasEn este apartado explicaremos brevemente la funcion setlocale() que nospermite establecer el idioma en el que apareceran las fechas que hacen usode esta funcion.

La sintaxis de esta funcion es la siguiente:

string setlocale(string categoria,string pais)

La explicacion de los parametros es la siguiente:• categoria: es una cadena de caracteres que especifica las funciones

afectadas por la conversion. Los valores posibles son:• LC_TYPE : Conversion de cadenas a la configuraciónoriginal.• LC_NUMERIC : Para los separadores numericos.• LC_TIME : Para la aplicación en los formatos de fechas yhora con strtime.• LC_ALL : Aplica todas las anteriores.

• pais: se indicara el pais, si no se indica nada es decir “” una cadenavacia tomara el valor de las variables de entorno.

Realizaremos ahora un ejemplo que trate de utilizar algunas de lasfunciones anteriormente explicadas:

<html>

<head><Title>Ejemplo de uso de funciones de gestion de fechas/hora</Title>

</Head><Body><br><?phpecho "time=La fecha actual es:";$hora=time();echo $hora;echo "<br>\ngetdate=La fecha actual es:";

$matriz=getdate();echo "<TABLE>\n";foreach($matriz as $Campo => $Valor )

Informatika saila 54

Page 55: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 55/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

{echo "<TR>\n";echo "<td>$Campo</TD>\n";

echo "<td>$Valor</TD>\n";echo "</TR>\n";

}echo "</TABLE>\n";echo "<br>\ndate=La fecha actual es:";echo date("D t Y H:i A ");$Fecha=mktime(10,30,0,4,1,2003);echo strftime("<br>\nmktime=La fecha actual es:%A %d %B

%Y",$Fecha);echo "<br>\ncheckdate=33 Febrero 2003 es";if ( true===checkdate(2,33,2003) ) {

echo "<br>\nVALIDA<br>";} else {

echo "<br>\nINVALIDA<br>";}?>

</body></html>

1.10.2 Cadenas de caracteres

Esta es una de las partes mas potentes de PHP que es la gestion de cadenasde caracteres.

Esta gestion la podemos dividir en varios grupos como se puede ver en lasiguiente figura:

Informatika saila 55

Page 56: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 56/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Como se puede observar existen multitud de funciones de gestion decadenas de caracteres. En el ultimo caso: las funciones de soporte HTMLestudiaremos algunas de las funciones mas interesantes de cara a la

generación o interpretacion de páginas HTML.

 Tambien se puede observar en este grafico es que el numero de funcionesasociadas al tratamiento de cadenas es bastante elevado, y es normal yaque PHP se caracteriza entre otras cosas por su capacidad de gestion decadenas de caracteres y las expresiones regulares que aglizan este trabajo.

Por tanto lo que se va realizar ahora y al igual que en el caso de la gestionde fechas y horas, es la descripcion de las funciones asociadas a cadagrupo de gestion de cadenas y posteriormente se tratara de realizar unejemplo que intente reunir la mayor cantidad de estas funciones para ver su

aplicación.Escritura de cadenasExisten varias maneras de escritura de cadenas de caracteres que lamayoria estan expuestas anteriormente pero las volveremos a citarañadiendo alguna novedad:

1. Escritura de cadenas con: “ “

Sintaxis:

“ secuencia de caracteres “

Ejemplo:

$Mensaje=“Hola Mundo 2003 segúnda invasion de IRAQ”

1. Escritura de cadenas con: ‘ ‘

‘Secuencia de caracteres’

Ejemplo:

$Mensaje= ‘Hola Mundo 2003 segúnda invasion de IRAQ’

2. Escritura de cadenas con: <<<

<<<IdentificadorLinea de caracteres-1Linea de caracteres-2

Informatika saila 56

Page 57: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 57/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

.

.

.

Linea de caracteres-nIdentificador;

Ejemplo:

$Mensaje= <<<MSGHola Mundo

2003 añode la segúnda invasion

de IRAQMSG;

Funciones de gestion de caracteresExiste en PHP un conjunto de funciones de gestion de caracterestradicionales en otros lenguajes:•

1. string chr(int valor) : Esta funcion devuelve como dato el carácter dela tabla de codigos ASCII especificado en su parametro de entrada.

2. int ord(string cadena) : Esta funcion devuelve como dato el numeroentero que se corresponde con el codigo ASCII del primer carácter de lacadena que recibe como parametro.

Visualizacion de cadenas de caracteresla visualizacion de cadenas podemos realizarla con o sin formato especificoa traves de las siguientes funciones:

• echo(): esta funcion tiene los siguientes formatos.

o echo string arg1 [, string argn];

o echo (string arg1 [, string argn]);El contenido a mostrar mediante esta funcion puede ser:

o Una secuencia de caracteres.

echo “Hola Mundo”;echo (“Hola Mundo”);

o Una variable de cualquier tipo.

Informatika saila 57

Page 58: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 58/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

$Edad = 3 ;echo $Edad;

$temperatura = 37.5;echo $temperatura;

$Izena=”jose Luis”;echo $Izena;

o Una combinacion de literales y variables medinateconcatenacion.

$PesoManzanas=58.3;$PesoPeras=34.5;echo “El peso de las manzanas es “ . $PesoManzanas .

“ y el de las peras es “ . $PesoPeras .“ y la suma es “ . ($PesoManzanas+$PesoPeras);

o Una combinacion de literales y variables.

$EdadMia = 10;

$EdadTuya = 11;echo “La suma de las edades es “, $EdadMia + $EdadTuya;

o Una constante.

define (“PI”,3.141592);echo PI;

• print() : es una de las funciones mas sencillas no tiene posibilidad deuso de parametros de opciones. Pose soporte de expansion devariables.

Su formato es el siguiente:

print (string cadena);

Un ejemplo de esta es:

print (“<br> Hola Mundo <br>”);

Informatika saila 58

Page 59: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 59/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

• printf() : esta es una de las funciones que permite visualizar en unformato especifico.

printf(string formato [,valor1 , …]);

Donde formato es una cadena que expresa la forma en que seranvisualizados y que es como sigue:

printf("Mi peso es %'*20.1f y mi edad es %'*-20d",86.2,29);

Analicemos ahora que significan cada uno de los elementos de esteejemplo de visualización.

% → Indicador de comienzo de especificacion de conversion.‘ * →Caractere de relleno * que debe ser precedido del simbolo ‘ sino esel espacio

en blanco.20 →Numero minimo caracteres que se deben mostrar.

.1 →Numero de decimales que se deben mostrar.f  →Tipo de datos a visualizar en este caso numero de tipo double.

printf("Mi peso es %'*20.1f y mi edad es %'*-20d ",86.2,29);

% → Indicador de comienzo de especificacion de conversion.‘ * →Caractere de relleno * que debe ser precedido del simbolo ‘ sino esel espacio

en blanco.- →Alineacion a la izquierda por defecto es a la derecha.20 →Numero minimo caracteres que se deben mostrar.d →Tipo de dato a visualizar en este caso es un numero entero.

Existen otros tipos de datos a visualizar:

Simbolo

Descripción

% Representa el simbolo de porcentaje.

b El dato se trata como un numero entero pero se visualiza comoun numero binario.c El dato se trata como un numero entero pero se visualiza como

un caracter.

Informatika saila 59

Page 60: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 60/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

d El dato se trata como un numero entero y se visualiza como unnumero decimal sin parte fraccionaria.

f El dato se trata como un numero real de tipo double y se

visualiza como un numero real.o El dato se trata como un numero entero y se visualiza como un

numero en octal.s El dato se trata y se visualiza como una cadena de caracteres.x El dato se trata como un numero entero pero se visualiza como

un numero hexadecimal en minusculas.X El dato se trata como un numero entero pero se visualiza como

un numero hexadecimal en mayusculas.

• sprintf(): esta funcion es muy parecida a la anterior solo se diferenciaen que el resultado de la impresión se almacena en una variable.

• sscanf(): esta funcion es justo la contraria a la funcion anterior, esdecir permite leer datos en los formatos ya explicados anteriormentepero desde una variable.

Un ejemplo aclarador de esta funcion es la siguiente:

$datos = "Kepa 1972";list($nombre,$nacimiento) = sscanf($datos,"%s %d");

Alteracion del contenidoUna vez que sabemos como visualizar las cadenas de caracteres veremosalgunas de las funciones mas socorridas para modificar el contenido de unacadena.

Las funciones de alteración del contenido estan orientadas a fácilitarnos eltrabajo con cadenas eliminando por ejemplo todos aquellos problemas quesurgen cuando tenemos fines de linea, espacios en blanco u otroscaracteres especiales en las cadenas de caracteres.

Veremos solo algunas de las funciones ya que existen mas de 80 funciones

Un grupo de funciones que son muy utilizadas son:

• Eliminacion de espacios en blanco y fines de linea.

o chop : Elimina los espacios sobrantes al final de la cadena,incluyendo los salto de linea.

o ltrim : Elimina los espacios en blanco al principio de la linea.Los caracteres que elimina son: "\n", "\r", "\t", "\v", "\0", y el

propio espacio.•

o rtrim : Elimina los espacios en blanco y los fines de linea, escomo un alias de chop.

Informatika saila 60

Page 61: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 61/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

o trim :Elimina los espacios al principio y al final de una linea, escomo una combinacion de ltrim y rtrim.

• Division de una cadena de caracteres en trozos.

o split : Divide una cadena por una expresion regular elresultado es un array de cadenas, al igual que explode y comoopcion podemos indicar el limite maximo de cadenas aobtener.

Se recomienda explode si es posible realizarlo con una cadenaya que el uso de split implica el arranque del motor deexpresiones regulares.

o explode : Divide una cadena por otra cadena, el resultado esun array asociativo donde en cada posicion tenemos cada unode los trozos. Como opcion se puede indicar el limite maximode cadenas a obtener.

• Conversion a minusculas y a mayusculas. [ EL nombre pareceheredado de las clasicas funciones del Lenguaje “C” ].

o strtolower : Convierte a minusculas una cadena decaracteres.

o strtoupper : Convierte a mayusculas una cadena decaracteres.

• Sustitucion de subcadenas en cadenas de caracteres.

o substr_replace (Esta funcion fue incluida en PHP 4.0) :permite sustituir una cadena por otra cadena, donde serequiere indciar en la cadena modificada la posicion a partir dela cual se quiere sustituir (opcionalmente se podra indicar lalongitud de la cadena ), si la posicion inicial es positivaempieza desde el comienzo de la cadena y si es negativaempieza desde el final.

o str_replace : Permite sustituir dentro de una cadena todas lasapariciones de una cadena dada por otra cadena especificada.

o substr :

Acceso del contenido

• Busquedas de cadenas

o strstr : Encuentra la primera aparición de una cadena. Estafuncion es muy interesante por ejemplo para extraer eldominio de una dirección de correo como se ilustra en el

ejemplo:

Informatika saila 61

Page 62: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 62/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

$email = ”[email protected]”;$dominio = strstr ($email, '@');print $dominio; // imprime @eteo.mondragon.edu

o substr: Devuelve una parte de la cadena especificada.

o Como se ha comentado existen multitud de funciones de estetipo por lo que es mas razonable consultarlas on-line enInternet.

 Tambien debemos resaltar que la ayuda on-line de php sobre funciones esrealmente excelente, ya que proporciona la descripcion, la sintaxis, unejemplo y observaciones de desarrolladores externos de las funciones dePHP.

La direccion del manual en castellano es:

http://www.php.net/manual/es/

Soporte de HTML

Para el soporte de HTML PHP dispone de un conjunto de herramientas quenos permiten realizar el trabajo con las páginas web de una manera massencilla.

• addcslashes: Permite generar la cadena de caracteres “escapada”es decir con el caracter “\” delante de cada caracter.

• get_meta_tags : Devuelve una matriz con todas las lineas que

contienen las etiquetas META.

• nl2br : Convierte todos los saltos de lineas encontrados en la cadenapor la cadena <BR>.

• parse_url : Devuelve una matriz asociativa de los componentes deuna url.

• urlencode : En algunas ocasiones la informacion viene codificadasiguiendo las reglas de codificacion url y mediante esta funcionpodemos decodificar el contenido.

• urldecode : Permite realiza el proceso contrario.

Informatika saila 62

Page 63: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 63/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Como es de suponer existen multitud de funciones que no se especifican eneste documento ya que la mejor informacion esta a disposicion on-line.

1.10.3 Arrays

Existen en PHP un gran cantidad de funciones asociadas al tratamiento dearrays para fácilitar el manejo de las mismas, alrededor de 60 funciones,por lo que no se considera muy practico explicar todas y cada una de ellas,solamente detallaremos algunas de las mas utilizadas, y clasificaremos lasfunciones de arrays.

Las funciones las clasificaremos en:

• Creacion de Arrays Implicitos : en lugar de explicitar la sintaxis

considereramos la realizacion de ejemplos donde se vea de unamanera práctica como se realiza:

o Undimensionales:

// Declaracion implicita de matriz indexada$Nombres[0]=’Jose Luis’;$Nombres[3]=’Patxi’ ;

// Declaracion implicita de matriz asociativa$Alumno[“Nombre”]=’Kepa’;

$Alumno[“Apellido 1”]=’Kortabarria’;$Alumno[“Apellido 2”]=”Kogorzabeitia’;

o Multidimensionales:

// Declaracion implicita de matriz indexada multidimensional$Facultad[0][1]=’Koldo’;$Facultad[1][0]=’Patxi’;$Facultad[1][1]=’Rosita’;

// Declaracion implicita de matriz asociativa multidimensio-// nal.$Alumno[‘Profesor’][“Nombre”]=’Kepa’;$Alumno[‘Alumno’][“Apellido 1”]=’Kortabarria’;$Alumno[‘PAS’][“Apellido 2”]=”Kogorzabeitia’;

• Creacion de Arrays Explicitos : al igual que en el caso anteriorconsideraremos la realizacion de ejemplos para explicarlos.

 

// Creacion de arrays explicitos$frutas = array (

Informatika saila 63

Los elementosentre la posicion 0y 3 existen perotienen valor nulo

Page 64: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 64/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

 "Alumnos"=> array ("Name"=>"naranja","DNI"=>"plátano" ),"Alturas"=> array (167, 178, 170 ),

"NIF" => array ("DNI", 5 => "Provincia", "Alava" ));

• Funciones de recorrido : Este conjunto de funciones nos permiterecorrer una array de cualquier tipo de varias maneras.

o count : Funcion que nos indica cuantos elementos tiene unarray.

o sizeof : Funcion que nos indica cuantos elementos tiene unarray.

o each : Funcion que recupera un elemento de una matrizasociativa y ademas avanza una posicion en el puntero a lamisma.

o reset : Funcion que situa el puntero interno del array en laprimera posicion del mismo.

o end : Funcion que situa el puntero interno del array en laultima posicion del mismo.

o next : Funcion que situa el puntero interno del array en lasiguiente posicion que apunta el mismo.

o prev : Funcion que situa el puntero interno del array en laposicion anterior que apunta el mismo.

o current : Funcion que devuelve el elemento apuntado por elpuntero interno no modifica la posicion del puntero.

o key : Funcion que nos permite conocer cual es la clave de una

matriz asociativa en un momento dado.• Funciones de Tratamiento : Este conjunto de funciones nos

permiten modificar el contenido de un array ya sea indexado oasociativo.

o array_push: Funcion que inserta uno o mas elementos al finaldel array.

o array_pop: Funcion que extrae el ultimo elemento del array.

o array_shift: Funcion que extrae el primer elemento del array.

o array_unshift: Introduce uno o mas elementos al principio delarray.

Informatika saila 64

Page 65: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 65/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

o array_pad: Funcion que nos permite ampliar una matriz yrellenarla con un valor concreto.

o array_splice: Funcion que nos permite sustituir un trozo dearray y rellenarlo por otros elementos indicados en otro array,tambien puede simplemente eliminar elementos de un array.

o array_keys: Si se especifica el elemento se devuelve la clavey el elemento buscado del array.

o array_values: Devuelve todos los valores de un array.

o array_walk: Funcion que nos permite aplicar a todos los

elementos de un array una funcion dada.

o array_slice: Funcion que nos permite extraer un trozo dearray.

• Funciones de Ordenacion : Este conjunto de funciones nospermiten realizar diversas tareas de ordenacion con criteriosdiferentes.

o sort: Funcion que nos permite ordenar un array.

o rsort: Funcion que nos permite ordenar un array de formainversa.

o asort: Funcion que nos permite ordenar un array manteniendola asociacion de indices.

o arsort : Funcion que nos permite ordenar un array de formainversa manteniendo la asociacion de indices.

o ksort : Funcion que ordena un array por clave.

o krsort : Funcion que ordena un array por clave de forma

inversa.o usort: Funcion que ordena un array por valores mediante una

funcion proporcionada por el usuario.

o uasort: Funcion que ordena un array mediante una función decomparación proporcionada por el usuario y mantiene laasociación de índices.

o uksort: Funcion que ordena un array por claves mediante unafuncion proporcionada por el usuario.

o array_multisort : Funcion que ordena arrays multiples o bienarrays multidimensionales.

Informatika saila 65

Page 66: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 66/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

CAPITULO V

Servicio Web y el protocolo HTTP

1.1 Funcionamiento del servicio Web

El protocolo por excelencia mas utilizado en internet es el http, o tambienprotocolo de transferencia de hipertextos.

Este protocolo esta en el nivel de aplicación del modelo TCP/IP u OSI, y sebasa en el envio de mensajes entre dos nodos. El modelo que sigue esteprotocolo es el conocido como Cliente/Servidor, esto quiere decir quepodemos disponer de varios clientes solicitando informacion a un servidor.

El funcionamiento consistiria en lo siguiente:

1.11Codificacion de los URLs

Debido a que internet es un medio internacional fue necesario definir en undocumento RFC1738 la estructura y el contenido de los URLs.

Esta especificacion de URLs sigue una serie de normas y entre ellas unarelativa a los caracteres especiales:

• Los caracteres especiales son reemplazados por una tripleta formadapor el carácter % seguido dos digitos en hexadecimal que indican elvalor del carácter.

Se determina que un carácter es especial si esta dentro de alguno delos siguientes grupos:

o Aquellos que no tienen una representacion grafica en US-ASCII.o Grupo de caracteres: “ “, <, >, “, #, %,{, ...

Informatika saila 66

Page 67: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 67/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

o Reservados para la codificación URL.

1.12Funcionamiento del protocolo http detallado

¿Pero exactamente en que consisten esta serie de mensajes o peticionesque se envian desde el cliente y se responden desde el servidor?

La respuesta es muy sencilla:

• Los mensajes estan formados por dos partes:

o Cabecera: esta separada del cuerpo del mediante un espacioen blanco, y cada linea de la cabecera esta formada por:

Nombre de campo : Valor del campo

Los campos suelen describir con detalle como ha sido elintercambio de los mensajes entre el servidor y elcliente.

o Cuerpo: incluye la informacion transmitida entre el cliente y elservidor.

Un ejemplo de mensaje es el siguiente:

# telnet yubarta 80Trying 172.31.5.25...Connected to 172.31.5.25.Escape character is '^]'.GET / HTTP/1.0

HTTP/1.1 200 OK Date: Tue, 03 Jun 2003 13:08:19 GMTServer: Apache/1.3.26 (Unix) Debian GNU/Linux mod_ssl/2.8.9

OpenSSL/0.9.6g PHP/4.1.2X-Powered-By: PHP/4.1.2Connection: closeContent-Type: text/html; charset=iso-8859-1

<html><head>

<title>Servidor yubarta.eteo.muni.es

</title><head>

<body> <center><font face="verdana" size=5>

Informatika saila 67

Page 68: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 68/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Bienvenido al servidorYubarta

</font>

<br><br><br><a href="cursophp/cursophp.php">

Curso de PHP</a><br><a href="phpinfo.php">

Informacion de PHP</a><br>

</center></body>

</html>

Connection closed by foreign host.

1.13Metodos del protocolo http

Cuando el usuario escribe una URL el navegador despierta al motor decomunicaciones indicandole que desea recibir una cierta página de un ciertoservidor.

Pero el protocolo no solo puede realizar peticiones de páginas sino que esun poco mas general y posee un conjunto de metodos que realizan tareasmuy diversas:

Metodo DescripciónOPTIONS Información relacionada con las opciones de un recurso.GET Pide un objeto: imagen, fichero, ...HEAD Pide metainformación sobre un objeto.POST Envia datos para ser procesados por un objeto [recurso].PUT Envia un objeto para ser almacenado en el servidor.

DELETE Pide la eliminación de un objeto en el servidor. TRACE Genera información de debug sobre la comunicación.CONNEC

 TMetodo de comunicación a traves de Proxys

Los metodos mas empleados son GET, HEAD, POST.

1.14Campos de las cabeceras http

Los campos generales de las cabeceras http son los siguientes:

Campo DescripcionCache-Control Indicaciones del control de la cache.Connection Peticion de estado de conexion.Date Fecha y hora.

Informatika saila 68

Page 69: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 69/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Pragma Opciones del comportamiento del protocolo. Trailer Informacion de avance de mensajes. Transfer-

Enconding

Codificacion del cuerpo de mensaje.

Upgrade Habilitacion de la especificacion por parte del cliente delprotocolo a soportar.

Via Informacion tecnica para gateways y proxys.Warning Informacion extra del estado del mensaje.Accept Lista de los tipos que el cliente es capaz de manejar.Accept-Charset Juegos de caracteres acpetables para la respuesta.Accept-Enconding Codfiicaciones soportadas.Accept-Language Preferencias del lenguaje.Authorization Datos para la autenticacion.Expect Estado del servidor esperado por el cleinte.

From e-mail del usuario.Host Nombre y puerto del servidor.If-Match Mascara para peticiones condicionales.If-Modified-Since Fecha para peticiones condicionales.If-None-Match Mascara para peticiones condicionales.If-Range Mascara para peticiones condicionales parciales.If-Unmodified-Since

Fecha para peticiones condicionales.

Max-Forwards Limite de saltos con el metodo TRACEProxy-Authorization

Datos para la autenticacion mediante Proxy

Range Rango de bytes.

Referer Identificacion interna URI del objeto enviado. TE Extensiones de la codificacion de la transferenciaUser-Agent Navegador del cliente.

1.15Mensajes de Respuesta

Los mensajes que generan los servidores como respuesta estan formadospor una cabecera y opcionalmente por un cuerpo.

Ademas la cabecera contiene una primera linea llamada linea de estado

seguida de una serie de campos.La estructura de una linea de estado es:

Version_http Codigo_Estado Descripcion

Asi respuesta como esta:

HTTP/1.1 200 OK

tienen ahora mas sentido.

Informatika saila 69

Page 70: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 70/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Ahora pasaremos a describir los diferentes tipos de codigos de estado quepodemos recibir:

Codigo

Finalidad Estado

1XX Información Recibida y se continua el proceso.2XX Éxito Recibida, comprendida y aceptada.3XX Redirección Requerimiento de accion posterior.4XX Error en el

clienteSintaxis incorrecta o imposibilidad de atención.

5XX Error en elservidor

El servidor no inhabilitado.

Disponemos en PHP de una funcion que nos permite incluir campos en las

cabeceras como por ejemplo incluir una linea de estado falsa como en elsiguiente ejemplo:

.

.

.<?php

header(‘http/1.1 404 Not Found’);?>...

1.15.1 Campos de los mensajes de respuesta

Como ya se ha comentado anteriormente los mensajes contienen una seriede cabeceras y estas se pueden clasificar de una manera mas general de lasiguiente forma:

• Cabeceras generales: ya explicadas.

• Cabeceras especificas de las solicitudes.

• Cabeceras entidad: contienen metainformacion adicional.

Las cabeceras especificas de las solicitudes contienen los siguientescampos:

Campo DescricpiónAccept-Ranges Indica el tipo de rango de la informacion transmitida.Age Estimación en segúndos desde que se genero la

respuesta original.ETag Entidad para la identificacion del recurso.Location URI absoluto de un recurso.

Proxy-Athenticate Autenticacion ante servidores Proxy.Retry-After Tiempo para reintentar la obtencion de un recurso.Server Identificacion del software.

Informatika saila 70

Page 71: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 71/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Vary Información de criterios sobre sistemas cache.WWW-Authenticate

Autenticacion y parametros aplicables a una URI.

Informatika saila 71

Page 72: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 72/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Formularios

1.1 Procedimiento de envío/recepción de formulariosen http.

Existen tres procedimientos entre los metodos anteriormente descritos quehabitualmente mas se utilizan para el envío de recursos y objetos:

• Método GET : es el que utilizan los navegadores para solicitar losobjetos que conforma una página.

• Método HEAD: es el que se utiliza normalmente para obtenerinformación acerca de un recurso.

• Método POST: es el método por excelencia para el envío deformularios que contienen mucha información.

1.15.2 Método GET

Como ya se ha citado en el punto anterior este el método que utilizan losnavegadores para solicitar un recurso.

Un ejemplo de solicitud podría ser el siguiente:

GET /index.html HTTP/1.0

Cuando el recurso solicitado requiere de ser procesado previamente por unintérprete ( en este caso: el intérprete de PHP ) lo obtenido es el resultadode procesar las instrucciones que están en la página, no el código en sí.

Este procedimiento utilizado sobre todo en el envío de formularios, donde seforman parejas de variable-valor, este conjunto de parejas se presentan enla URI a partir del carácter “?” , toda la cadena que viene a continuación conlos pares variable-valor, se le conoce como QUERY STRING , y ademas lainformación en dicha cadena respeta las reglas de codificación URL.

Si enviamos mas de una pareja variable-valor, estas se separan mediante elcarácter “&”. Y cuando llega al servidor estas parejas se almacenan en unarray asociativo llamado $HTTP_GET_VARS/$_GET.

  Y muy importante si en el fichero de configuración php.ini tenemos ladirectiva:

register_globals = On ← IMPORTANTE

Informatika saila 72

Page 73: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 73/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

entonces el intérprete PHP creará dos variables globales llamadas user yuid.

Entonces esto implica que disponemos inicialmente de dos procedimientosválidos para la lectura de las variables de un formulario.

Realicemos un pequeño ejemplo con la misma respuesta pero utilizandodiferentes procedimientos.

Formulario.html

<html><body>

<form action=”metodoGET.php” METHOD=”GET”>Nombre:<input type=”Text” Name=”User”><br><input type=”Text” Name=”Apellido”><br><input type=”submit” value=”Enviar”>

</form></body>

</html>

Método 1: Mediante el array asociativo HTTP_GET_VARS.

<html><body><?php

foreach ($HTTP_GET_VARS as $variable => $valor)echo “ $variable => $valor<br>\n”;

?></body>

</html>

Método 2: Mediante la directiva register_globals.

<html><body><?php

echo ‘$User => ’;echo “$User<br>”;echo ‘$Apellido => ’;echo “$Apellido<br>”;

?></body>

</html>

Informatika saila 73

Page 74: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 74/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.15.3 Método HEAD

Los mensajes utilizando este método son idénticos a los empleados por elmétodo GET, la diferencia estriba en el mensaje de respuesta. En el métodoHEAD, el servidor responde utilizando solamente la cabecera de larespuesta excluyendo el cuerpo.

Este método permite consultar información acerca de un recurso paraproceder a realizar una acción u otra.

1.15.4 Método POST

El método POST al igual que el método GET pero la diferencia estriba en queel formulario se envía en el cuerpo del mensaje HTTP y no en la cabecera.La primera de las consecuencias es que el QUERY STRING aparece vacío.

Si procedemos a analizar ahora la diferencia a la hora de recuperar lainformación de un formulario en el caso de que utilicemos la mismadirectiva que en el método GET no hay cambios, por el contrario sideseamos utilizar el array asociativo ahora no nos vale el anterior sino$HTTP_POST_VARS/$_POST, pero el mecanismo de acceso es el mismo.

1.15.5 ¿Cómo subir ficheros?El procedimiento recomendado es utilizar el metodo POST ya que no tiene lalimitacion del tamaño de la cabecera de 8192 bytes.

Un ejemplo de este uso es el siguiente:

<html><body>

<center><form name="POST" METHOD="POST"

ACTION="ejemploPOST.php"enctype="multipart/form-data">

Usuario:<input type="text" name="Usuario"><br>Password:<input type="text" name="Password"><br><input type="file" name="Fichero"><br><input type="submit" value="enviar"></form>

</center></body>

</html>

Informatika saila 74

Page 75: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 75/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

 Y a continuación el fichero PHP que lo procesa:

<html><BODY><?phpforeach ($HTTP_POST_VARS as $Variable => $Valor){

echo $Variable;echo " => ";echo $Valor;echo "<br>\n";

}

copy($Fichero,"./fichero");

?></body>

</html>

1.16Diferencias entre los diferentes de métodos.

Las diferencias entre los método GET y POST estriban en los siguientesaspectos:

• El tamaño de los datos a enviar mediante el método GET estalimitado al tamaño de la cabecera máximo.

• El registro que queda en el servidor mediante el método POST esnulo, pero con el método GET se pueden recuperar los formularioscon los datos originales.

En la siguiente figura podemos ver de una forma más gráfica las diferenciasexistentes que se han citado:

Informatika saila 75

Ubicamos elficherodonde nosinterese ycon el

Page 76: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 76/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Informatika saila 76

Page 77: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 77/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Conexiones a Bases de Datos1.1 Introducción

Si recordamos como hemos configurado, compilado e instalado PHPpodemos ver que PHP dispone de funciones para conexión de bases dedatos de muy variados tipos y desde puntos de vista genericos oespecializados.

PHP permite la conexión a bases de datos de tipo:

• ODBC• Oracle• mySQL• PostgreSQL• mSQL• Ingress• …

1.17Tipos de conexiones a bases de datos

Existen basicamente dos tipos de conexiones a bases de datos: lasconexiones normales y las conexiones persistentes.

1.17.1 Conexiones normales

Las conexiones normales emplean un mecanismo de conexión al comienzodel script y emplean otro mecanismo para finalizar la conexión al finalizar elscript. Es decir cuando se habla de conexiones normales se esta hablandode un ratio 1 conexión/1 página.

1.17.2 Conexiones persistentes (ventajas einconvenientes)

Las conexiones persistentes emplean un mecanismo de conexión en unscript y emplean otro mecanismo para finalizar la conexión en otro scriptdiferente. Es decir la conexión queda abierta por una página y cerrada porotra página.

Las ventajas de este tipo de conexiones son:

• Son páginas mas rapidas.• Menor coste de conexión, ya que solo se realiza una vez.• Aprovecha el coste del numero de licencias.

Las desventajas de este tipo de conexiones son:

Informatika saila 77

Page 78: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 78/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

• Si una página bloquea una tabla el debe ser desbloqueada porquesino el resto de las páginas quedan bloqueadas hasta que se reiniciael servidor.

• Pueden existir limites de conexiones persistentes admitidas por elservidor de bases de datos, lo que implica que algunas páginaspodrian no poderse conectar.

En la siguiente figura podemos ver los dos modelos de conexiones que seutilizan:

1.18Conexión a una base de datos mySQL

PHP dispone de un conjunto bastante amplio de funciones para tratar conbases de datos mySQL:

  mysql_affected_rows

  mysql_change_user

  mysql_client_encoding

mysql_closemysql_connectmysql_create_db

  mysql_data_seek

  mysql_db_name

  mysql_db_query

  mysql_drop_db

mysql_errnomysql_error

  mysql_escape_string

  mysql_fetch_array

Informatika saila 78

Page 79: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 79/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

  mysql_fetch_assoc

  mysql_fetch_field

  mysql_fetch_lengths

  mysql_fetch_object  mysql_fetch_row

  mysql_field_flags

  mysql_field_len

  mysql_field_name

  mysql_field_seek

  mysql_field_table

  mysql_field_type

  mysql_free_result

  mysql_get_client_info

  mysql_get_host_info

  mysql_get_proto_info

  mysql_get_server_info  mysql_info

  mysql_insert_id

  mysql_list_dbs

  mysql_list_fields

  mysql_list_processes

  mysql_list_tables

mysql_num_fieldsmysql_num_rows

mysql_pconnect

  mysql_ping

  mysql_query

  mysql_real_escape_string

  mysql_result

  mysql_select_db

  mysql_stat

  mysql_tablename

  mysql_thread_idmysql_unbuffered_query

Informatika saila 79

Page 80: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 80/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.18.1 Uso de la conexión y selección de la base de datos.

El esquema de conexión normal a una base de datos mySQL es el siguiente:

<?php

$dbcon = mysql_connect("delfin","gestion","A81Z") {

or die(“No se ha podido conectar”);}

   mysql_select_db("Gestion_Alumnos");...

?>

1.18.2 Cierre de la conexiónPara cerrar la conexion realizaremos la siguente secuencia de tareas:

<?php... mysql_free_result($resultado_consulta);..

 mysql_close($dbcon);?>

1.18.3 Obtención de metainformación de la base de datos:El diccionario de datos

Una vez que ya sabemos como conectarnos y como desconectarnos de unabase de datos mySQL, nos puede interesar saber no solo la informacion queesta almacenada en ella sino quizas y en combinacion de ella informacion

relativa sobre el numero de bases de datos que existen en el servidor, lastablas de una base de datos indicada, el nombre de una tabla, ...Para poder obtener informacion de este tipo nos ayudaremos de lassiguientes funciones que existen en el módulo mySQL de PHP:

Informatika saila 80

Password

Usuario

Má uina

 

Recomendación para liberarlos recursos decada consulta.

Conexión alservidor de bases

Selecccionde la basede datos.

Page 81: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 81/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Funcion Descripcion mysql_list_dbs 

(conexión)Devuelve como resultado los nombresde las bases de datos disponibles en elservidor al que nos conectamos.

 mysql_list_tables (base_datos, conexión)

Devuelve como resultado los nombresde las tablas disponibles, en la base dedatos que indicamos.

 mysql_tablename (resultado, numero_fila )

Devuelve el nombre de la tabla que seindica en resultado despues deejecutar: una de las dos funcionesanteriores.

 mysql_field_name  (resultado,numero_columna)

Devuelve como resultado el nombre delcampo que se indica, proporcionando latabla y el numero de columna.

 mysql_field_type(resultado,numero_col) Devuelve como resultado el tipo delcampo que se indica, proporcionando latabla y el numero de columna.

 mysql_field_len(resultado,numero_col)

Devuelve como resultado la longitud delcampo que se indica, proporcionando latabla y el numero de columna.

 mysql_field_flags(resultado,numero_col)

Devuelve como resultado las opcionesdel campo que se indica,proporcionando la tabla y el numero decolumna.Los valores posibles pueden ser:

• not_null•  primary_key

• unique_key

•  multiple_key

•  blob

• zerofill

•  binary

• enum 

• auto_increment

• timestamp

Existen muchas otras funciones como se puede observar en el punto 1.3que permiten realizar otro tipo de tareas relacionadas con lametainformación como por ejemplo:

•  mysql_affected_rows

•  mysql_change_user

•  mysql_create_db

•  mysql_drop_db

•  mysql_get_host_info

•  mysql_get_server_info

• …

Informatika saila 81

Page 82: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 82/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

1.18.4 Consultas: selección, borrado y modificación

Una vez que sabemos como conectarnos y como cerrar la conexion con la

base de datos, procederemos a explicar mediante un ejemplo como serealizan los diferenes tipos de consultas y los diferentes procedimientos deejecucion de cada una.

Las funciones que se van a utilizar para realizar consultas sobre una base dedatos mySQL son:

• mysql_query: que es la funcion que nos permite enviar las consultasal servidor de bases de datos, sea la consulta del tipo de que sea. Enel caso de consultas de selección es necesario almacenar el resultadopara poder trabajar con él.

• mysql_num_fields: Devuelve el numero de atributos de la consulta.

• mysql_fetch_row: Recupera el siguiente registro de la consulta.

• mysql_result: Recupera un registro concreto y dentro de esteregistro el campo que se le especifica.

• mysql_fetch_array: Recupera el siguiente registro pero en unaestructura de datos tipo array asociativo.

mysql_fetch_object: Recupera el siguiente registro pero en unaestructura de datos tipo clase.

Vamos a proceder a indicar mediante un ejemplo como se realizan cada unade las diferentes consultas asociadas a un servidor de bases de datosmySQL:

• Consulta de SELECCIÓN

o Tipo I: mysql_fetch_row

<?php

.

.

.// Consulta de selección

$consulta = ”SELECT * FROM DetallePedido”;

$resultado = mysql_query ($consulta,$dbcon);.$NumFilas = mysql_num_rows ($resultado); .

.$NumAtributos = mysql_num_fields($resultado);.

Informatika saila 82

Page 83: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 83/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

.

.while ($registro = mysql_fetch_row($resultado) ){

for($I=0;$I<$NumAtributos;$I++){

echo $registro[$I], “ “;}echo “<br>\n”;

}...

?>

o Tipo II: mysql_fetch_array

<?php

.

.

.// Consulta de selección

$consulta = ”SELECT * FROM DetallePedido”;

$resultado = mysql_query ($consulta,$dbcon);.$NumFilas = mysql_num_rows ($resultado); ....while ($reg_asoc = mysql_fetch_array($resultado) ){

echo $reg_asoc[‘Codigo’ ], “ “;echo $reg_asoc[‘Nombre’ ], “ “;echo $reg_asoc[‘Apellido’], “ “;echo “<br>\n”;

}...

?>

o Tipo III: mysql_fetch_object

Informatika saila 83

Page 84: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 84/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<?php

.

.

.// Consulta de selección

$consulta = ”SELECT * FROM DetallePedido”;

$resultado = mysql_query ($consulta,$dbcon);.$NumFilas = mysql_num_rows ($resultado); ....while ($reg_obj = mysql_fetch_object($resultado) ){

echo $reg_obj->Codigo , “ “;echo $reg_ obj->Nombre , “ “;echo $reg_ obj->Apellido, “ “;echo “<br>\n”;

}...

?>

• Consulta de INSERCIÓN:

<?php

.

.

.// Consulta de selección.

$Consulta= <<<MSGINSERT INTO Empleados (Codigo,Nombre,Apellido)

VALUES(12,”Koldo”,”Tzaer”);MSG;

mysql_query ($Consulta,$dbcon);...?>

• Consulta de BORRADO:

Informatika saila 84

Page 85: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 85/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<?php

.

.

.// Consulta de selección.

$Consulta= <<<MSGDELETE FROM WHERE Codigo = 12;

MSG;

mysql_query ($Consulta,$dbcon);...?>

• Consulta de ACTUALIZACIÓN:

<?php

.

.

.// Consulta de selección.

$Consulta= <<<MSGUPDATE Empleados

SET Codigo = 100,SET Nombre = “JL”,SET Apellido = “Txotx”

MSG;

mysql_query ($Consulta,$dbcon);...?>

1.19Manejo de errores

El módulo de mySQL de PHP dispone de un par de funciones de gestion delos errores que se pueden producir en las conexiones y consultas:

• mysql_errno(): esta funcion devuelve el numero de error producidoy reconocido por el intérprete.

Informatika saila 85

Page 86: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 86/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

• mysql_error(): funcion que devuelve el mensaje asociado al codigoerror anterior.

Un ejemplo de uso de estas funciones seria el siguiente:

<?php

$db_con=mysql_connect(‘localhost’,”root”,””);mysql_selectdb(“No-Existo”);

echo mysql_errno(), “: “, mysql_error();

..

.?>

1.20Gestión del acceso concurrente

Para realizar el acceso concurrente hay que hacer uso de las funciones queposee mySQL para el bloqueo de tablas de forma que se puedan simulartransacciones, ya que de forma nativa no es posible realizarlas. Por lo queremitimos al lector a dirigirse al manual de mySQL para el uso de funcionesde bloqueo de tablas.

Informatika saila 86

Page 87: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 87/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

CAPITULO VI

Bibliografia• Creacion de sitios web con PHP 4. Fco. Javier Gil Rubio,Jorge A.

  Tejedor Cerbel,Agustin Yagüe Panadero,Santiago AlonsoVillaverde,Abrahan Gutierrez Rodriguez. Osborne McGrawHill. ISBN84-481-3209-2.

• PHP3. Programming Browser-Based Applications. David Medinets.McGraw Hill.ISBN 0-07-135342-9

• Creación de aplicaciones Web con PHP4. Tobias Ratschiller, TillGerken. Prentice Hall. ISBN 84-205-3108-1

• PHP. Larry Ullman. Prentice Hall. ISBN 84-205-3231-2

Informatika saila 87

Page 88: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 88/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

CAPITULO VII

Apendice – Resumen HTMLResumen ordenado de elementos, etiquetas y atributos de HTML 4.0En esta sección, listaremos 91 elementos válidos de HTML 4.0 con susetiquetas y atributos.La tabla en la que se muestran los elementos está ordenada por la etiquetade inicio. En cada uno de los 91 elementos hay varios apartados:

• Descripción del elemento (a veces incluirá un ejemplo o aviso).• Etiqueta de inicio del elemento y si es necesaria u opcional.• Para elementos con etiquetas de final, la etiqueta se listará indicando

si es necesaria u opcional. Para elementos sin etiquetas de final(como <IMG>), se listará “elemento vacío”.

• Atributos del elemento, si existen. Todos los atributos son opcionalesa menos que se diga lo contrario.

•  Tipo de contenido permitido dentro del elemento.• Categoría del elemento.

Existen varias categorías posibles para un elemento. Los elementosformarán parte de la estructura básica de HTML, la sección head o loselementos de formato de texto o bloque en la sección body o una categoríaespecial. Además, algunos elementos sólo aparecen dentro de otroelemento. Así se dividen los elementos;

• Elementos de la estructura básica: <BODY>,<HEAD>,<HTML> y<TITLE>.

• Elementos de la sección head:<BASE>, <ISINDEX>, <LINK>,<META>, <SCRIPT> y <STYLE>.

• Elementos de formato de bloque: <ADDRESS>, <BLOCKQUOTE>,<CENTER>, <DIV>, <FIELDSET>, <FORM>, <H1>, <H2>,<H3>,<H4>, <H5>, <H6>, <HR>, <ISINDEX>, <NOFRAMES>,<NOSCRIPT>, <P>, <PRE> y <TABLE>.

• Elementos de formato de texto: <A>, <APPLET>, <BASEFONT>,<BDO>, <BR>, <FONT>, <IFRAME>, <IMG>, <MAP>, <OBJECT>,<Q>, <SCRIPT>, <SPAN>, <SUB> y <SUP>.

• Elementos de formato de texto para frases: <ACRONYM>, <CITE>,<CODE>, <DFN>, <EM>, <KDB>, <SAMPLE>, <STRONG> y <VAR>.

• Elementos de formato de texto para fuentes: <B>, <BIG>, <I>, <S>,<SMALL>, <STRIKE>, <TT> y <U>.

Informatika saila 88

Page 89: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 89/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

• Elementos híbridos especiales: <DEL> e <INS>.

• Construcciones especiales SGML: <!DOCTYPE> y <!--.

• Estructura especial de marcos: <FRAMESET>.

• Elementos de modelo de tabla: <CAPTION>, <COL>, <COLGROUP>,<TBODY>, <TFOOT>, <TH>, <THEAD> y <TR>.

• Elementos hijos: los elementos de definición de listas contienen lasetiquetas <DD> y <DT>. Otros tipos de elementos contienen laetiqueta <LI>. El elemento select contiene <OPTION>. El elementomap contiene <AREA>. El elemento frameset contiene <FRAME>. Elelemento fieldset contiene <LEGEND>. Finalmente, los elementos

applet y object contienen <PARAM>.

Notará que muchos elementos pueden usar los “atributos genéricos 4.0”.Éstos son los atributos del lenguaje (LANG y DIR), el atributo informativo

 TITLE, los atributos de estilo e identificación (CLASS, ID y STYLE) y losatributos de evento (onClick…).

Elemento Descripción<!DOCTYPE> Declara la versión precisa de HTML que está usando

Categoría: Construcción especial SGML; sólo puede aparecer muy alprincipio de un documento HTML antes de cualquier otraetiqueta

Etiqueta de inicio: <!DOCTYPE>, necesaria

Etiqueta de final: Elemento vacío

Atributos: Especial

Contenido: ninguno

<!-- Inserta comentarios en un documento HTML que no sevisualizarán en un explorador

Categoría: Construcción especial SGML

Etiqueta de inicio: <!--, necesaria

Etiqueta de final: -->, necesaria

Atributos: Ninguno

Contenido: Cualquier datos a excepción de los guiones(--). Además elsigno (>) puede causar problemas.

<A> Inserta anclas de hipervínculos y puede dar nombre a unasección de un documento.

Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <A>, necesaria

Etiqueta de final: </A>, necesaria

Atributos: HREF, NAME, CHARSET, TARGET, ACCESSKEY y TABINDEX,SHAPE y COORDS, además de los atributos genéricos.

Contenido: Datos y/o elementos de formato de texto(excluyendo otroselementos anchor)

<ACRONYM> Indica que el texto encerrado es un acrónimo o abreviatura

Categoría: Elemento de formato de texto(frase)

Informatika saila 89

Page 90: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 90/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Etiqueta de inicio: <ACRONYM>, necesaria

Etiqueta de final: </ACRONYM>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos y/o elementos de formato de texto

<ADDRESS> Se usa para indicar la dirección del autor

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <ADDRESS>, necesaria

Etiqueta de final: </ADDRESS>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos, elementos  paragraph y/o elementos de formato detexto

<APPLET> Inserta una aplicación Java

Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <APPLET>, necesariaEtiqueta de final: </APPLET>, necesaria

Atributos: CODE, ARCHIVE, OBJECT, CODEBASE, WIDTH, HEIGHT,ALIGN, HSPACE, VSPACE, ALT, NAME además de losatributos genéricos ID, CLASS, STYLE y TITLE.

Contenido: Uno o más elementos  param, seguido de datos y/oelementos de formato texto.

<AREA> Define una zona sobre la que se puede hacer click de unmapa de imagen

Categoría: Elemento hijo: sólo puede usarse en un elemento map

Etiqueta de inicio: <AREA>, necesaria

Etiqueta de final: Elemento vacíoAtributos: SHAPE, COORDS, HREF, TARGET, NOHREF, ALT,TABINDEX,

ACCESSKEY

Contenido: Ninguno

<B> Asigna el formato de negrita al texto encerrado

AVISO: se prefiere <STRONG>

Categoría: Elemento de formato de texto(fuente física)

Etiqueta de inicio: <B>, necesaria

Etiqueta de final: </B>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos y elementos de formato de texto

<BASE> Indica la localización de un documento y puede asignar unvínculo objetivo por defecto

Categoría: Elemento de la sección head

Etiqueta de inicio: <BASE>, necesaria

Etiqueta de final: Elemento vacío

Atributos: HREF, TARGET

Contenido: Ninguno

<BASEFONT> Indica las configuraciónes de fuentes por defecto para elresto del documento

Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <BASEFONT>, necesariaEtiqueta de final: Elemento vacío

Atributos: SIZE, COLOR, FACE, además del atributo genérico ID

Contenido: Ninguno

Informatika saila 90

Page 91: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 91/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<BDO> Modifica la dirección actual del flujo del texto, sólo es útilcuando se trabaja con documentos escritos en idiomas que

se leen de derecha a izquierda.Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <BDO>, necesaria

Etiqueta de final: </BDO>, necesaria

Atributos: DIR, LANG, además de los atributos ID, CLASS, STYLE y TITLE.

Contenido: Datos y/o elementos de formato de texto

<BIG> Hace que el texto encerrado sea una unidad mayor

Categoría: Elemento de formato de texto(fuente física)

Etiqueta de inicio: <BIG>, necesaria

Etiqueta de final: </BIG>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos y/o elementos de formato de texto

<BLOCKQUOTE> Indica una alusión a otra fuente; a menudo la alusión estáen una sangría.

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <BLOCKQUOTE>, necesaria

Etiqueta de final: </BLOCKQUOTE>, necesaria

Atributos: CITE, además de los atributos genéricos

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto

<BODY> Contiene la sección body de un documento HTMLCategoría: Elemento de estructura básica

Etiqueta de inicio: <BODY>, necesaria

Etiqueta de final: </BODY>, necesaria

Atributos: BACKGROUND, BGCOLOR, TEXT, LINK, ALINK, VLINK,ONLOAD Y ONUNLOAD además de los atributos genéricos

Contenido: Datos, elementos de formato de bloque, elementos deformato de texto y además los elementos ins y del.

<BR> Crea un salto de línea

Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <BR>, necesaria

Etiqueta de final: Elemento vacíoAtributos: CLEAR, además de los atributos genéricos ID, CLASS,

STYLE y TITTLE.

Contenido: Ninguno

<BUTTON> Crea un botón como control de formulario

Categoría: Elemento control de formulario

Etiqueta de inicio: <BUTTON>, necesaria

Etiqueta de final: </BUTTON>, necesaria

Atributos: VALUE, NAME, TEYPE, DISABLED, TABINDEX, ACCESSKEY,además de los atributos genéricos 4.0 incluyendo losatributos especiales de eventos ONFOCUS y ONBLUR.

Contenido: Datos, elementos de formato de texto y/o elementos deformato de bloque (excepto los elementos anchor, form,fielset y elementos de control de formulario)

<CAPTION> Crea el título de una tabla

Informatika saila 91

Page 92: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 92/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Categoría: Elemento de modelo de tabla

Etiqueta de inicio: <CAPTION>, necesaria

Etiqueta de final: </CAPTION>, necesaria

Atributos: ALIGN, además de los elementos geneéricos.

Contenido: Datos y/o elementos de formato de texto

<CENTER> Centra horizontalmente su contenido

Categoría: Elemento de formato de texto

Etiqueta de inicio: <CENTER>, necesaria

Etiqueta de final: </CENTER>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos , elementos de formato de bloque y/o elementos deformato de texto

<CITE> Indica una fuente usada como citaCategoría: Elemento de formato de texto(frase)

Etiqueta de inicio: <CITE>, necesaria

Etiqueta de final: </CITE>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos y/o elementos de formato de texto

<CODE> Indica que el contenido es código fuente de ordenador

Categoría: Elemento de formato de texto(frase)

Etiqueta de inicio: <CODE>, necesaria

Etiqueta de final: </CODE>, necesaria

Atributos: Ninguno excepto los genéricos.Contenido: Datos y/o elementos de formato de texto

<COL> Crea una columna o rango de columnas en una tabla

Categoría: Elemento de modelo de tabla

Etiqueta de inicio: <COL>, necesaria

Etiqueta de final: Elemento vacío

Atributos: SPAN, WIDTH, ALIGN, CHAR, CHAROFF,VALIGN

Contenido: Ninguno

<COLGROUP> Crea grupos de columnas en una tabla permitiendo quemuchas de ellas puedan tener un mismo formato con unconjunto de atributos.

Categoría: Elemento de modelo tablaEtiqueta de inicio: <COLGROUP>, necesaria

Etiqueta de final: </COLGROUP>, necesaria

Atributos: Los mismos que COL.

Contenido: Uno o más elementos COL

<DD> Crea una definición en una lista de definición

Categoría: Elemento de formato de texto(frase)

Etiqueta de inicio: <DD>, necesaria

Etiqueta de final: </DD>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto

<DEL> Indica elementos y textos que se consideran borrados deun documento

Informatika saila 92

Page 93: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 93/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Categoría: Elemento híbrido especial

Etiqueta de inicio: <DEL>, necesaria

Etiqueta de final: </DEL>, necesaria

Atributos: CITE, DATETIME, además de los atributos genéricos

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto

<DFN> Indica que el contenido es una definición

Categoría: Elemento de formato de texto(frase)

Etiqueta de inicio: <DFN>, necesaria

Etiqueta de final: </DFN>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos y/o elementos de formato de texto

<DIR> Crea una lista con el estilo directorio

Categoría: Elemento de formato de bloque(lista)Etiqueta de inicio: <DIR>, necesaria

Etiqueta de final: </DIR>, necesaria

Atributos: COMPACT, además de los atributos genéricos

Contenido: Uno o más elementos <LI>

<DIV> Divide un documento en secciones lógicas

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <DIV>, necesaria

Etiqueta de final: </DIV>, necesaria

Atributos: ALIGN, además de los atributos genéricos.

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto

<DL> Crea una lista de definición

Categoría: Elemento de formato de bloque (lista)

Etiqueta de inicio: <DL>, necesaria

Etiqueta de final: </DL>, necesaria

Atributos: COMPACT, además de los atributos genéricos.

Contenido: Uno o más términos de definición y/o una o másdefiniciones; se recomienda que cada término sea seguidopor una definición.

<DT> Crea un término que puede definirse en una lista de

definiciónCategoría: Elemento hijo: sólo puede usarse en un elementodefinition list 

Etiqueta de inicio: <DT>, necesaria

Etiqueta de final: </DT>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Datos y/o elementos de formato de texto

<EM> Indica que el contenido se debe resaltar, a menudo sevisualiza en cursiva

Categoría: Elemento de formato de texto(frase)

Etiqueta de inicio: <EM>, necesaria

Etiqueta de final: </EM>, necesariaAtributos: Ninguno excepto los genéricos.

Contenido: Datos y/o elementos de formato de texto

Informatika saila 93

Page 94: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 94/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<FIELDSET> Agrupa uno o más controles de formulario

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <FIELDSET>, necesaria

Etiqueta de final: </FIELDSET>, necesaria

Atributos: Ninguno excepto los genéricos.

Contenido: Un elemento legend, seguido de controles de formulario.

<FONT> Establece o configura el tamaño, color y/o tipo de la fuente

Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <FONT>, necesaria

Etiqueta de final: </FONT>, necesaria

Atributos: SIZE, COLOR, FACE, además de los atributos genéricos ID,CLASS, STYLE y TITLE

Contenido: Datos y/o elementos de formato de texto

<FORM> Delimita un área que contiene un formulario interactivoCategoría: Elemento de formato de bloque

Etiqueta de inicio: <FORM>, necesaria

Etiqueta de final: </FORM>, necesaria

Atributos: ACTION, METHOD, ENCTYPE, TARGET, ACCEPT-CHARSET,además de los atributos genéricos 4.0, también losatributos de evento especiales ONSUBMIT y ONRESET

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto ( excepto para otros elementos form; unformulario no puede anidarse dentro de otro)

<FRAME> En un documento de marcos, indica el archivo o URL usadocomo contenido de un marco

Categoría: Elemento hijo: sólo se puede usar en un elementoframeset 

Etiqueta de inicio: <FRAME>, necesaria

Etiqueta de final: Elemento vacío

Atributos: SRC, NAME, MARGINWIDTH y MARGINHEIGHT,FRAMEBORDER, NORESIZE y SCROLLING además de losatributos genéricos ID.

Contenido: Ninguno

<FRAMESET> Crea un documento de marcos que define la visualizaciónde documentos múltiples en los distintos marcos de laventana de un explorador

Categoría: Elemento estructura especial de marcos; reemplaza elelemento body en la estructura básica

Etiqueta de inicio: <FRAMESET>, necesaria

Etiqueta de final: </FRAMESET>, necesaria

Atributos: ROWS, COLUMNS, ONLOAD y ONUNLOAD.

Contenido: Cualquier número de elementos frame y/o frameset . También deberíamos usar un elemento noframe aunque nose recomienda del todo.

<H1> Crea un título de primer nivel

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <H1>, necesaria

Etiqueta de final: </H1>, necesariaAtributos: ALIGN, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

Informatika saila 94

Page 95: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 95/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<H2> Crea un título de segúndo nivel

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <H2>, necesaria

Etiqueta de final: </H2>, necesaria

Atributos: ALIGN, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<H3> Crea un título de tercer nivel

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <H3>, necesaria

Etiqueta de final: </H3>, necesaria

Atributos: ALIGN, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<H4> Crea un título de cuarto nivel

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <H4>, necesaria

Etiqueta de final: </H4>, necesaria

Atributos: ALIGN, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<H5> Crea un título de quinto nivel

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <H5>, necesaria

Etiqueta de final: </H5>, necesaria

Atributos: ALIGN, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<H6> Crea un título de sexto nivel

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <H6>, necesaria

Etiqueta de final: </H6>, necesaria

Atributos: ALIGN, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<HEAD> Contiene la sección head de un documento

Categoría: Elemento de estructura básica

Etiqueta de inicio: <HEAD>, opcional

Etiqueta de final: </HEAD>, opcionalAtributos: Los atributos genéricos 4.0 para el idioma (LANG y DIR) y

el atributo PROFILE

Contenido: Debe contener un único elemento title. Además, puedecontener un único elemento isindex y/o un elemento base.

 También puede contener múltiples elementos script, style,meta y link 

<HR> Inserta una línea horizontal para dividir dos seccionesdiferentes

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <HR>, necesaria

Etiqueta de final: Elemento vacío

Atributos: ALIGN, SIZE, WIDTH, NOSHADE, además de los atributosgenéricos (excepto los dos atributos de idioma, LANG yDIR). Se recomienda su uso en hojas de estilo en lugar de

Informatika saila 95

Page 96: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 96/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

estos atributos.

Contenido: Ninguno

<HTML> Contiene al elemento head y body de un documento; si seusan marcos, entonces un elemento frameset  se podrásustituir por el elemento body 

Categoría: Elemento de estructura básica

Etiqueta de inicio: <HTML>, opcional

Etiqueta de final: </HTML>, opcional

Atributos: atributos genéricos 4.0 de idioma (LANG y DIR), ademásdel atributo VERSION

Contenido: Un único elemento head y un elemento body  o unelemento frameset 

<I> Convierte el texto encerrado en cursiva

Categoría: Elemento de formato de texto

Etiqueta de inicio: <I>, necesaria

Etiqueta de final: </I>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<IFRAME> Crea un marco integrado; es decir, una región quecontiene un documento HTML distinto

Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <IFRAME>, necesaria

Etiqueta de final: </IFRAME>, necesaria

Atributos: SRC, NAME, HEIGHT y WIDTH, ALIGN, MARGINWIDTH yMARGINHEIGHT, FRAMEBORDER, SCROLLING

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto

<IMG> Insertar una imagen integrada

Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <IMG>, necesaria

Etiqueta de final: Elemento vacío

Atributos: SRC, ALT, LONGDESC, ALIGN, HEIGHT y WIDTH, BORDER,HSPACE, VSPACE, USEMAP e ISMAP, además de losatributos genéricos

Contenido: Ninguno

<INPUT> Crea uno de los distintos tipos de controles paraformularios, incluyendo los cuadros de texto, botones deradio y botones de envío

Categoría: Elemento de control de formulario

Etiqueta de inicio: <INPUT>, necesaria

Etiqueta de final: Elemento vacío

Atributos: TYPE, VALUE, NAME, SIZE, CHECKED, MAXLENGTH,ACCEPT, DISABLED, READONLY, TABINDEX, ACCESSKEY,ALIGN, además de los atributos genéricos, incluidos loseventos especiales ONFOCUS, ONSELECT, ONCHANGE yONBLUR

Contenido: Ninguno

<INS> Indica elementos y texto que se consideran insertadosdentro de un documento

Categoría: Elemento híbrido especial

Etiqueta de inicio: <INS>, necesaria

Informatika saila 96

Page 97: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 97/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Etiqueta de final: </INS>, necesaria

Atributos: CITE, DATETIME, además de los atributos genéricos

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto

<ISINDEX> Indica que el documento es un índice de búsqueda

Categoría: Elemento de sección head

Etiqueta de inicio: <ISINDEX>, necesaria

Etiqueta de final: Elemento vacío

Atributos: PROMPT para búsquedas mediante petición, además de losatributos genéricos

Contenido: Ninguno

<KBD> Indica que el contenido es una orden de teclado, a menudose visualiza en negrita

Categoría: Elemento de formato de texto (frase)

Etiqueta de inicio: <KBD>, necesaria

Etiqueta de final: </KBD>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<LABEL> Asocia una etiqueta de texto con un control de formulario

Categoría: Elemento de control de formulario

Etiqueta de inicio: <LABEL>, necesaria

Etiqueta de final: </LABEL>, necesaria

Atributos: ACCESSKEY, DISABLED, FOR, además de los atributosgenéricos, incluyendo los atributos de evento ONFOCUS y

ONBLURContenido: Datos y/o elementos de formato de texto; se suele usar

para contener un control de formulario sencillo

<LEGEND> Añade una leyenda a un elemento fieldset 

Categoría: Elemento hijo: solo puede utilizarse en un elementofieldset 

Etiqueta de inicio: <LEGEND>, necesaria

Etiqueta de final: </LEGEND>, necesaria

Atributos: ALIGN, ACCESSKEY, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<LI> Crea un elemento de lista en una lista ordenada,

desordenada, menú o listas de directorioCategoría: Elemento hijo: sólo se puede utilizar en un elemento

unordered list , ordered list , menú o directory 

Etiqueta de inicio: <LI>, necesaria

Etiqueta de final: </LI>, necesaria

Atributos: TYPE, VALUE, además de los atributos genéricos

Contenido: Datos, elementos de formato de bloque (excepto las listasde menú y directorio) y/o elementos de formato de texto

<LINK> Crea relaciones de vínculos a otros documentos y recursos.

Categoría: Elemento de sección head

Etiqueta de inicio: <LINK>, necesaria

Etiqueta de final: Elemento vacíoAtributos: REL o REV, HREF, TARGET, TYPE, MEDIA, CHARSET,

además de los atributos genéricos

Informatika saila 97

Page 98: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 98/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Contenido: Ninguno

<MAP> Crea una colección de zonas de foco para su uso en unmapa de imágenes procesado en el cliente

Categoría: Elemento de formato de texto (especial)

Etiqueta de inicio: <MAP>, necesaria

Etiqueta de final: </MAP>, necesaria

Atributos: NAME, además de los atributos genéricos

Contenido: Uno o más elementos area

<MENU> Crea una lista de estilo “munú”

Categoría: Elemento de formato de bloque(lista)

Etiqueta de inicio: <MENU>, necesaria

Etiqueta de final: </MENU>, necesaria

Atributos: COMPACT, además de los atributos genéricos

Contenido: Uno o más elementos <LI><META> Define información sobre el documento

Categoría: Elemento de sección head

Etiqueta de inicio: <META>, necesaria

Etiqueta de final: Elemento vacía

Atributos: NAME o HTTP-EQUIV junto con el atributo CONTENT,SQUEME, además de los atributos genéricos de idioma(LANG y DIR)

Contenido: Ninguno

<NOFRAMES> Delimita el contenido que debe visualizarse sólo cuando elexplorador no reconoce marcos

Categoría: Elemento de formato de bloqueEtiqueta de inicio: <NOFRAMES>, necesaria

Etiqueta de final: </NOFRAMES>, necesaria

Atributos: además de los atributos genéricos

Contenido: Primer uso: elemento bod y (puede contener datos,elementos de formato de bloque y/o elementos de formatode texto) segúndo uso: datos, elementos de formato debloque y/o elementos de formato de texto.

<NOSCRIPT> Delimita el contenido que sólo se visualizará si elexplorador no reconoce scripts no reconoce scripts activos

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <NOSCRIPT>, necesariaEtiqueta de final: </NOSCRIPT>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos, elemento de formato de bloque y/o elementos deformato de texto

<OBJECT> Inserta un objeto de cualquier tipo, como un sonido, unaimagen, una aplicación, un objeto movie, un archivo detexto u otro documento HTML

Categoría: Elemento de formato de bloque texto (especial)

Etiqueta de inicio: <OBJECT>, necesaria

Etiqueta de final: </OBJECT>, necesaria

Atributos: DATA, HEIGHT y WIDTH, TYPE, ALIGN, HSPACE, VSPACE,BORDER, NAME, TABINDEX, CLASSID, CODEBASE,CODETYPE, STANDBY, DECLARE, ARCHIVE, además de losatributos genéricos

Informatika saila 98

Page 99: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 99/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Contenido: Uno o más elementos param, seguido de datos, elementosde formato de texto y/o elementos de formato de bloque;se pueden anidar varios objetos dentro de otros

<OL> Crea una lista ordenadaCategoría: Elemento de formato de bloque(lista)

Etiqueta de inicio: <OL>, necesaria

Etiqueta de final: </OL>, necesaria

Atributos: COMPACT, TYPE, START, además de los atributos genéricos

Contenido: Uno o más elementos <LI>

<OPTION> Crea elementos menú para un control de formulario delelemento select 

Categoría: Elemento hijo: sólo puede usarse en un elemento select 

Etiqueta de inicio: <OPTION>, necesaria

Etiqueta de final: </OPTION>, necesaria

Atributos: VALUE, SELECTED, DISABLED, además de los atributosgenéricos

Contenido: Datos

<P> Crea un párrafo

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <P>, necesaria

Etiqueta de final: </P>, opcional

Atributos: ALIGN, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<PARAM> Pasa un parámetro a un elemento applet  u object ; este

parámetro controla el funcionamiento de la aplicaciónCategoría: Elemento hijo: sólo puede usarse en un elemento applet u

object 

Etiqueta de inicio: <PARAM>, necesaria

Etiqueta de final: Elemento vacío

Atributos: NAME, VALUE, VALUETYPE y TYPE, además de los atributosgenéricos ID

Contenido: Ninguno

<PRE> Crea un bloque de texto con formato previo para quepueda disponer de líneas en un lugar determinado y creararte textual

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <PRE>, necesaria

Etiqueta de final: </PRE>, necesaria

Atributos: WIDTH, además de los atributos genéricos

Contenido: Datos y/o elementos de formato de texto (excepto loselementos img, big, small, sub, sup, basefont, font, applet y object )

<Q> Crea citas integradas

Categoría: Elemento de formato de texto(especial)

Etiqueta de inicio: <Q>, necesaria

Etiqueta de final: </Q>, necesaria

Atributos: CITE, además de los atributos genéricosContenido: Datos y/o elementos de formato de texto

<S> Hace que el texto encerrado aparezca con una tachadura

Informatika saila 99

Page 100: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 100/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Categoría: Elemento de formato de texto(fuente física)

Etiqueta de inicio: <S>, necesaria

Etiqueta de final: </S>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<SAMP> Indica que el contenido es un ejemplo salido de unprograma de ordenador

Categoría: Elemento de formato de texto(frase)

Etiqueta de inicio: <SAMP>, necesaria

Etiqueta de final: </SAMP>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<SCRIPT> Contiene un script activo

Categoría: Elemento de la sección head; también elemento deformato de texto

Etiqueta de inicio: <SCRIPT>, necesaria

Etiqueta de final: </SCRIPT>, necesaria

Atributos: TYPE y LANGUAGE, SRC

Contenido: Datos que sean un script escrito en un lenguaje de scripts

<SELECT> Crea un control de formulario de menú de selección, yasea un menú desplegable o un cuadro de lista

Categoría: Elemento de control de formulario

Etiqueta de inicio: <SELECT>, necesaria

Etiqueta de final: </SELECT>, necesaria

Atributos: NAME, SIZE, MULTIPLE, DISABLED, TABINDEX, además delos atributos genéricos, incluyendo ONFOCUS, ONCHANGEy ONBLUR

Contenido: Uno o más elementos option

<SMALL> Disminuye en una unidad el texto encerrado

Categoría: Elemento de formato de texto

Etiqueta de inicio: <SMALL>, necesaria

Etiqueta de final: </SMALL>, necesaria

Atributos: Ninguno, excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<SPAN> Elemento genérico de formato de texto, útil para indicardónde se debe aplicar una hoja de estilos, para dar unnombre a una sección usando los atributos genéricosCLASS o ID o para asignar un idioma a una sección

Categoría: Elemento de formato de texto (especial)

Etiqueta de inicio: <SPAN>, necesaria

Etiqueta de final: </SPAN>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<STRIKE> Hace que el texto aparezca tachado

Categoría: Elemento de formato de texto(fuente física)

Etiqueta de inicio: <STRIKE>, necesariaEtiqueta de final: </STRIKE>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

Informatika saila 100

Page 101: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 101/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<STRONG> Indica que el contenido tendrá un estilo enfatizado,normalmente se visualiza en negrita

Categoría: Elemento de formato de texto(frase)

Etiqueta de inicio: <STRONG>, necesaria

Etiqueta de final: </STRONG>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<STYLE> Crea una hoja de estilos incrustada

Categoría: Elemento de sección head

Etiqueta de inicio: <STYLE>, necesaria

Etiqueta de final: </STYLE>, necesaria

Atributos: TYPE, MEDIA y TITLE; además los atributos genéricos de

idioma (LANG y DIR) que especifica el idioma especificadoen el atributo TITLE

Contenido: Datos que son una hoja de estilos escrita en un lenguajede hojas de estilo

<SUB> Usado para indicar una sección como subíndice

Categoría: Elemento de formato de texto (especial)

Etiqueta de inicio: <SUB>, necesaria

Etiqueta de final: </SUB>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<SUP> Usado para indicar una sección como superíndce

Categoría: Elemento de formato de texto (especial)Etiqueta de inicio: <SUP>, necesaria

Etiqueta de final: </SUP>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<TABLE> Crea una tabla de datos

Categoría: Elemento de formato de bloque

Etiqueta de inicio: <TABLE>, necesaria

Etiqueta de final: </TABLE>, necesaria

Atributos: ALIGN, BGCOLOR, WIDTH, COLS, BORDER, FRAME, RULES,

CELLSPACING, CELLPADDING además de los atributosgenéricos

Contenido: Un elemento opcional caption, seguido de cualquiernúmero de elementos colgroup opcionales y/o col, seguidode un elemento thead opcional, seguido de un tfoot opcional, seguido de uno o más elementos tbody .

<TBODY> Crea un grupo de filas en una tabla, utilizado como cuerpode la tabla; conveniente para configurar los atributos demuchas filas de datos al mismo tiempo

Categoría: Elemento de modelo de tabla

Etiqueta de inicio: <TBODY>, opcional

Etiqueta de final: </TBODY>, opcional

Atributos: ALIGN, CHAR, CHAROFF, VALIGN, además de los atributosgenéricos

Contenido: Una o más filas de tabla

<TD> Crea una celda de datos en una tabla

Informatika saila 101

Page 102: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 102/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

Categoría: Elemento de modelo de tabla

Etiqueta de inicio: <TD>, necesaria

Etiqueta de final: </TD>, necesaria

Atributos: BGCOLOR, ROWSPAN y COLSPAN, NOWRAP, AXIS y AXES,ALIGN,CHAR,CHAROFF, VALIGN, WIDTH y HEIGHT, ademásde los atributos genéricos

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto

<TEXTAREA> Crea un control de formulario de área de texto, visualizadocomo un cuadro en el que el navegante puede escribirinformación

Categoría: Elemento de control de formulario

Etiqueta de inicio: <TEXTAREA>, necesaria

Etiqueta de final: </TEXTAREA>, necesariaAtributos: NAME, ROWS, COLS, DISABLED, READONLY, TABINDEX,

además de los atributos genéricos, incluyendo los atributosespeciales de eventos ONFOCUS, ONSELECT, ONCHANGE yONBLUR

Contenido: Datos (la información por defecto de área de texto)

<TFOOT> Crea un grupo de filas en una tabla que se usa como piede la tabla, repetido al final de cada página al imprimirseel documento

Categoría: Elemento de modelo de tabla

Etiqueta de inicio: <TFOOT>, necesaria

Etiqueta de final: </TFOOT>, necesaria

Atributos: Los mismos que el elemento tbody  

Contenido: Uno o más elementos <TR>

<TH> Crea una celda con datos del encabezado de la tabla

Categoría: Elemento de modelo de tabla

Etiqueta de inicio: <TH>, necesaria

Etiqueta de final: </TH>, necesaria

Atributos: Los mismo que el elemento td 

Contenido: Datos, elementos de formato de bloque y/o elementos deformato de texto

<THEAD> Crea un grupo de filas en una tabla como encabezado de

la tabla, repitiéndose en cada página en la impresiónCategoría: Elemento de modelo de tabla

Etiqueta de inicio: <THEAD>, necesaria

Etiqueta de final: </THEAD>, necesaria

Atributos: Los mismos que el elemento tbody 

Contenido: Uno o más elementos <TR>

<TITLE> Crea el título del documento

Categoría: Elemento de sección head que es parte de la escriturabásica

Etiqueta de inicio: <TITLE>, necesaria

Etiqueta de final: </TITLE>, necesaria

Atributos: Ninguno excepto los atributos genéricos del idioma (LANGy DIR)

Contenido: Datos

Informatika saila 102

Page 103: PHP-Parte Basica

5/12/2018 PHP-Parte Basica - slidepdf.com

http://slidepdf.com/reader/full/php-parte-basica 103/103

 

PHP – LinuxIntroducción

Goi eskolapoliteknikoa

<TR> Crea una fila de celdas en una tabla

Categoría: Elemento de modelo de tabla

Etiqueta de inicio: <TR>, necesaria

Etiqueta de final: </TR>, opcional

Atributos: Los mismos que el elemento tbody, además se puede usarBGCOLOR que establece el color de fondo de la fila.

Contenido: Una o más celdas

<TT> Hace que el texto encerrado aparezca con una fuente detamaño fija, fuente del tipo de una máquina de escribir,como Courier

Categoría: Elemento de formato de texto (fuente física)

Etiqueta de inicio: <TT>, necesaria

Etiqueta de final: </TT>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<U> Hace que el texto encerrado aparezca subrayado

Categoría: Elemento de formato de texto (fuente física)

Etiqueta de inicio: <U>, necesaria

Etiqueta de final: </U>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

<UL> Crea una lista desordenada con viñetas que preceden cadaelemento de la lista

Categoría: Elemento de formato de texto (fuente física)

Etiqueta de inicio: <UL>, necesariaEtiqueta de final: </UL>, necesaria

Atributos: COMPACT, TYPE, además de los atributos genéricos

Contenido: Uno o más elementos <LI>

<VAR> Indica que el contenido es una variable de un programa deordenador o un fragmento de información por el usuario

Categoría: Elemento de formato de texto (frase)

Etiqueta de inicio: <VAR>, necesaria

Etiqueta de final: </VAR>, necesaria

Atributos: Ninguno excepto los atributos genéricos

Contenido: Datos y/o elementos de formato de texto

Informatika saila 103