Post on 14-Jul-2015
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
5/12/2018 PHP-Parte Basica - slidepdf.com
http://slidepdf.com/reader/full/php-parte-basica 62/103
PHP – LinuxIntroducción
Goi eskolapoliteknikoa
$email = ”iarenuno@eteo.mondragon.edu”;$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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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