You are on page 1of 43

Captulo 1.

Introduccin
Qu es PHP?
PHP (acrnimo de "PHP: Hypertext Preprocessor") es un lenguaje de "cdigo abierto" interpretado, de alto nivel, embebido en pginas HTML y ejecutado en el servidor. Una respuesta corta y concisa, pero, qu significa realmente? Un ejemplo nos aclarar las cosas: <html>
<head> <title>Ejemplo Php</title> </head> <body> <?php echo "Hola, SISTEMASUNI; soy un script en PHP!"; ?> </body> </html>

Puede apreciarse que no es lo mismo que un script escrito en otro lenguaje de programacin como Perl o C. En vez de escribir un programa con muchos comandos para crear una salida en HTML, escribimos el cdigo HTML con cierto cdigo PHP embebido (incluido) en el mismo, que producir cierta salida (en nuestro ejemplo, producir un texto). El cdigo PHP se incluye entre etiquetas especiales de comienzo y final que nos permitirn entrar y salir del modo PHP. Lo que distingue a PHP de la tecnologa Javascript, la cual se ejecuta en la mquina cliente, es que el cdigo PHP es ejecutado en el servidor. Si tuvisemos un script similar al de nuestro ejemplo en nuestro servidor, el cliente solamente recibira el resultado de su ejecucin en el servidor, sin ninguna posibilidad de determinar qu cdigo ha producido el resultado recibido. El servidor web puede ser incluso configurado para que procese todos los archivos HTML con PHP. Lo mejor de usar PHP es que es extremadamente simple para el principiante, pero a su vez, ofrece muchas caractersticas avanzadas para los programadores profesionales. No sienta miedo de leer la larga lista de caractersticas de PHP, en poco tiempo podr empezar a escribir sus primeros scripts. Con las primeras 2 versiones de PHP, PHP 3 y PHP 4, se haba conseguido una plataforma potente y estable para la programacin de pginas del lado del servidor. Estas versiones han servido de mucha ayuda para la comunidad de desarrolladores, haciendo posible que PHP sea el lenguaje ms utilizado en la web para la realizacin de pginasavanzadas. Sin embargo, todava existan puntos negros en el desarrollo PHP que se han tratado de solucionar con la versin 5, aspectos que se echaron en falta en la versin 4, casi desde

el da de su lanzamiento. Nos referimos principalmente a la programacin orientada a objetos (POO) que, a pesar de que estaba soportada a partir de PHP3, slo implementaba una parte muy pequea de las caractersticas de este tipo de programacin. Algunas caractersticas nuevas de PHP5 son: Nombres predefinidos para los mtodos constructores __construct() y destructores __destruct(), Modificadores de acceso como (public, private y protected a propiedades y mtodos), interfaces, Operador instanceof, Atributos y mtodos static, Clases y mtodos abstractos, Constantes de clase, __autoload(), Clonado de objetos, etc Bueno, creo que ya quedaron claros algunos conceptos as como las nuevas mejoras de PHP5.

Qu se puede hacer con PHP?


PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la informacin de formularios, generar pginas con contenidos dinmicos, o enviar y recibir cookies. Y esto no es todo, se puede hacer mucho ms. Existen tres campos en los que se usan scripts escritos en PHP.

Scripts del lado del servidor. Este es el campo ms tradicional y el principal foco de trabajo. Se necesitan tres cosas para que esto funcione. El intrprete PHP (CGI mdulo), un servidor web y un navegador. Es necesario correr el servidor web con PHP instalado. El resultado del programa PHP se puede obtener a travs del navegador, conectndose con el servidor web. Scripts en la lnea de comandos. Puede crear un script PHP y correrlo sin ningn servidor web o navegador. Solamente necesita el intrprete PHP para usarlo de esta manera. Estos scripts tambin pueden ser usados para tareas simples de procesamiento de texto. Escribir aplicaciones de interfaz grfica. Probablemente PHP no sea el lenguaje ms apropiado para escribir aplicaciones grficas, pero si conoce bien PHP, y quisiera utilizar algunas caractersticas avanzadas en programas clientes, puede utilizar PHP-GTK para escribir dichos programas. Tambin es posible escribir aplicaciones independientes de una plataforma. PHP-GTK es una extensin de PHP, no disponible en la distribucin principal.

PHP puede ser utilizado en cualquiera de los principales sistemas operativos del mercado, incluyendo Linux, muchas variantes Unix (incluyendo HP-UX, Solaris y OpenBSD), Microsoft Windows, Mac OS X, RISC OS y probablemente alguno ms. PHP soporta la mayora de servidores web de hoy en da, incluyendo Apache, Microsoft Internet Information Server, Personal Web Server, Netscape e iPlanet, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd y muchos otros. PHP tiene mdulos disponibles para la mayora de los servidores, para aquellos otros que soporten el estndar CGI, PHP puede usarse como procesador CGI. De modo que, con PHP tiene la libertad de elegir el sistema operativo y el servidor de su gusto. Tambin tiene la posibilidad de usar programacin procedimental o

programacin orientada a objetos. Aunque no todas las caractersticas estndar de la programacin orientada a objetos estn implementadas en la versin actual de PHP, muchas bibliotecas y aplicaciones grandes (incluyendo la biblioteca PEAR) estn escritas ntegramente usando programacin orientada a objetos. Con PHP no se encuentra limitado a resultados en HTML. Entre las habilidades de PHP se incluyen: creacin de imgenes, archivos PDF y pelculas Flash (usando libswf y Ming) sobre la marcha. Tambin puede presentar otros resultados, como XHTM y archivos XML. PHP puede auto generar stos archivos y almacenarlos en el sistema de archivos en vez de presentarlos en la pantalla. Quizs la caracterstica ms potente y destacable de PHP es su soporte para una gran cantidad de bases de datos. Escribir un interfaz va web para una base de datos es una tarea simple con PHP. Las siguientes bases de datos estn soportadas actualmente: Adabas D Ingres Oracle (OCI7 and OCI8) dBase InterBase Ovrimos Empress FrontBase PostgreSQL FilePro (read-only) mSQL Solid Hyperwave Direct MS-SQL Sybase IBM DB2 MySQL Velocis Informix ODBC Unix dbm Adicionalmente, PHP soporta ODBC (el Estndar Abierto de Conexin con Bases de Datos), asi que puede conectarse a cualquier base de datos que soporte tal estndar. PHP tambin cuenta con soporte para comunicarse con otros servicios usando protocolos tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (en Windows) y muchos otros. Tambin se pueden crear sockets puros. PHP soporta WDDX para el intercambio de datos entre lenguajes de programacin en web. Y hablando de interconexin, PHP puede utilizar objetos Java de forma transparente como objetos PHP Y la extensin de CORBA puede ser utilizada para acceder a objetos remotos. PHP tiene unas caractersticas muy tiles para el procesamiento de texto, desde expresiones regulares POSIX extendidas o tipo Perl hasta procesadores de documentos XML. Para procesar y acceder a documentos XML, soportamos los estndares SAX y DOM. Puede utilizar la extensin XSLT para transformar documentos XML.

Captulo 2. Instalacin
Consideraciones generales de instalacin
Antes de instalar PHP, necesitas saber porque utilizarlo. Existen tres campos principales en donde PHP es usado:

Scripts en la parte del servidor Scripts en lnea de comandos Aplicaciones grficas clientes

Este es el campo ms tradicional y el principal campo de trabajo. Se necesitan tres cosas para que esto funcione. El analizador PHP (CGI mdulo), un servidor web y un navegador. Dependiendo de la versin de sistema operativo que utilice, probablemente tenga un servidor web (Apache en Linux IIS en Windows). Tambin se puede alquilar espacio Web en una empresa que ofrezca este servicio. De esta manera no se necesita instalar nada, solamente escribir los scripts PHP, subirlos al espacio alquilado y ver el resultado en el navegador. Tienes dos maneras de utilizar PHP, si instala el servidor y PHP. Existen mdulos directos (tambin llamados SAPI) para muchos servidores Web, como Apache, Microsoft Internet Information Server, Netscape. Si PHP no soporta un mdulo para tu servidor Web, siempre se puede usar como binario CGI. Esto significa que el servidor se configura para usar el ejecutable para lnea de comandos de PHP php.exe en Windows en el procesado de peticiones de ficheros PHP. Con PHP tambin se puede escribir aplicaciones grficas usando la extensin PHPGTK. Esta es una forma totalmente distinta de utilizar PHP que cuando se utiliza para escribir pginas Web, ya que no se genera cdigo HTML sino que se trabaja con ventanas y objetos dentro de las mismas.

Instalacin de PHP5 con Apache en Windows


Cuando se est programando una pgina o aprendiendo a programar para hacer pruebas, muchos usuarios quieren que PHP funcione de una forma local, es decir, que quieren que sus scripts funcionen en su propio ordenador sin necesidad de tener que subir los archivos a un servidor (gratuito o de pago). As que veremos como instalar Apache y PHP en tu ordenador.

Instalando Apache
Instalaremos la versin Apache 1.3.34 y PHP 5.0.3. Empecemos por el principio, lo primero, descrgate la versin de Apache 1.3.34 en su versin para Windows. Para ello podemos acceder por la siguiente URL: http://httpd.apache.org/download.cgi

Bien, ya tienes descargada la versin de Apache, ejecuta el .exe que te has descargado y vamos a seguir los pasos de la instalacin:

Tpica pantalla de bienvenida al Asistente para la instalacin de Apache 1.3.34, pulsamos 'Next >' para continuar la instalacin.

Lo mismo de siempre, leemos la licencia de Apache, y si estamos de acuerdo seleccionamos la opcin 'I accept the terms in the license agreement' (Acepto los trminos de la licencia) y se activar el botn 'Next >', pulsamos sobre l y continuamos;

sta pantalla es informacin sobre Apache...

Bien, aqu ya es lo importante de la instalacin. Network Domain : 127.0.0.1 (Nombre o IP del Ordenador) Server Name : 127.0.0.1 (Nombre o IP del Ordenador) Administrator's Email Address : nuestro e-mail, aunque no es totalmente necesario. Run when started manually, only for me . Seleccionamos esta opcin. La IP 127.0.0.1 es la direccin IP asociada a nuestra mquina, es decir el host local o vulgarmente conocido como Localhost . Es importante decir que a la hora de probar tus scripts en modo local, da igual que pongas 127.0.0.1 o localhost. Finalmente, recordar que el Apache se instala por defecto en la carpeta: C:\Archivos de programa\Apache Group\Apache\. Continuamos con la instalacin hasta llegar a la ltima ventana.

Al pulsar sobre Install se terminar de instalar Apache en tu ordenador, esto puede tardar algunos minutos. Bien, ahora vamos a instalar el PHP. Asegrate ahora de tener cerrado el Apache.

Instalar PHP 5
Hasta ahora lo que hemos hecho es instalar Apache 1.3.34 en nuestro ordenador, bien, ahora la explicacin para instalar PHP 5. Procedemos a descargar el PHP para Windows. El archivo est localizado en la seccin Downloads, apartado Windows Binaries, y es el Zip Package (no el installer, aunque ste ocupe menos luego no nos servir). Una vez descargado todo el ZIP, nos creamos una carpeta en el sitio donde queramos instalar los archivos del servidor (PHP, MySQL...), por ejemplo nos creamos una carpeta en la raz del disco duro y que quede as: C:\Temporal\ copiamos el ZIP en esta carpeta y posteriormente creamos otra carpeta y la llamamos PHP C:\PHP, segn la unidad en donde quiera instalar el Php. Luego extraemos los archivos del ZIP dendro de esa carpeta PHP, tal que los contenidos del ZIP quedarn dentro de la ruta C:\PHP\ Y ahora hay que coger el todos los archivos DLL localizados en la carpeta principal C:\PHP\ y copiarlos al directorio System (en Windows 9x) o System32 (NT,2000,XP,2003) de la carpeta del Windows (los archivos DLL contenidos en la carpeta EXT no hace falta copiarlos). Tan solo hace falta copiar los de la siguiente imagen rodeados con el rectngulo:

Una vez copiados estos archivos en la correspondiente carpeta de Windows toca configurar el php.ini .

Configuracin del archivo php.ini


El siguiente paso es configurar el php.ini. Copiamos el archivo C:\PHP\php.inirecommended a la unidad C:\Windows o C:\WinNt segn la versin de Windows que estemos utilizando y renombramos el archivo por php.ini Ahora lo editamos con el mismo block de notas. Editamos la lnea register_globals = Off y la colocamos el valor: register_globals = On

Qu hago con register_globals? ON u OFF?


Activar esta directiva nos permite asumir que las variables son globales y pueden llegar por cualquier mtodo (POST, GET, COOKIE, SERVER, etc). As, por ejemplo, si utilizamos una variable global de sesin o cookie se puede suplantar fcilmente mediante una variable por url, con lo cual nuestro script no es seguro. Un buen programador de PHP tendra la directiva en OFF y usara los arrays globales ($HTTP_X_VARS) o los superglobales $_POST, $_GET, etc., que estn disponibles a partir de la versin 4.1.X de PHP. Y por qu? Pues por esos temas de seguridad en los script y porque debemos acostumbrarnos a no manejar variables globales ya que en un futuro el PHP tendr la opcin en OFF por defecto y no podremos cambiarla. Sin embargo, por temas de compatibilidad con script antiguos o que hagan uso de variables globales, podra interesarnos activar esta caracterstica, pero repito que lo deseable sera tenerla en OFF y hacer uso de los arrays globales o superglobales. A continuacin vamos a indicar a PHP dnde se guardan las extensiones. Dentro del php.ini buscamos extension_dir y le ponemos la carpeta que contiene los archivos php_xxx.dll , que por defecto es la carpeta ext dentro de PHP. IMPORTANTE: durante toda la configuracin de directorios, debes utilizar esta barra "/" y no esta "\", adems de ponerlo entre comillas. O sea, que debe quedar as:

Directory

in

which

the

loadable

extensions

(modules)

reside.

extension_dir = "C:/PHP/ext/"
Adems podemos activar las extensiones que queramos o necesitemos, para lo cual buscamos Windows Extensions y para cargar las extensiones les quitamos el ; de delante. Por ejemplo, si quisiramos cargar la extensin gd2.dll (para manejar las funciones PHP relativas a imgenes) deberamos cambiar ;extension=php_gd2.dll por extension=php_gd2.dll solo quitamos el punto y coma.. Como nota adicional, resaltar que hay algunas extensiones que requieren de libreras extra que no vienen en el paquete completo de PHP, y para hacerlas funcionar tendremos que buscar dichas libreras. No actives todas las libreras a diestro y siniestro porque luego saldrn errores de que no se encuentra tal archivo; antes de instalar una librera, comprueba que en la carpeta de PHP tienes los archivos DLL correspondientes. IMPORTANTE : la librera php_mysql.dll es la que permite manejar las funciones relacionadas con MySQL, y por defecto en PHP5 viene desactivada, por tanto vamos a activarla de la forma que indicamos antes: buscamos ;extension=php_mysql.dll y le quitamos el ; de delante. Ahora, si vamos a hacer pruebas con upload de archivos via HTTP, debemos indicar el directorio donde los archivos se almacenarn temporalmente. Para ello buscamos upload_tmp_dir y le damos el valor de una carpeta que exista. Por ejemplo, en nuestro directorio C:\Servidor\PHP\ creamos una carpeta uploads, por lo que quedar algo as: ; Temporary directory for HTTP uploaded files (will use system default if not ; specified).

upload_tmp_dir = "C:/PHP/uploads/"
Si queremos cambiar el tamao mximo de los archivo que pueden subirse via HTTP, buscamos upload_max_filesize y cambiamos el valor por defecto que trae, 2M (2 MB), por el que queramos. No se recomienda poner un valor alto. ; Maximum allowed size for uploaded files.

upload_max_filesize = 2M
Para trabajar con sesiones, debemos especificar un directorio donde se guarden los archivos temporales. Al igual que 2 pasos antes, buscamos session.save_path y le damos el valor de un directorio que exista (o lo creamos):

session.save_path = "C:/PHP/sessions/"

Configuracin del archivo httpd.conf de Apache


La forma de configurar el httpd.conf de Apache 1.3.X para PHP 5, hay que editar el archivo httpd.conf que encontramos en la carpeta Conf dentro del directorio del Apache. Abrelo con el bloc de notas o con un editor de texto cualquiera.

Buscamos en el archivo la cadena de texto Dynamic Shared Object (DSO) Support que es donde se cargan los mdulos. Ah vamos a cargar el mdulo de PHP para Apache, dando la direccin del archivo php5apache.dll (PHP5) que lo contiene. Encontramos hasta un ejemplo: # Example: # LoadModule foo_module modules/mod_foo.so # Y ahora aadimos justo debajo de esas lineas lo siguiente: LoadModule php5_module C:/PHP/php5apache.dll Tiene que quedar as: # Example: # LoadModule foo_module modules/mod_foo.so # LoadModule php5_module C:/PHP/php5apache.dll Ahora bajamos un poco por el httpd.conf y llamamos al mdulo mod_php5.c, debe quedar as: ClearModuleList AddModule mod_php5.c #AddModule mod_vhost_alias.c Ahora buscamos en el httpd.conf el modulo mod_dir.c y nos sale esto: <IfModule mod_dir.c> DirectoryIndex index.html </IfModule> Modificamos la lnea central para que si entramos en un directorio tipo http://127.0.0.1/directorio/ nos autoejecute el index predeterminado (si existe) y no nos salga un mensaje de error. Puedes usar ms nombres si lo prefieres. Se ejecutarn por orden: si no encuentra el primero, pasa al segundo; si no est el segundo, pasa al tercero, y as sucesivamente hasta que si no encuentra ninguno entonces da error. En la siguiente lnea, si en nuestro directorio tenemos un index.htm y un index.php, por defecto se ejecutar el index.htm ya que est antes. DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.phtml

Ahora le aadimos debajo estas lneas (en la primera de ellas, si estamos instalando PHP5 tambin podemos aadir la extensin .php5 adems de las que aparecen): AddType application/x-httpd-php .php .php3 .php4 .phtml AddType application/x-httpd-php-source .phps La primera indica las extensiones que sern interpretadas por el Apache. Por ejemplo podemos aadir la extensin .htm o .html para que el Apache ejecute el cdigo PHP contenido en esas pginas (es decir, el uso de cdigo PHP no est limitado exclusivamente a archivos *.PHP). La segunda sirve para que si entras en una pgina loquesea.phps entonces se muestra el cdigo PHP a color, muy til si queremos por ejemplo mostrar el cdigo fuente a color en una pgina. De tal forma que al final todo queda as: <IfModule mod_dir.c> DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.phtml AddType application/x-httpd-php .php .php3 .php4 .phtml AddType application/x-httpd-php-source .phps </IfModule> El directorio predeterminado para guardar nuestras pginas es el htdocs del Apache: C:\Archivos de programa\Apache Group\Apache\htdocs\ Pero podemos cambiarlo fcilmente. Buscamos DocumentRoot y nos sale esto: DocumentRoot "C:/Archivos de programa/Apache Group/Apache/htdocs" Nosotros sustituimos la carpeta htdocs del Apache por la que queramos. Todos los archivos que vayas a probar con el Apache debern estar localizados en esta carpeta. Por ejemplo nos creamos una carpeta WEB dentro del directorio del servidor: DocumentRoot "C:/Servidor/web/" Y ya podemos guardar el archivo httpd.conf (que no se te olvide). Bueno, ya tenemos todo. Ahora tan slo queda comprobar que todo funciona correctamente.

Primera prueba de nuestro servidor Apache


Ahora vamos a probar el Apache y PHP, para lo cual deberemos arrancar el Apache. Slo tenemos que arrancar el apache.exe de la carpeta del Apache para iniciar el servidor, con lo cual nos sale una ventanita de MS-Dos donde nos indicar que est

activo (running) o no. Basta cerrar la ventanita de MS-Dos para desactivar el Apache. Como la siguiente imagen:

En estos momentos nuestro Apache est funcionando. Ahora la prueba. Crear un archivo php, a la que llamaremos test.php, en ella pon lo siguiente: <?php phpinfo(); ?> Ahora en la barra de direccin: http://127.0.0.1/test.php o http://localhost/test.php (recuerda que 127.0.0.1 = localhost) con el Apache activo deberemos visualizar una pgina de informacin de PHP. Si no sale, algo ha fallado, revisa los pasos. La pgina que deberiamos ver es como la siguiente imagen:

Como has podido observar, para acceder a nuestro servidor local y as poder probar nuestros script y las pginas de nuestra web, siempre accederemos con la direccin 127.0.0.1 o localhost (sin WWW) en el navegador pues esta es la direccin del host local de nuestro ordenador. En general, para visualizar o acceder a cualquier archivo (PHP, HTML, TXT, ZIP, GIF, JPG, etc.) que tengamos en nuestra carpeta de la web, lo haremos de la siguiente forma: http://localhost/CARPETA/ARCHIVO.EXT Donde CARPETA es la carpeta (o serie de carpetas) relativas a la raiz en que se encuentra el ARCHIVO.EXT Por tanto resaltar que no slo podemos hacer llamadas a script PHP, sino tambin a pginas HTML, descarga de archivos, imgenes, etc., tan solo poniendo la direccin correcta en el navegador. Es simplemente un servidor. De esta forma, podemos tener nuestra web funcionando en nuestro propio ordenador para construirla desde cero o bien hacer las pruebas que necesitemos sin tener que estar conectados a Internet.

Instalacin de PHP5 en Windows con Internet Information Server (IIS)


Antes de comenzar el proceso de instalacin, nos detendremos en IIS. Si se ha instalado correctamente con los parmetros predeterminados, ya se encontrara en ejecucin. Seleccione: Inicio Configuracin Panel de Control Herramientas Administrativa Servicios, y desplcese hasta el servicio Administracin IIS que este ejecutndose, en caso que no este ejecutndose incielo. Para probar, si esta ejecutando correctamente el IIS, abra su navegador de Internet y en el URL tipee lo siguiente: http://localhost, vera algo similar a la siguiente pantalla.

Seguidamente, nos detendremos en el administrador de servicios de Internet, una aplicacin de consola para administrar IIS y ver como se ha configurado. Seleccione: Inicio Configuracin Panel de Control Herramientas Administrativas Servicios de Internet Information Server, y se abre la pantalla siguiente.

Seguidamente se procede a Instalar el PHP5, pero para ello debe de detener el servicio de IIS, y para ello nos ubicamos en Sitio Web Predeterminado y pulsamos clic derecho sobre y nos muestra un men contextual sobre el men escogemos Detener.

Una vez que el servicio este detenido, se precede a instalar el PHP5 y configurar el archivo PHP.INI, para ello siga los mismos pasos de instalacin y configuracin que hicimos anteriormente.

Configuracin del Internet Information Server (IIS)


Ahora vamos a proceder a configurar el IIS, para que reconozca las paginas de Php, para ello seleccione: Inicio Configuracin Panel de Control Herramientas Administrativa Servicios de Internet Information Server, seguidamente expanda Sitios Web Predeterminado y sobre pulsamos Clic Derecho y escogemos Propiedades. Seguidamente nos muestra la siguiente ventana de propiedades:

Debe de realizar dos cambios muy importantes. Primero, tendr que registrar el filtro ISAPI PHP5, para instalar PHP con su propia SAPI en lugar de cmo binario CGI. Haga clic en la ficha Filtros ISAPI, pulse el boton Agregar y cree un nuevo filtro con el nombre PHP. La carpeta de archivo PHP descargada contiene php5isapi.dll, un filtro ISAPI PHP, en el directorio Isapi. Indique la ruta correcta a dicho archivo, la pantalla siguiente nos muestra esta configuracin.

Tras ello, debe de indicar a IIS a que archivos tiene que aplicar el filtro PHP5. el objetivo es tratar como programas PHP a todos los archivos con la extensin .php. En la ficha Directorio Particular, haga clic en el botn Configuracin. Pulse el botn Agregar del siguiente cuadro de dialogo para abrir el cuadro de Dialogo Agregar o Modificar asignacin de extensin para aplicacin. Como se muestra en la siguiente pantalla:

Seguidamente sobre esa ventana, haga clic sobre el botn Examinar y epecifique la ruta de php5isapi.dll. Indique a IIS que lo aplique a los archivos .php. Para ello debe de introducir .php en el cuadro de texto de Extensin. Haga Clic dos veces en Aceptar. Cierre el cuadro de propiedades e reinicie el IIS.

Cree una carpeta en la carpeta wwwroot. Asignele el nombre que desee como ejemplo DEMOPHP y en ese directorio va a almacenar todos las paginas php que este creando y el acceso a los archivos correspondientes mediante el URL es http://localhost/demophp/pagina.php Ahora para probar que este bien configurado el PHP5 con el IIS, cree el archivo Test.php que anteriormente hemos creado y lo almacena dentro del directorio que hemos creado en el wwwroot.

Instalacin de PHP5 con Apache en Linux


Preinstalacin
Primero necesitamos saber que aplicaciones y libreras requeridas as como las que necesitamos en nuestros desarrollos con PHP5.

Instalacin Apache en Linux

Apache es un software de libre distribucin bajo licencia GPL de GNU, por su gran estabilidad, escalabilidad y robustez lo coloca como uno de los servidores web mas popular de mundo. Lo primero que debemos hacer es revisar si tenemos instalado el servidor apache ya que en la mayora de las distribuciones de Linux viene como servidor Web por defecto y es muy probable que lo tengan instalarlo as que lo primero que hay que hacer es desinstalarlo o decidir si quieren conservarlo. Con el siguiente comando podremos saber si esta instalado: rpm -qa | grep httpd Se listan todos los paquetes que fueron instalados que contienen el nombre de httpd. Si no arroja ninguna salida, entonces quiere decir que no lo tenemos instalarlo de lo contrario podemos utilizar el siguiente comando para desinstalarlo, esto solo aplica si fue instalado como un RPM: rpm -ev httpd Es muy posible que les diga que no se puede eliminar por que tiene dependientes, entonces puede eliminar los mdulos dependientes o simplemente eliminar sin importar los dependencias que tenga http: rpm ev --nodeps httpd Descargar los fuentes de la siguiente direccin: http://ftp.wayne.edu/apache/httpd/httpd-2.0.54.tar.gz Lo colocamos en una carpeta, en mi caso utilizo /usr/local/src/ para las aplicaciones que voy a compilar e instalar. Descomprimir: tar xvfz httpd-2.0.54.tar.gz Abrimos la carpeta: cd httpd-2.0.54 Iniciamos la configuracin: ./configure --prefix=/usr/local/http --enable-deflate --enable-rewrite --enable-so --enable-info --enable-module=proxy --enable-module=perl --enable-suexec --enable-mods-shared=all

Puede que algunos de esto parmetros no se adapten a su servidor por las dependencias, entonces hay que valorar si vale la pena instalar las aplicaciones dependientes o simplemente quitar algunos parmetros que no requiramos. Compilacin Una vez que todo salio bien en la configuracin hay que compilar la aplicacin con el siguiente comando: make Instalacin Si todo marcha bien entonces hay que ejecutar el siguiente comando para instalar la aplicacin que compilamos: make install Listo ahora ya tiene instalado Apache en servidor Linux Ahora hay que hacer algunos preparativos: Agregar variables de entorno al arrancar nuestro servidor, dentro del archivo /etc/profile: PATH=/usr/local/http/bin:$PATH export PATH Listo ya podemos arrancar apache desde cualquier parte obviamente despus de que iniciemos de nuevo la sesin o bien hay que lanzar las variables. /etc/profile Script de arranque Hay que crear un archivo con editor vi o cualquier otro editor que dese: vi /etc/rc.d/init.d/apache Y copiar el siguiente script: #!/bin/bash # chkconfig: - 28 32 # description: Apache Servidor web. # processname: apache # config: /usr/local/http/conf/http.conf # pidfile: prefix=/usr/local/http . /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/httpd ]; then . /etc/sysconfig/httpd fi INITLOG_ARGS=\"\" apachectl=$prefix/apachectl httpd=${HTTPD-$prefix/bin/httpd} prog=httpd RETVAL=0 check13 () { CONFFILE=$prefix/conf/httpd.conf GONE=\"(ServerType|BindAddress|Port|AddModule|ClearModuleList|\" GONE=\"${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|\" GONE=\"${GONE}AccessConfig|ResourceConfig)\" if grep -Eiq \"^[[:space:]]*($GONE)\" $CONFFILE; then echo failure \"Apache 1.3 config directives test\" echo exit 1 fi } start() { echo -n $\"Starting $prog: \" check13 || exit 1 daemon $httpd $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch /var/lock/subsys/httpd return $RETVAL } stop() { echo -n $\"Stopping $prog: \" killproc $httpd RETVAL=$? echo [ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid } reload() { echo -n $\"Reloading $prog: \" check13 || exit 1 killproc $httpd -HUP RETVAL=$? echo } case \"$1\" in start) start ;; stop)

stop ;; status) status $httpd RETVAL=$? ;; restart) stop start ;; condrestart) if [ -f /var/run/httpd.pid ] ; then stop start fi ;; reload) reload ;; graceful|help|configtest|fullstatus) $apachectl $@ RETVAL=$? ;; *) echo $\"Usage: $prog {start|stop|restart|condrestart|reload|status| fullstatus|graceful|help|configtest}\" exit 1 esac exit $RETVAL Posteriormente nos salimos del editor guardando el script y agregamos los permisos de ejecucin: chmod 755 /etc/rc.d/init.d/apache Creamos los enlaces fuertes para los diferentes niveles de ejecucin: cd /etc/rc.d/init.d && ln -sf ../init.d/apache ../rc0.d/K28apache && ln -sf ../init.d/apache ../rc1.d/K28apache && ln -sf ../init.d/apache ../rc2.d/K28apache && ln -sf ../init.d/apache ../rc3.d/S32apache && ln -sf ../init.d/apache ../rc4.d/S32apache && ln -sf ../init.d/apache ../rc5.d/S32apache && ln -sf ../init.d/apache ../rc6.d/K28apache Probamos nuestro servidor con los siguientes comandos:

/sbin/service apache start Arrancar el servidor /sbin/service apache stop Parrar el servidor /sbin/service apache restart Reiniciar el servidor O tambin: /etc/rc.d/init.d/apache start /etc/rc.d/init.d/apache stop /etc/rc.d/init.d/apache restart

Instalacin

Postgresql

sobre

Linux

Si vamos a necesitar algunas bases de datos, por lo regular mysql ya viene instalado al igual que postgresql pero en el caso de que no estn hay que instalarla si es que vamos a desarrollar con estos servidores de bases de datos. En el caso de tener instalada una versin anterior hay que desinstalarla o instalar la nueva en otro directorio. Buscar paquetes dependientes de postgresql instalados con rpm. rpm -qa | grep postgresql Desinstalar postgresql rpm -ev --nodeps postgresql* Descargarse el cdigo fuente de la siguiente direccin: http://www.postgresql.org/download/ Descomprimir tar xvfz postgresql-8.0.3.tar.gz cd postgresql-8.0.3 Configuracin personalizada Esta puede variar segn nuestras necesidades, vamos a ver una de ellas: ./configure --prefix=/usr/local/pgsql/ --exec-prefix=/usr/local/pgsql/ --enable-nls --withperl --with-python --with-pam --enable-odbc --with-unixodbc --with-openssl Compilar Make Instalar

make install Si ocurre un error durante, la configuracin o compilacin entonces tenemos 2 casos que hacer: 1. make clean Instalar las dependencias y repetir el proceso desde la configuracin. 2. make clean Cambiar la configuracin quitando el o los parmetros que nos causa el conflicto y ejecutar esta nueva configuracin siguiendo con el proceso. Creacin de la cuenta de usuario postgres adduser postgres d /data/pgsql su postgres mkdir data /usr/local/pgsql/bin/initdb -D /data/pgsql/data /usr/local/pgsql/bin/postmaster -D /data/pgsql/data >logfile 2>&1 & Agreguemos estas variables de entorno al final del archivo : /etc/profile LD_LIBRARY_PATH=/usr/local/pgsql/lib export LD_LIBRARY_PATH PATH=/usr/local/pgsql/bin:$PATH export PATH MANPATH=/usr/local/pgsql/man:$MANPATH export MANPATH Escribir el script de arranque cat > /etc/rc.d/init.d/postgresql << "EOF" #! /bin/sh # chkconfig: - 26 34 # description: Servidor de base de datos version 8 # processname: posgresql # config: /data/pgsql/data/postgresql.conf # pidfile:/var/run/postmaster.pid PGVERSION=8.0 INITD=/etc/rc.d/init.d . $INITD/functions TYPESET=`typeset -f|grep "declare"` . /etc/sysconfig/network NAME=`basename $0` PGPORT=5432

export PGDATA=/data/pgsql/data if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base/template1 ] then echo "Using old-style directory structure" else export PGDATA=/data/pgsql/data fi prefix=/usr/local/pgsql [ -f /etc/sysconfig/pgsql/${NAME} ] && . /etc/sysconfig/pgsql/${NAME} export PGDATA export PGPORT export PGOPTS [ "${NETWORKING}" = "no" ] && exit 0 [ -f $prefix/bin/postmaster ] || exit 0 start(){ PSQL_START=$"Starting ${NAME} service: " if [ -f $PGDATA/PG_VERSION ] && [ -d $PGDATA/base ] then if [ `cat $PGDATA/PG_VERSION` != $PGVERSION] then SYSDOCDIR="(Your Systems documentation directory)" if [ -d $prefix/doc/postgresql-$PGVERSION ] then SYSDOCDIR=$prefix/doc fi if [ -d $prexif/share/doc/postgresql-$PGVERSION ] then SYSDOCDIR=$prefix/share/doc fi if [ -d $prefix/doc/packages/postgresql-$PGVERSION ] then SYSDOCDIR=$prefix/doc/packages fi if [ -d $prefix/share/doc/packages/postgresql-$PGVERSION ] then SYSDOCDIR=$prefix/share/doc/packages fi echo echo $"An old version of the database format was found.\\\\nYou need to upgrade the data format before using PostgreSQL.\\\\nSee $SYSDOCDIR/postgresql$PGVERSION/README.rpm-dist for more information." exit 1 fi else echo -n $"Initializing database: " if [ ! -d $PGDATA ] then

mkdir -p $PGDATA chown postgres.postgres $PGDATA chmod go-rwx $PGDATA fi [ -f /etc/sysconfig/i18n ] && cp /etc/sysconfig/i18n $PGDATA/../initdb.i18n [ ! -f /etc/sysconfig/i18n ] && echo "LANG=en_US" > $PGDATA/../initdb.i18n echo "export LANG LC_ALL LC_CTYPE LC_COLLATE LC_NUMERIC LC_CTYPE LC_TIME" >> $PGDATA/../initdb.i18n su -l postgres -s /bin/sh -c "$prefix/bin/initdb --pgdata=$PGDATA > /dev/null 2>&1" < /dev/null [ -f $PGDATA/PG_VERSION ] && echo_success [ ! -f $PGDATA/PG_VERSION ] && echo_failure echo fi pid=`pidof -s $prefix/bin/postmaster` if [ $pid ] && $prefix/bin/pg_ctl status -D $PGDATA > /dev/null 2>&1 then echo $"Postmaster already running." else rm -f /tmp/.s.PGSQL.${PGPORT} > /dev/null echo -n "$PSQL_START" su -l postgres -s /bin/sh -c "$prefix/bin/postmaster -D $PGDATA >logfile 2>&1 &" sleep 1 pid=`pidof -s $prefix/bin/postmaster` if [ $pid ] then success "$PSQL_START" touch /var/lock/subsys/${NAME} echo $pid > /var/run/postmaster.${PGPORT}.pid echo else failure "$PSQL_START" echo fi fi } stop(){ echo -n $"Stopping ${NAME} service: " su -l postgres -s /bin/sh -c "$prefix/bin/pg_ctl stop -D $PGDATA -s -m fast" > /dev/null 2>&1 ret=$? if [ $ret -eq 0 ] then echo_success else echo_failure fi

echo rm -f /var/run/postmaster.${PGPORT}.pid rm -f /var/lock/subsys/${NAME} } restart(){ stop start } condrestart(){ [ -e /var/lock/subsys/${NAME} ] && restart } reload(){ su -l postgres -s /bin/sh -c "$prefix/bin/pg_ctl reload -D $PGDATA -s" > /dev/null 2>&1 } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status postmaster ;; restart) restart ;; condrestart) condrestart ;; reload|force-reload) reload ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|force-reload}" exit 1 esac exit 0 EOF chmod 755 /etc/rc.d/init.d/postgresql

ltimos enlaces fuertes cd /etc/rc.d/init.d && ln -sf ../init.d/postgresql ../rc0.d/K26postgresql && ln -sf ../init.d/postgresql ../rc1.d/K26postgresql && ln -sf ../init.d/postgresql ../rc2.d/K26postgresql && ln -sf ../init.d/postgresql ../rc3.d/S34postgresql && ln -sf ../init.d/postgresql ../rc4.d/S34postgresql && ln -sf ../init.d/postgresql ../rc5.d/S34postgresql && ln -sf ../init.d/postgresql ../rc6.d/K26postgresql ya lo puedes arrancar, parar, o reiniciar /etc/rc.d/init.d/postgresql start /etc/rc.d/init.d/postgresql stop /etc/rc.d/init.d/postgresql restart o tambien: /sbin/service postgresql start /sbin/service postgresql stop /sbin/service postgresql restart Hay que hacer algunas modificaciones a la configuracin de postgresql para que pueda escuchar la red, por as como esta solo escucha nada ms peticiones locales localhost postgresql.conf Dentro de postgresql.conf que esta /data/pgsql/dada/ que fue la ruta donde decidimos instalar la base de datos: listen_addresses = '192.168.19.46' password_encryption = trae en esta misma ruta habilitamos los permisos de rangos o que ips que se van conectar remotamente pg_hba.conf local all all password host all all 127.0.0.1 255.255.255.255 password host all all 192.168.19.50 255.255.255.255 password Todava no hay que reiniciar el servidor postgresql para que levante esta nueva configuracin si no asta que demos de lata todos los usuarios de base d datos con sus contrasea correspondientes.

Instalacin de PHP5
Descargar los fuentes del sitio de php en la seccin de descargas http://www.php.net/downloads.php la versin ms actual y estable de PHP5. php-5.0.5 tar.gz Copiamos dentro del rea de fuentes locales, en la carpeta /usr/local/src Descomprimimos: tar xvfz php-5.0.5.tar.gz Configuracin de PHP5 Solo hay que configurar de acuerdo a las libreras que tenemos as como las nuevas que instalamos: ./configure --build=i386-redhat-linux --host=i386-redhat-linux --target=i386-redhatlinux-gnu --program-prefix= --prefix=/usr/local/php5 --cache-file=../config.cache --with-config-file-path=/usr/local/php5/etc --with-config-file-scandir=/usr/local/php5/etc/php.d --enable-force-cgi-redirect --disable-debug --enable-pic --disable-rpath --enable-inline-optimization --with-bz2 --with-db4=/usr --withcurl=/usr/local --with-exec-dir=/usr/bin --with-freetype-dir=/usr/local --with-pngdir=/usr/local --with-gd=/usr/local --enable-gd-native-ttf --without-gdbm --with-gettext --with-ncurses=/usr --with-gmp --with-iconv --with-jpeg-dir=/usr/local --with-openssl --with-png --with-pspell=/usr/local --with-xml --with-expat-dir=/usr --withdom=/usr/local --with-dom-xslt=/usr/local --with-dom-exslt=/usr/local --with-pcreregex=/usr/local --with-zlib --with-layout=GNU --enable-bcmath --enable-exif --enableftp --enable-magic-quotes --enable-safe-mode --enable-sockets --enable-sysvsem --enable-sysvshm --enable-track-vars --enable-trans-sid --enable-yp --enable-wddx --with-pear=/usr/share/pear --with-imap=/usr --with-imap-ssl --with-kerberos --withldap=/usr --with-mysql=/usr --with-pgsql=/usr/local/pgsql/ --with-snmp=/usr/local --enable-ucd-snmp-hack --with-unixODBC=/usr --enable-memory-limit --enable-shmop --enable-calendar --enable-dbx --enable-dio --enable-mbstring=/usr --enable-mbstr-enctrans --enable-mbregex --with-mime-magic=/usr/share/file/magic.mime --withapxs2=/usr/local/http/bin/apxs --with-mygnet Compilamos make Instalamos make install La instalacin agrega una linea dentro del httpd.conf en la seccion de modulos del apache que es la siguiente: LoadModule php5_module modules/libphp5.so Solo resta por agregar los tipos de archivos:

AddType application/x-httpd-php .php AddType application/x-httpd-php .php3 AddType application/x-httpd-php .php4 AddType application/x-httpd-php .php5 AddType application/x-httpd-php-source .phps Cerramos el httpd.conf y reiniciamos el servidor Apache Y realizamos la prueba: vi info.php y escribimos: <? Phpinfo(); ?>

Captulo 3. Generalidades PHP5


Generalidades
La caracterstica ms importante de PHP es que permite combinar cdigo html y cdigo php en una misma pgina (de extensin php), por ejemplo:
<html> <head> <title>Ejemplo PHP Pagina1</title> </head> <body> Hola estamos en el Curso de PHP.. <br /> <?php print(Hola soy el Profesor Yuri Pando. <br />); ?> </body> </html>

Este ejemplo al guardarse en un archivo de extensin .php es automticamente analizado por el interprete de php cuando el browser enva un pedido. El ciclo es el siguiente: El browser enva un pedido de un archivo con extensin php. El server analiza que la extensin del request es .php, obtiene el archivo y lo enva al interprete php. El interprete php del web-server parsea el archivo en busca de tags <? ?> y procesa todo lo que se encuentre entre dichos tags (puede haber varias apariciones de los tags en un mismo archivo), todo aquello que esta fuera de los tags se enva al browser sin interpretar. El resultado combinado de aquello que no debe interpretarse y el resultado del cdigo interpretado se enva al browser. En nuestro ejemplo el browser recibira:
<html> <head> <title> Ejemplo PHP Pagina1</title> </head> <body> Hola estamos en el Curso de PHP.. <br /> Hola soy el Profesor Yuri Pando <br /> </body> </html>

Como podemos ver, es muy sencillo combinar cdigo html y php. Para generar html desde php tenemos algunas de las siguientes opciones: Usar la funcin print de php

Usar la funcin echo de php Cerrar el tag ?> escribir el cdigo html deseado y volver a abrir el tag <? La tercera opcin es la ms eficiente en velocidad cuando el cdigo html que debemos generar es fijo, cuando el cdigo html es dinmico podemos usar una mezcla de print y tags que abren y cierran que suele ser lo mas eficiente, por ejemplo: <form name=< ? print($nombre_form)?> > etc

Conceptos bsicos en la generacin de sites dinmicos con PHP.


Una caracterstica interesante de php es que permite realizar includes dentro de un script php, de esta forma se puede modula rizar una pgina o el layout de una pgina en varios mdulos php que se desarrollan en forma independiente, adems pueden desarrollarse en php componentes reusables que luego se utilizan en otras pginas o incluso en otros sites. Una forma comn de trabajo usando php para generar sitios dinmicos es definir templates o layouts en los cuales se divide la pgina en zonas o mdulos que sern desarrollados en php, el layout de la pgina con la forma y tamao de cada zona se puede definir sin problemas usando por ejemplo tablas de html.

Funcionalidad de PHP
Funciones de calendario y manipulacin de calendarios usando MCAL Programacin orientada a objetos Funciones para creacin de archivos PDF Funciones de manejo de cajeros cybercash Analizador de documentos XML WDDX Funciones de compresin de datos Manejo de archivos DBM Funciones para manipulacin de fechas Funciones para manejo de directorios Funciones de encripcin de datos Funciones de acceso al filesystem Funciones para manejo de FTP Funciones de hashing Generacin dinmica de imgenes Manejo de cuentas de mail IMAP y POP3 Funciones para envi de mail Funciones de networking usando sockets Funciones matemticas Serializacin de estructuras de datos Acceso a bases de datos (Mysql, Oracle, Postgress, Sybase, etc) Manejo de expresiones regulares.

Manejo de sesiones.

Captulo 4. Introduccin al Lenguaje


Conociendo el Lenguaje
PHP es un lenguaje no posicional, por lo que no importa la columna en la cual se comience a escribir el cdigo. Tampoco influye sobre el cdigo la cantidad de saltos de lnea (enter) que se coloquen, ni la cantidad de espacios. La forma en la que se separan las distintas sentencias es mediante la utilizacin de ;. En PHP cada sentencia debe finalizar con ;. Se puede escribir ms de una sentencia en la misma lnea siempre y cuando las mismas se encuentren separadas con ;.

Comentarios
En PHP hay 3 formas distintas de incluir comentarios: /* Al estilo de C en donde el comentario empieza y termina delimitado por barra asterisco y asterisco barra */ O bien usando // Comentario O por ltimo # Comentario En las dos ltimas variantes el comentario empieza en donde se encuentra el // o el # y termina cuando termina la lnea.

Tipos de Datos
PHP admite muchos tipos de datos estructurados y sencillos. Los tipos de datos sencillos son los que contienen un rango de valores que se pueden ordenar en una dimension (cadenas, numeros, valores booleanos, etc), mientras que los tipos de datos estructurados incluyen matrices y objetos. PHP cuenta con ocho tipos simples que describimos en las siguientes tablas: Tipo de Datos Booleano Entero Flotante Descripcin Escalar; puede ser True o Falso Escalar; un numero entero Escalar; un numero que puede tener un decimal.

Cadena Matriz Objeto Recurso NULL

Escalar; una serie de caracteres Compuesto; una asignacin ordenada ( contiene nombres asignados a valores ). Compuesto; un tipo puede contener propiedades y mtodos. Especial; contiene una referencia a un recurso externo, como por ejemplo un controlador de un archivo abierto. Especial; puede contener nicamente NULL como valor, lo que significa que explcitamente la variable no contiene ningn valor.

En general el tipo de dato de una variable no es decidido por el programador sino que lo decide el lenguaje en tiempo de ejecucin, la instruccin settype puede usarse para forzar el tipo de dato de una variable en los raros casos en que esto sea necesario. Todas las variables en php se denotan utilizando el signo $ precediendo al nombre de la variable.

Enteros
$a = 1234; $a = -123; $a = 0123; $a = 0x12; // nmero enterol // nmero negativo // nmero octal (83 en decimal) // nmero en hexadecimal (18 decimal)

Flotantes
Los nmeros de punto flotante pueden notarse de la siguiente manera: $a = 1.234; $a = 1.2e3;

Cadena
En PHP las cadenas tienen un manejo similar al utilizado en C o C++, estn predefinidos los siguientes caracteres especiales: \n \r \t \\ \$ \ Nueva lnea Salto de carro (carring return) Tabulacin Barra invertida Signo dolar Comillas doble

Una cadena puede inicializarse usando comillas dobles o comillas simples. Cuando se utilizan comillas dobles el interprete de php analiza previamente la cadena, es decir que reemplaza los nombres de variables que encuentra en la cadena por el contenido de la variable. Cuando se usan comillas simples la cadena se imprime tal y como figura sin ser analizada. Ejemplo:

$x=Juan; $s=Hola $x; $t=Hola $x $s vale Hola Juan y $t vale Hola $x. Se pueden concatenar cadenas usando el operador . de la siguiente manera: $x=Hola; $y=SistemasUni; $s=$x.$y; // $s es igual a HolaSistemasUni. $s=$x. .$y; // Aqu $s vale Hola SistemasUni

Vectores
Los vectores en php actan tanto como vectores tradicionales (indexados por nmero) as tambin como vectores asociativos (indexados por clave). Los vectores pueden crearse usando las instrucciones list o array o bien inicializando en forma explcita cada elemento del vector. $a[0]=hola $a[1]=SistemasUni; $a[clave]=uni; Utilizando la notacin especial $v[]; se pueden agregar elementos a un vector. $a[0]=uni; $a[1]=SistemasUni; $a[]=sistemas; #Asigna a $a[2] el valor sistemas. Existen funciones especiales para ordenar vectores, contar la cantidad de elementos de los mismos, recorrerlos, etc.

Matrices
La definicin, inicializacin y uso de matrices en PHP es sencilla. Se puede pensar una matriz en PHP como un vector de vectores, por lo que se puede utilizar la misma lgica que en los primeros. $a[0][1]=Uni; $a[0][clave]=Sistemas; $a[clave1][clave2][0][1]=SistemasUni; etc Para incluir el valor de un elemento de un vector en una cadena se deben usar llaves para indicar el alcance del nombre de la variable a reemplazar: echo Esta es una prueba {$a[0][1]}; Una forma til de inicializar un vector asociativo es usando la siguiente notacin:

$a = array ( color => rojo, edad => 23, nombre => juan ); Para crear una matriz se pueden anidar las declaraciones de tipo array. $a = array( "apple" => array( "color" => "red", "taste" => "sweet", "shape" => "round" ), "orange" => array( "color" => "orange", "taste" => "tart", "shape" => "round" ), "banana" => array( "color" => "yellow", "taste" => "paste-y", "shape" => "banana-shaped" ) );

Constantes Definidas
En PHP tambien podemos definir contenedores de valores denominados constantes. Las constantes, como su nombre implica, solo se pueden definir una vez en un programa PHP, por medio de la funcin define( ), y su valor nunca cambia. Se diferencian de las variables en que los nombres no empiezan por el signo dlar. Las constantes solo pueden contener valores escalares como booleanos, enteros, flotante y cadena, no pueden contener valores como matrices y objetos. Se pueden utilizar en cualquier parte de un programa PHP independientemente del ambito de las variables y distingue entre mayusculas y minusculas. Para definir una constante debe utilizar la funcion define( ) e incluir entre los parntesis el nombre que haya seleccionado para las constantes, seguido por el valor de la misma, como se muestra a continuacin: define(PI,3.14151692); // PI siempre tiene el valor 3.14151692 echo PI; // muestra al usuario el valor de PI que es 3.14151692 Luego las constantes pueden usarse como variables tradicionales ($PI) con la salvedad de que no se les puede asignar un valor.

Operadores

Los operadores aritmticos en PHP tambin se asemejan al C, en las cuales podemos traajar con los siguientes tipos : Tipo Aritmtico Asignacin Comparacin Control de Errores Incremento/Decremento Lgico Cadena Descripcin Realiza operaciones aritmticas comunes, como suma, resta, multiplicacin, divisin, resto aritmtico. Asigna valores a las variables. Compara valores de forma booleana. Devuelve True o False Afecta la resolucin de errores. Incrementa o reduce una variable Operadores booleanos como AND, OR y NOT que se pueden utilizar para incluir o excluir. Concatena cadenas

Operadores Aritmticos
$a + $b; //suma $a - $b; //resta $a++; //pos-incremento, esta sentencia devuelve el valor de $a y lo incrementa en 1. ++$a; //pre-incremento, incrementa en 1 el valor de $a y devuelve el valor incrementado $a--; //pos-decremento --$a; //pre-decremento $a * $b; //multiplicacin $a / $b; //divisin $a % $b; //resto aritmetico

Asignacin
La asignacin se resuelve con el signo igual (=). $a=5; $a=$b; $b=($c=6); //Asigna 5 a $a //Asigna el valor de $b a $a //Asigna 6 a $c y a $b

Y pueden combinarse asignacin y operadores de la forma: $a+=5; $x.=hola; //Suma y asigna 5 a $a //Concatena $x con hola

Comparaciones
$a = = $b; $a = = = $b; $a >= $b; $a <= $b; $a != $b; //true si $a igual a $b //true si $a igual a $b y adems son del mismo tipo //mayor o igual //menor o igual //true si a y b son distintos

Control de Errores
Cuando se antepone @ a una expresin se suprimen los errores que la expresin pudiera generar. Ejemplo: @($c=$a/$b);

Operadores lgicos
$a && $b; $a || $b; $a xor $b; !$a; //True si $a es true y $b es true //True si $a es true o $b es true //Or exclusivo //True si $a es falso (NOT)

Operador y Funciones Cadena


Solo existe un operador de cadena: el punto ( . ), pero PHP cuenta con numerosas funciones de cadena que le permiten manipular cadenas en forma eficaz. Operador de Concatenacin El operador de concatenacin ( . ) se puede utilizar entre valores de cadena para combinarlos. Veamos como se utiliza en un programa PHP.
<?php $nombre = "Yuri"; $apellido = "Pando"; $ambos_datos = $nombre . " " . $apellido; echo "Nombres y Apellidos = <b>$ambos_datos</b>"; ?>

Funcion Strlen( ) La funcion Strlen( ) busca la longitud de una cadena. Cuenta todos los caracteres de la cadena y devuelve el total. En el siguiente ejemplo muestra la longitud de la cadena y lo muestra en pantalla.
<?php $nombre = "Yuri"; $apellido = "Pando"; $ambos_datos = $nombre . " " . $apellido; $longitud = strlen($ambos_datos); echo "Nombres y Apellidos = <b>$ambos_datos</b><br>"; echo "Longitud de la Cadena <b>$longitud</b>"; ?>

Funcin Strstr( ) La funcion Strstr( ) obtiene cualquier parte de una cadena que se encuentra tras la primera instancia de un determinado carcter o cadena dentro de una cadena. En el siguiente ejemplo, el valor de la variable $ambos_datos (Yuri Pando) se busca hasta la primera instancia del espacio, y tras ellos la funcion strstr( ) devuelve todo lo que se encuentre despus del espacio.

<?php $nombre = "Yuri"; $apellido = "Pando"; $ambos_datos = $nombre . " " . $apellido; $longitud = strlen($ambos_datos); $funcion_strstr = strstr($ambos_datos, " "); echo "Nombres y Apellidos = <b>$ambos_datos</b><br>"; echo "Longitud de la Cadena <b>$longitud</b><br>"; echo "La Parte despues del espacio es <b>" . $funcion_strstr . "</b>"; ?>

Funcion Strpos( ) La funcion Strpos( ), se utiliza para determinar si una cadena de busqueda existe dentro de una cadena buscada y devuelve un valor numerico que indica el punto en el que se inicia la cadena de busqueda. En el siguiente ejemplo vamos a buscar dentro de la variable $ambos_datos el carcter n.
<?php $nombre = "Yuri"; $apellido = "Pando"; $ambos_datos = $nombre . " " . $apellido; $longitud = strlen($ambos_datos); $funcion_strstr = strstr($ambos_datos, " "); $posicion = strpos($ambos_datos, "n"); echo "Nombres y Apellidos = <b>$ambos_datos</b><br>"; echo "Longitud de la Cadena <b>$longitud</b><br>"; echo "La Parte despues del espacio es <b>" . $funcion_strstr . "</b><br>"; echo "La posicion del caracter &quot;n&quot; es <b> " . $posicion . "</b>"; ?>

Ejercicio El siguiente ejemplo vamos a crear una pagina PHP en la cual vamos a trabajar con las funciones de cadena que anteriormente hemos estado estudiando esta pagina se va a llamar Trabajando_con_cadenas.php.
<html> <head> <title>Trabajando con Cadena en PHP5</title> </head> <body bgcolor="#FFFFFF"> <h1>Trabajando con Cadena en PHP5</h1> <table width="100%" border="1"> <tr> <td width="49%"> <font face="Arial, Helvetica, sans-serif" size="-1"> Usando Concatenacion - El . operador </font></td> <td width="51%"> <font face="Arial, Helvetica, sans-serif" size="-1"> <?php $nombre = "Yuri"; $apellido = "Pando"; $ambos_datos = $nombre . " " . $apellido; echo "Nombres y Apellidos = <b>$ambos_datos</b>"; ?>

</font></td> </tr> <tr> <td width="49%"> <font face="Arial, Helvetica, sans-serif" size="-1"> Buscando Longitud de Cadena - Usando <b>strlen()</b> </font> </td> <td width="51%"> <font face="Arial, Helvetica, sans-serif" size="-1"> <?php $longitud = strlen($ambos_datos); echo "La Longitud es <b>" . $longitud . "</b>"; ?> </font> </td> </tr> <tr> <td width="49%"> <font face="Arial, Helvetica, sans-serif" size="-1"> Mostrando parte de una cadena usando <b> strstr() </b> </font> </td> <td width="51%"> <font face="Arial, Helvetica, sans-serif" size="-1"> <?php $funcion_strstr = strstr($ambos_datos, " "); echo "La parte de la cadena despues del espacio es <b>" . $funcion_strstr . "</b>"; ?> </font> </td> </tr> <tr> <td width="49%"> <font face="Arial, Helvetica, sans-serif" size="-1"> Ubicando posicion de una cadena - usando <b>strpos() </b> </font> </td> <td width="51%"> <font face="Arial, Helvetica, sans-serif" size="-1"> <?php $letra = strpos($ambos_datos, "n"); echo "La posicion de la letra &quot;n&quot; es <b>" . $letra . "</b>"; ?> </font> </td> </tr> </table> </body> </html>

You might also like