Professional Documents
Culture Documents
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.
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.
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;
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 .
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/"
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.
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.
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.
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.
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(); ?>
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
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.
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.
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)
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 "n" 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 "n" es <b>" . $letra . "</b>"; ?> </font> </td> </tr> </table> </body> </html>