Manual Users - PHP
Manual Users - PHP
Obtencin 16
Licencia de uso 17
Versiones 18
PHP 3 19
PHP 4 19
PHP 5 20
Qu versin utilizar? 22
Extensiones en PHP 23
Bases de datos 25
Ventajas de trabajar
con extensiones 26
Bibliotecas incorporadas 26
Facilidad de aprendizaje 28
Portabilidad 28
Resumen 29
Actividades 30
Captulo 1
En este captulo encontraremos
una serie de notas referentes
al lenguaje de programacin PHP:
cmo adquirirlo, sus versiones,
sus principales caractersticas
y dems temas que servirn de base
para los captulos subsiguientes.
PHP y MySQL
SERVICIO DE ATENCIN AL LECTOR: [email protected]
01_PHPyMySQL.qxd 6/2/05 15:03 Page 15
OBTENCIN
PHP, acrnimo de Hypertext Preprocessor, es un lenguaje de programacin que
se utiliza en la mayora de los casos para el desarrollo de sitios web, pero que pa-
ra muchos es un lenguaje de propsito general y el uso que se le d depender en
gran parte de las necesidades que posea el programador.
Entre las caractersticas que hacen de PHP un lenguaje popular y muy poderoso pa-
ra desarrollar aplicaciones, podemos citar las siguientes:
Programacin de pginas dinmicas en servidores.
Programacin de aplicaciones de escritorio con GTK (PHPGTK).
Soporte para trabajar con mltiples bases de datos.
Soporte para mltiples plataformas.
Soporte para mltiples servidores.
Facilidad de aprendizaje.
Portabilidad de cdigo entre diferentes plataformas.
Total libertad para distribuir las aplicaciones.
Para obtener una copia de PHP, deberemos ingresar a su sitio web, www.php.net/
downloads/, y seleccionar la opcin que coincida con nuestro sistema operativo.
Figura 1. rea de descargas en el sitio web de PHP.
Segn Netcraft (www.netcraft.com), compaa que se dedica entre otras cosas a
brindar estadsticas acerca del uso de tecnologas en Internet desde 1995, la utiliza-
PHP Y MYSQL
16 usr.code
01_PHPyMySQL.qxd 6/2/05 15:03 Page 16
cin de PHP en servidores viene creciendo en forma sostenida y se hace cada vez
ms popular, como se ve en la figura.
Figura 2. Uso de PHP en servidores a travs del tiempo. (Fuente: http//news.netcraft.com).
LICENCIA DE USO
Se mencion con anterioridad que PHP es un lenguaje libre. Este trmino se refie-
re al tipo de licencia que tiene, y consiste, bsicamente, en tres puntos o libertades:
La primera libertad es la de usar el programa (PHP).
La segunda es la de poder modificar el programa accediendo a su cdigo fuente.
La tercera es la de distribuir el programa modificado o no.
La licencia de PHP est disponible en www.php.net/license o, tambin, viene jun-
to con el programa en el archivo license.txt.
La redistribucin, modificacin y uso de PHP estn permitidos bajo las siguientes
normas (licencia versin 3.0):
Licencia de uso
17 usr.code
PHP es en realidad un acrnimo recursivo de PHP Hypertext Pages, ya que utiliza su propio acr-
nimo como parte de su acrnimo. Tambin ocurre esto con GNU, acrnimo recursivo de GNU'S
Not Unix. En el caso de PHP se eligi la primera letra P (que podra haber sido cualquier otra)
porque en algn momento (en los inicios del lenguaje) ste se llam Personal Home Page Tools.
MI NOMBRE ES MI NOMBRE
01_PHPyMySQL.qxd 6/2/05 15:03 Page 17
La redistribucin del cdigo fuente de PHP debe estar siempre acompaada de la
licencia y copyright de PHP.
No puede usar el nombre PHP para promocionar sus productos, a menos que
tenga permiso por escrito del PHP Group.
No hay una empresa comercial detrs de PHP; las continuas mejoras y avances
dentro del lenguaje resultan de una gran comunidad de desarrolladores que con-
tribuyen, sin obtener rditos comerciales, con: cdigo fuente, soporte a otros usua-
rios a travs de listas de correo, revisin del programa en busca de errores, notifi-
cacin de fallas de seguridad, y ms.
Sobre esta base se sostiene una licencia que, justamente, asegura la libertad del len-
guaje y no permite bajo concepto alguno que alguien obtenga beneficios comercia-
les de PHP y sea el dueo del lenguaje: ste es el espritu de la licencia.
Cuando se desarrolla una aplicacin y se la vende a terceros el importe que se cobra
no es el lenguaje de programacin sino la solucin a un problema, el tiempo inver-
tido en el desarrollo, el soporte, u otro particular.
VERSIONES
Esta seccin no pretende repasar la historia de PHP, sino que, por el contrario, tie-
ne como objetivo realizar una breve resea de las caractersticas principales y los
cambios que sufri el lenguaje desde la versin 3 hasta la 5 inclusive.
PHP tuvo versiones anteriores a la 3, pero elegimos sta como punto de partida por-
que es la versin ms antigua que puede verse hoy en da en algunos sitios.
Esto sucede, mayormente, porque los sitios en cuestin que fueron desarrollados
en origen cuando esta versin era la ltima cumplen con un objetivo preciso y no
han necesitado actualizacin a versiones posteriores.
Hoy, la mayora de las aplicaciones estn programadas con la versin 4, aunque es-
tn migrando de forma constante a PHP 5.
PHP Y MYSQL
18 usr.code
PHP naci originalmente como un contador de visitas al sitio web que contena el currculum de
su creador Rasmus Lerdorf en 1995. Estaba programado en PERL. Lerdorf realiz algunas me-
joras y agreg nuevas funcionalidades para luego liberar el cdigo fuente al pblico. En 1997 An-
di Gutmans, Zeev Zuraski y Lerdorf rescribieron el cdigo y anunciaron la versin 3 de PHP.
EL PRINCIPIO
01_PHPyMySQL.qxd 6/2/05 15:03 Page 18
PHP 3
PHP versin 3 fue creado en 1997 y se lo considera una continuacin de una ver-
sin anterior de PHP llamada PHP/FI 2.0, aunque llamarla continuacin es re-
lativo porque el cdigo se rescribi completamente, y slo se mantuvieron su for-
ma de trabajar y algunas funciones implementadas: la idea era mantener a los usua-
rios de PHP/FI y seguir trabajando en conjunto con ellos.
Ya en esta versin, PHP tena caractersticas que perduraron en el tiempo y an hoy
son un punto fuerte del lenguaje: soporte para una gran cantidad de bases de datos,
interaccin con protocolos de red y uso de extensiones.
En cuanto a la orientacin a objetos (POO), la versin 3 le daba soporte a medias,
sin implementar todas las posibilidades de este paradigma.
Se vislumbraba ya por estos tiempos a una gran cantidad de personas (decenas de
millares de usuarios y cientos de miles de sitios web) que se encontraban interesa-
das no nicamente en utilizar sino, tambin, en colaborar con el lenguaje. PHP 3.0
se lanz de manera oficial en el mes de junio de 1998.
PHP 4
Tomando como punto de referencia la versin anterior, el ncleo (parte del progra-
ma que se encarga de administrar los procesos) de PHP fue rescrito para la versin
4. Esto se dio porque al ser cada vez ms popular, las aplicaciones existentes en el
mercado fueron hacindose ms complejas y requeran mayor velocidad en la eje-
cucin que la que poda ofrecer PHP versin 3.
El nuevo ncleo se denomin Motor Zend (en referencia a los nombres de sus prin-
cipales desarrolladores, Zeev Zuraski y Andi Gutmans).
Otras mejoras importantes son: el soporte para la mayora de los servidores web, las
funciones para el manejo de sesiones HTTP, los buffer de salida y la inclusin de
gran cantidad de funciones de propsitos diversos.
La versin 4 lleg a estar instalada en ms del 20% de los dominios en Internet. En
cuanto a la POO, el soporte que PHP ofreca, prcticamente, no se lleg a modificar
con relacin a la versin 3. Lo que s se modific fue su uso, ya que se volvi habitual
para gran cantidad de usuarios, generalmente, en aplicaciones de gran tamao. Este
Versiones
19 usr.code
Al momento de descargar la ltima versin de PHP desde su sitio oficial, encontrar archivos con
distintas extensiones (.zip, .tar.bz, tgz). Debe saber que todos contienen la misma informacin, y
la eleccin de descargar uno u otro depender de si tiene o no un programa descompresor que
pueda trabajar con dichas extensiones.
EXTENSIN DE LA DISTRIBUCIN
01_PHPyMySQL.qxd 6/2/05 15:03 Page 23
(llamadas built in) y las que estn en las bibliotecas aadidas, que se tienen que ins-
talar en el sistema de forma especfica.
Las extensiones o bibliotecas componen el segundo grupo. Se podra decir que
para utilizar ciertas funciones hay que extender el lenguaje.
Una vez que se instalan y se habilitan esas bibliotecas (ya veremos cmo hacerlo), el
comportamiento de las funciones componentes dentro del cdigo de nuestros pro-
gramas es idntico al de cualquier funcin o procedimiento, o sea que la programa-
cin se vuelve independiente y transparente al origen de las funciones.
Las extensiones en PHP pueden agruparse por funcionalidad, es decir que podra-
mos encontrarnos con una extensin para manipular cadenas de caracteres, otra pa-
ra acceder a bases de datos, otra para trabajar con archivos XLS, y dems.
Para instalar estas extensiones, tenemos que seguir una serie de pasos: el prime-
ro de ellos es abrir el archivo php.ini (si estamos trabajando con PHP versin 3
el archivo, probablemente, se llame php3.ini; desde la versin 4 en adelante se ha
convenido en llamarlo simplemente php.ini), buscar la lnea que comienza con
extension_dir y reemplazarla por extension_dir = "c:\PHP\extensions", en caso de
que C:\PHP\extensions sea en donde tenemos almacenadas las extensiones que
vienen incluidas con PHP. Para saber en qu lugar se encuentran las extensiones,
debemos buscar dentro del directorio en donde instalamos PHP una carpeta lla-
mada extensions (o ext) y copiar la ruta completa hasta all a la lnea extension-
_dir del php.ini, tal como se mostr anteriormente.
Guardar las extensiones en un solo lugar implica el beneficio de no tener que indi-
car la ruta completa a la extensin cada vez que queramos usarla. Segn estemos tra-
bajando sobre sistemas Linux/Unix o Windows habr diferencias tales como:
Linux usa la barra / para acceder a subdirectorios (el directorio de extensiones po-
dra ser /usr/lib/PHP3), mientras que Windows usa la barra \.
Las extensiones en Linux son archivos .SO, en Windows son .DLL.
Ahora slo nos queda habilitar las extensiones que vayamos a usar. Lo nico que de-
bemos hacer es buscar dentro del archivo php.ini una lista del tipo (con archivos ter-
minados en .SO o .DLL segn corresponda):
PHP Y MYSQL
24 usr.code
Hay programas que nos ofrecen descargar PHP, MySQL y Apache en un solo archivo, e instalar-
los a travs de un programa que nos gua y nos pregunta dnde queremos instalar cada elemen-
to, qu tipo de instalacin preferimos, etc.. Se recomienda instalar estas aplicaciones a mano,
ya que as aprenderemos a configurarlas. Claro que la decisin final queda a criterio del lector.
INSTALACIN
01_PHPyMySQL.qxd 6/2/05 15:03 Page 25
Por otro lado cuando se emplean bases de datos con una gran cantidad de presta-
ciones como Oracle y se utiliza ODBC, OLE, ADO, etctera, se pierde gran par-
te del poder, puesto que hay funciones propias de la base de datos que no se pue-
den utilizar con un mediador genrico como stos, por no estar implementadas. Por
lo tanto si se quiere utilizar todo el poder de la base de datos, es preferible acceder
con funciones nativas para sta, como las que ofrece PHP en sus extensiones. Por
ejemplo, si en nuestro proyecto sabemos que vamos acceder slo a la base de datos
Postgre SQL, no hay necesidad de acceder con ODBC ya que PHP nos provee de
una extensin (php_pgsql.dll) para hacerlo de forma nativa.
Ventajas de trabajar con extensiones
Slo cargamos las bibliotecas cuando las usamos: PHP ya tiene demasiadas funcio-
nes incorporadas y sera poco recomendable iniciar el motor para soportar cientos
de funciones de las cuales probablemente necesitemos slo algunas. Adems, al aa-
dir una biblioteca no hace falta reinstalar PHP, slo habilitar desde el archivo ph-
p.ini lo que necesitamos: esto significa modularidad.
Bibliotecas incorporadas
PHP incorpora sin necesidad de ningn tipo de instalacin ni habilitacin extras las
siguientes funciones:
Para manejo de matrices.
Funciones matemticas.
BCMath (Desde PHP 4.0.4. Ms funciones matemticas).
Para manejo de Clases/Objetos.
Para manejo de variables de tipo de carcter.
Para tratamiento de Fecha y Hora.
Para acceso directo a Entrada/Salida.
Funciones de directorio.
Funciones de Gestin de Errores y Registros.
PHP Y MYSQL
26 usr.code
Se logra un mayor entendimiento del lenguaje cuando se lee cdigo escrito por otras personas: un
mismo problema puede resolverse de muchas maneras, y no quedarse slo con un punto de vista
ayuda a abrir nuestra mente e incorporar nuevas formas de encarar la escritura de un cdigo.
MIRAR Y APRENDER
01_PHPyMySQL.qxd 6/2/05 15:03 Page 26
Funciones de Sistema de Archivos.
Para utilizar el protocolo FTP.
Para utilizar el protocolo HTTP.
Funciones de correo.
Funciones de Red.
Funciones de Control de Salida.
Para ejecucin de Programas.
Funciones para el manejo de sesiones.
Funciones de secuencia.
Funciones de cadenas.
Funciones URL.
Para manejo de Variables.
Para poder tener acceso a las dems bibliotecas, tendremos que activarlas a travs
del archivo php.ini, o bien incorporarlas al momento de compilar PHP e instalar las
bibliotecas en forma separada (nicamente para aquellos sistemas operativos en los
que para instalar PHP haya que compilarlo).
Para ver qu bibliotecas tenemos activas en nuestro sistema, podemos utilizar la
funcin PHPinfo() de la siguiente manera:
<?PHP
// funcion PHPinfo
echo PHPinfo();
?>
Normalmente cuando no recordamos cmo instalar o habilitar una biblioteca en
particular en nuestro sistema, bastar con buscar la referencia en el manual de PHP,
en www.php.net/manual/.
Extensiones en PHP
27 usr.code
En revistas especializadas, libros y/o artculos en Internet encontrar referencias a los sistemas
LAMP. Esta sigla se refiere a Linux, Apache, MySQL, y alguno de los lenguajes Perl/PHP/Python.
Los sistemas tipo LAMP son muy utilizados en la actualidad, entre otras razones, debido a la es-
tabilidad, la potencia y el bajo costo de desarrollo de las herramientas que los componen.
LAMP
01_PHPyMySQL.qxd 6/2/05 15:03 Page 27
FACILIDAD DE APRENDIZAJE
Esto evidentemente no equivale a hacer un juicio de valor sobre otros lenguajes,
simplemente se trata de una cualidad de PHP.
PHP se caracteriza por ser un lenguaje cuyo aprendizaje se vuelve sencillo incluso
para aqullos que nunca han trabajado con ningn otro lenguaje de programacin,
pero est claro que tener conocimientos previos ayuda a entender ms rpidamen-
te qu se est haciendo y cmo se est haciendo.
Un punto importante es que la sintaxis de PHP deriva o es similar a la del lengua-
je C, que es realmente muy popular: el que tenga conocimientos en este lenguaje se
acercar con ms facilidad a PHP.
La meta de este lenguaje es permitir escribir a los creadores de sitios web pginas di-
nmicas de una manera rpida y fcil, pero si se quiere ir ms all y llegar a desa-
rrollar aplicaciones complejas necesitaremos avanzar dentro del lenguaje: quizs
PHP sea fcil de aprender pero este aprendizaje debe ser constante.
PORTABILIDAD
PHP es un lenguaje multiplataforma, lo que significa que est preparado para tra-
bajar sobre distintos sistemas operativos. Ms adelante en este mismo captulo po-
dremos ver un listado de los sistemas operativos soportados.
Pero la portabilidad est tambin en que no es necesario realizar grandes modifica-
ciones al cdigo fuente de una aplicacin escrita en PHP al momento de trasladar-
la de una plataforma a otra: si lo deseamos podemos desarrollar nuestra aplicacin
en Windows o MAC, pero luego subir el mismo cdigo a un servidor que est co-
rriendo Linux, por ejemplo.
La portabilidad de PHP es, sin duda, un punto fuerte frente a lenguajes como ASP,
que necesitan de componentes adicionales para correr en algunas plataformas. PHP
corre en una gran cantidad de sistemas operativos y sin necesidad de un componen-
te adicional que debamos comprar.
PHP est disponible para los siguientes sistemas operativos:
Unix/HP-UX
Unix/Linux
Unix/Mac OS X
Unix/OpenBSD
Unix/Solaris
Unix
Windows (todas las versiones, salvo
PHP5 que no corre bajo Windows 95)
MAC
PHP Y MYSQL
28 usr.code
01_PHPyMySQL.qxd 6/2/05 15:03 Page 28
Actualmente, PHP se puede ejecutar bajo los servidores web Apache (incluso en la ver-
sin 2.0), IIS (Internet Information Server), PWS (Personal Web Server), AOLServer,
Roxen, OmniHTTPd, Oreilly Website Pro, Sambar, Xitami, Caudium, Netscape
Enterprise Server, THTTPD, y otros.
Las posibles incompatibilidades entre plataformas son las siguientes:
Ruta a archivos/directorios.
Bibliotecas que slo funcionan en algunos sistemas, por ejemplo:
- Funciones W32api (slo para plataformas Windows de 32 bits).
- Funciones para el manejo de Impresoras (slo en Windows 9x, ME, NT4 y 2000).
- Las funciones COM para Windows.
- Funciones de acceso directo a E/S (no disponibles para sistemas Windows).
- Funciones GMP (funciones que permiten trabajar con enteros de longitud va-
riable, no disponibles para sistemas Windows).
- Funciones para el control de procesos (no disponibles para sistemas Windows).
- Funciones FAM (notifican cambios en archivos y directorios, no disponibles pa-
ra sistemas Windows).
- Funciones POSIX (no disponibles para sistemas Windows).
- Funciones para Ncurses (no disponibles para sistemas Windows).
Incluso existen bibliotecas que ofrecen compatibilidad con Windows NT/2000/XP
pero no con las versiones de Windows 9.x.
Normalmente cuando no recordamos si una biblioteca es o no compatible con
nuestro sistema, basta con buscar la referencia en el manual de PHP, www.php.net/
manual/ y verificar si hay algn requerimiento.
Portabilidad
29 usr.code
RESUMEN
En este captulo hemos visto una resea de las principales virtudes del lenguaje de programa-
cin PHP: qu hace, para qu sirve, en qu se usa mayormente, qu versiones existen.
Tambin vimos cules son los requisitos para instalarlo y cmo incorporar extensiones para
hacer nuestro trabajo ms fcil. En definitiva, un punto de partida para conocer un lenguaje
que est dando mucho que hablar y que seguir hacindolo.
01_PHPyMySQL.qxd 6/2/05 15:03 Page 29
30 usr.code
TEST DE AUTOEVALUACIN
1 Cunto dinero hay que pagar para poder
usar PHP?
2 Qu es una extensin?
3 Cul es la ventaja principal de trabajar
con extensiones?
4 En qu directorio de su sistema se en-
cuentran las extensiones de PHP?
5 En qu versin de PHP se incorpor la ex-
tensin MySQLi? Para qu sirve?
6 Podra nombrar cuatro razones por las
cuales usara PHP para programar sus
aplicaciones?
7 PHP slo sirve para programar desarro-
llos web?
8 Nombre tres de las nuevas caractersticas
que vienen con PHP 5.
9 Brevemente, qu es SQLite?
10Desde qu sitio se puede descargar la l-
tima versin de PHP?
11PHP puede trabajar con mltiples servi-
dores web o slo con Apache?
12 PHP puede trabajar con mltiples bases
de datos o slo con MySQL?
ACTIVIDADES
EJERCICIOS PRCTICOS
Cul es su versin de PHP? Responda uti-
lizando la funcin de PHP que devuelve tal
informacin.
Qu extensiones tiene habilitadas en su
sistema?
Responda inspeccionando el archivo php.ini
o bien a travs de la funcin phpinfo.
01_PHPyMySQL.qxd 6/2/05 15:03 Page 30