Mas Articulos

domingo, 28 de marzo de 2010

Pequeño tuto de PHP

Introduccion

PHP es una tecnologia del lado del servidor, que funciona embebida (es decir, incrustada) dentro del código HTML de una pagina, dándole mayor dinamismo a la misma, con acceso a bases de datos, creación de foros, libros de visita, rotación de banners, etc.
Su sintaxis es heredada de C/Java y posee gran cantidad de funciones que permiten realizar todas las acciones que soporta el PHP.

Esta tecnología inició como un pasatiempo de Rasmus Lerdorf pero hoy en día, gracias a ser gratis, cuenta con miles de adeptos y actualizaciones muy constantes. Muchas empresas se han fijado en el potencial de PHP, y han dado su apoyo a esta, como es el caso de Zend, uno de los principales contribuyentes para el lanzamiento de la versión 4 de este lenguaje.

La forma mas fácil de averiguar cuando una pagina es o no PHP, es verificando su extensión, que puede ser generalmente .php, .phtml, .php3, .php4

PHP está siendo explotado con gran provecho alrededor de toda la red... ¿querrás perderte este tren?

Si no es así, continua con este tutorial donde descubrirás cómo instalar el soporte PHP y mySQL en tu Windows, usando el servidor Apache. Luego conocerás los fundamentos del lenguaje y para terminar aplicaremos lo aprendido con ejemplos de utilidad.



Basico

PHP no es más que códigos de programa incluidos dentro de una página Web y que se ejecuta desde el servidor el cual deberá aportar soporte para interpretar este lenguaje, enviando así al navegador el resultado del programa procesado. Expliquemos estos con este ejemplo:

Dentro de una página Web hecha con HTML le incluimos el siguiente SCRIPT:

echo "Bienvenidos al mundo del PHP";
?>

Esto enviará como resultado al navegador lo siguiente:

Bienvenidos al mundo del PHP

Lo increíble del esto es que jamás mostrará el código del programa... sólo enviará la respuesta del programa después de procesada.

Creo que ya comprendes entonces que es lo que hace PHP, si hacemos volar la imaginación te darás cuenta la amplia cantidad de aplicaciones que le podemos dar a este poder... manipular fechas y tiempos, manipular bases de datos, realizar cálculos matemáticos, personalizar las presentaciones según lo deseemos, etc.

Por lo pronto, comencemos con la sintaxis de este lenguaje y para ello analicemos el siguiente SCRIPT:

$MYVAR = "1234";
$myvar = "4321";

echo $MYVAR. "[br /]";
echo $myvar."[br /]";
?>

Esto dará como resultado:

1234
4321

Lo primero que vemos en este SCRIPT es que las instrucciones de PHP comienzan con por lo que incluso se pueden crear varios conjuntos de instrucciones dentro de una misma pagina Web. Lo siguiente que observamos es que las variables comienzan con el símbolo $ y que se diferencian las mayúsculas de las minúsculas, es decir, son sensible case. Las etiquetas
están concatenadas por un punto "." con lo que el navegador hará una salto de línea, y por último notarás que todas las lineas de comandos terminan con punto y coma ";" , esto es muy importante de no olvidar.

Pero veamos ahora un ejemplo más complejo aún:

$SUM1 = 12;
$SUM2 = 4;
$TOT = $SUM1 + $SUM2;
echo "La sumatoria de " . $SUM1. " más " .$SUM2. " es igual a " .$TOT";
// Este programa realiza la suma de 12 + 4 y lo presenta en pantalla
?>

Creo que esto no necesita mucha explicación, como es fácil ver lo que este pequeño programa hace es: declarar el contenido de la primera variable, declarar el contenido de la segunda variable, realizar la suma de ambas variables y asignarla a una nueva variable, y por último realiza la salida del resultado pero incluyendo texto para hacer más fácil la interpretación del mismo. Veremos como resultado en pantalla:

La sumatoria de 12 más 4 es igual a 16

Notemos que para poder hacer la mezcla de variables con texto hemos recurrido a la concatenación y esto se hace interponiendo un punto ".". Podemos observar también que hay un comentario dentro del SCRIPT, este comentario no afectará en nada al programa pero es importante acostumbrar usarlos para mantener organizados nuestro programa y no confundirnos en un programa más extenso.

Existen varias formas de incluir comentarios y estas son:

// Esto da comienzo a una línea con comentarios.
// Esto es un comentario

/* Esto da comienzo a un grupo de líneas de comentario, se cierra con */
/* Esto es un comentario
que incluye varias líneas.
Es por eso que uso este tipo de inclusión. */


Variables


En PHP no es necesario declarar la variable, es decir, no es necesario decirle al programa si una variable es una cadena o un número entero, ya que PHP se encargará de definirla por sí mismo.

Por ejemplo:

$cadena = "Hola Mundo";
$numero = 100;
$decimal = 8.5;
?>

Como puedes observar las tres variables fueron simplemente definidas con un valor y no necesariamente con el tipo. Tanto "Hola Mundo" que es una cadena, como 100 que es un número y 8.5 que es un decimal, son aceptadas por el PHP e interpretadas en la ejecución del script.

Ahora veamos el ámbito de las variables. En muchos tutoriales nos confunden mucho acerca de este concepto, pero el ámbito de una variable, no es más que el lugar que tiene en un script. Cuando son de ámbito global, la variable ocupa un lugar en todas las partes del script, y puede ser utilizada en cualquier momento; pero si es de ámbito local, quiere decir, que sólo existirá y operará dentro de una función y no podrá ser accedida por el script en general, ni por las otras funciones.

Para declarar a una variable, de ámbito global, podemos utilizar la palabra clave global, aunque simplemente con definirla fuera de cualquier función ya se le está dando ese ámbito. Veamos un ejemplo, para aclarar este concepto:

global $variable; //la variable ya es de ambito global
$numero = 1; //la variable es de ambito global, aunque no se ha declarado con global

function multiplicar(){
$multiplicacion = ($numero * 50); //multiplicacion solo existe en la funcion multiplicar()
echo $multiplicacion;
}

?>

En el anterior ejemplo se observa claramente cuándo una variable es de ámbito global y local. La variable $numero puede ser accedida dentro y fuera de cualquier función, tal como lo hace la función multiplicar() que se encarga de multiplicar dicho número ($numero) por 50. Pero lo más destacable de esa función es que fácilmente puede llamar a la variable $numero, en vista de que ésta es de ámbito global, pero realiza la operación dentro de la variable $multiplicacion, que sólo existe durante la ejecución de multiplicar(), porque fue utilizado y definida en esa función, y no globalmente. De ahí se puede resumir, que una variable es de ámbito global cuando se declara fuera de cualquier función, o con la palabra global, y que es de ámbito local si se declara y utiliza dentro de alguna función.

Para terminar con el tema de las variables, podemos tratar un poco sobre los arrays, o vectores, que son un tipo de variables especiales, que pueden contener muchos elementos al tiempo, generalmente relacionados entre si.

$animales = array(); //con array() se declara que la variable es un vector
$animales[0] = "Gato";
$animales[1] = "Perro";
$animales[2] = "Elefante";
?>

Como ves, la variable $animales, es declarado al inicio con new Array(), lo que permite incluir diferentes elementos dentro de ella.
Cada uno de esos elementos se debe crear utilizando el nombre del array seguido por un número entre corchetes, el cual definirá el elemento en sí: $animales es un array, pero $animales[0], es un elemento del array, y su valor es la cadena Gato.

Los arrays son muy útiles cuando, como en nuestro ejemplo, en lugar de crear variables distintas para cada elemento, utilizamos uno en común que los incluya a todos. De este modo si por ejemplo queremos mostrar un listado de animales, podemos recorrer el array $animales, en lugar de crear variables como $gato, $perro, $jirafa, etc





Operadores


Los operadores son símbolos especiales que se utilizan para realizar tanto operaciones matemáticas, como de comparación. Veamos un listado de los más utilizados en PHP y un ejemplo general.

* + Suma varios números 5 + 4 = 9
* - Resta varios números 5 - 4 = 1
* * Realiza una multiplicación 3 * 3 = 9
* / Realiza una división 10/2 = 5
* % Devuelve el residuo de una división 10 % 3 = 1
* ++ Suma 1 $v++ (Agrega 1 a $v)
* -- Resta 1 $v-- (Resta 1 a $v)
* == Devuelve true si la condición de igualdad se cumple 2 == 2 (Verdadero)
* = Devuelve true sin la condición de igualdad no se cumple 2 == 2 (Falso)
* < Devuelve true si un número es menor que el otro 2 < 5 (Verdadero)
* > Devuelve true si un número es mayor que el otro 6 > 4 (Verdadero)
* <= Devuelve true si un número es menor o igual que otro 2 <= 5 (Verdadero)
* >= Devuelve true si un número es mayor o igual que otro 6 >= 4 (Verdadero)


Por ahora veremos un ejemplo práctico de los operadores matemáticos, más adelante, en las estructuras de control, se aplicarán los operadores lógicos.

$a = 5;
$b = 10;

$suma = ($a + $b); //$suma vale 15
$resta = ($b - $a); //$resta vale 5
$multiplicacion = ($a * $b); //$multiplicacion vale 50
$division = ($b / $a); //$division vale 2
$residuo = ($b % $a); //$residuo vale 0
?>


Estructuras De Control


Gracias a las estructuras de control, podemos realizar comprobaciones y ejecutar códigos especiales para hacer de nuestros scripts algo verdaderamente útil. Dentro de las estructuras de control encontramos las funciones de condición y los bucles. Estas son las que trataremos.

Condicionales
Los condicionales, o bifurcaciones, son estructuras que permiten llevar a cabo determinadas acciones, de acuerdo a la validez de una sentencia. Al igual que en la mayor parte de los lenguajes, en PHP se utilizan el if...else y el switch.

$a = 5;
$b = 2;

if($a == $b){
echo "Por estos dias 5 es igual a 2";
}
else{
echo "Como era de esperarse 5 no es igual a 2";
}
?>

La instrucción if verifica la validez de la sentencia, en este caso, $a == $b, como mencionamos anteriormente, el operador == devuelve verdadero si $a es igual a $b, entonces, si es ese caso, escribimos en pantalla la cadena Por estos dias 5 es igual a 2.
De lo contrario (else), es decir, si $a no es igual a $b, devolvemos la cadena Como era de esperarse 5 no es igual a 2.

Para resumir podemos definir la instrucción if...else como:

if(sentencia){
acciones que se ejecutan si la sentencia es verdadera
}
else{
acciones que se ejecutan si la sentencia es falsa
}
?>

El switch es una estructura que no se utiliza frecuentemente, por lo que veremos cómo se puede ampliar el if...else de forma que soporte más de dos caminos.

$a = 5;
$b = 2;

if($a == $b){
echo "5 es igual a 2";
}
else if($a < $b){
echo "5 es menor que 2";
}
else if($a > $b){
echo "5 es mayor que 2";
}
else{
echo "5 no es igual a 2";
}

?>

Con lo anterior hemos expandido el if...else a tal punto que ahora no sólo valida que $a sea igual que $b, sino también si es mayor o menor. Todo esto con else if, pero al final, con el else normal, podemos devolver algo, en caso de que ninguna de todas las condiciones se cumplan.

Bucles
Lo último que trataremos sobre las estructuras de control son los bucles. Un bucle es una instrucción que ejecuta repetidamente una acción, hasta que se cumple determinada condición. Existen dos tipos de bucles en PHP, los bucles for y los while

El bucle while es menos complejo que el for, pero aún así permite ejecutar funciones interesantes.

$a = 5;
while($a < 7){
echo "a vale $a en este momento.\n[br /]";
$a++;
}
?>

El bucle while, en este caso, se ejecuta mientras $a (que inicia con un valor de 5), sea menor que 7 y mientras se ejecuta se imprime una línea que muestra un texto y anuncia el valor actual de dicha variable.... pero por qué es un bucle? Porque al final, y haciendo uso del operador de sumatoria ++, hacemos que a aumente en 1. De este modo, en cada ejecución del bucle a va a valer 1 más, hasta llegar al momento en que su valor sea 7, ahí deja de ejecutarse el bucle.

Para ver cómo se ejecutaría la misma acción, utilizando el for, veamos un ejemplo.

for($a=5; $a < 7; $a++){
echo "a vale $a en este momento.\n[br /]";
}
?>

Eso es todo. La única diferencia es que en la misma sentencia del for se declara la variable y su valor, luego la condición y finalmente la modificación que se realiza a la variable, en este caso se aumenta en 1.



Funciones


Para terminar esta introducción al PHP, veremos cómo se utilizan y funcionan las funciones, tanto las tradicionales, como las recursivas, que devuelven siempre algún valor.

Las funciones en PHP pueden contener o no parámetros, lo que determina si son o no recursivas. Si se la pasan parámetros y estos permiten devolver algún valor, se dice que la función es recursiva, de lo contrario será una función tradicional.
En general, todas las funciones sirven para evitar escribir códigos repetitivos durante la ejecución del script; en cambio, simplemente se llama a una función.

Antes de presentar un ejemplo para mostrar los dos tipos de funciones, hay que tener en cuenta que una función se establece con la palabra clave function, y sus instrucciones se ejecutan entre llaves, al igual que en las estructuras de control.

function sumaRecursiva($a, $b){
$suma = $a + $b;
return $suma;
}

function dosmasdos(){
$sumatoria = sumaRecursiva(2,2);
echo $sumatoria;
}

?>

Ahí está. A la función sumaRecursiva se le deben pasar dos parámetros y dentro de dicha función se realiza la suma de los dos. Luego lo devuelve con la palabra clave return.
Finalmente existe la función dosmasdos(), que declara una variable local con el resultado que devuelve sumaRecursiva, si los parámetros son 2 y 2. De este modo, sumaRecursiva retorna la suma de dos más dos que es 4, y dosmasdos(), simplemente lo imprime en pantalla.

Instalacion



Este es un pequeño manual de instrucción para instalar y configurar un pequeño servidor Apache con soporte para PHP4 y Bases de Datos MySQL bajo el sistema operativo Windows 32. En ningún momento se pretende ofrecer un completo manual de configuración de un Servidor Seguro Web, mi intención es sólo ofrecer a los usuarios que se inician en la programación de webs dinámicas bajo estos sistemas, una guía para que no pasen por lo que pasé yo tratando de empezar en este campo y cuando aún no existía suficiente material bibliográfico.

Bajando
Lo primero que necesitamos hacer es bajarnos las aplicaciones del internet, sólo tienes que hacer click sobre los enlaces que te ofrezco para poder descargar las versiones desde sus servidores originales.

• Apache 1.3.14
• PHP 4
• MySQL 3.23

Estas versiones son lo suficientemente estables para poder trabajar, así que no te preocupes por las nuevas versiones de estos programas, luego de que estés más experto en el manejo de estos programas podrás darte el lujo de actualizarte con las nuevas versiones.

Instalando...


APACHE
La instalación del programa Apache es muy simple ya que trae integrado un programa instalador, por lo que te sugiero que no modifiques los valores que trae por defecto durante la instalación. Si lo haz hecho bien el programa debió haber quedado en C:\Archivos de Programas\Apache Group\Apache\ y con la opción "TIPICAL".

PHP 4
La instalación del Apache es más simple aún, debes descomprimir el archivo php-4.0.4pl1-Win32.zip en la carpeta C:\php, luego tomas el archivo php.ini-dist y lo renombre a php.ini y eso es todo por ahora.

mySQL
Para la instalación del MySQL deberás descomprimir el archivo mysql-3.23.36-win.zip en una carpeta temporal, por ejemplo: C:\temp, luego ejecutas el programa setup.exe y sigues las instrucciones de instalación que trae por defecto. Si lo haz hecho bien el programa debió haber quedado en C:\mysql y con la opción "TIPICAL".

Configurando...


APACHE
Aquí se pone buena la cosa, busca el archivo httpd.conf que está en la siguiente dirección:

C:\Archivos de Programas\Apache Group\Apache\Conf\httpd.conf, ábrelo con un editor de texto como el notepad del Windows para poder editarlo.

Busca dentro de este archivo la opción #ServerName new.host.name y sustituyes por esto: ServerName http://

Luego buscas la opción DocumentRoot "C:/Archivos de Programas/Apache Group/Apache/htdocs" y la sustituyes por esto DocumentRoot "C:/mis webs"

De igual forma buscas la opción
Es de hacer notar que estas dos últimas opciones se refieren a la localización de la carpeta que contendrá las webs a ser "servidas" por vía http. Así que usted puede cambiar el nombre y la ubicación de la carpeta que contendrá sus webs.

Busca ahora la opción ScriptAlias /cgi-bin/ "C:/Archivos de Programas/Apache Group/Apache/cgi-bin/" y debajo de esta le agrega la siguiente línea: ScriptAlias /php/ "C:/php/" fíjese que aquí se le dice al Apache donde encontrará al interprete de PHP para CGI.

Busque ahora las siguientes líneas:

#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps y sustitúyalas por las siguientes:

AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php-source .phps


Note usted que en este punto le indicamos al Apache cuales son las extensiones que deberá interpretar como programas de PHP, en este caso usted podrá usar las extensiones .php, .php3, .phtml y phps, este último es para ofrecer el código fuente de un script sin interpretarlo como tal.

Luego localiza la sección de # Format: Action handler-name /cgi-script/location y debajo de esa línea escribe la siguiente línea: Action application/x-httpd-php "/php/php.exe", note que en este punto le decimos al Apache dónde se encuentra el archivo ejecutable del intérprete PHP.

Y por último buscamos la línea DirectoryIndex index.html y la sustituimos por esta otra línea:

DirectoryIndex index.html index.htm index.php index.php3 index.phtml

Note usted que en esta línea le decimos al Apache cuales son las extensiones que debe autointerpretar al abrir una carpeta web.

PHP
Abrimos con un editor de texto el archivo php.ini y verificamos que tenga la siguiente línea:

extension_dir = ./ aquí le decimos al PHP dónde se encuentran ubicadas las extensiones de librerías .dll en este caso vemos que deben encontrarse en el directorio raíz del PHP.

Luego si lo deseamos buscamos la línea ;extension=php_gd.dll y le quitamos el ; que tiene al comienzo, así habilitaremos la librería de manipulación de gráficos dinámicos que ofrece una prestaciones muy interesantes. Sólo resta ubicar el archivo php_gd.dll y copiarlo al directorio raíz del PHP.

Y por último hacemos una copia del archivo php.ini dentro del directorio Windows que por lo general es C:\Windows

MySQL
A este programa no hay mucho que configurarle, sólo debemos asignarnos una clave al usuario root que hará las veces de administrador de las Bases de Datos, y que por defecto en la instalación el usuario root viene sin clave y con todos los permisos de ejecución.

Así que nos vamos al modo DOS: y hacemos lo siguiente:

C:>mysql>bin>mysqld.exe

C:>mysql>bin>mysqladmin -u root -pxxxxxx

Sustituyes las xxxxxx por la clave que tu quieras y listo, ya les asignaste una clave al usuario root. Recuerda que el root tiene todos los permisos de ejecución así que ten cuidado de lo que puedas alterar.

Probando
Ya llegamos a la parte divertida, reiniciamos la PC, automáticamente el Apache se ejecutará con el Windows. Abre tu navegador puede ser el Internet Explorer y escribes el la barra de direcciones lo siguiente: Para Ver los enlaces debes estar...Asi que por favor...
Registrate o Identificate en este punto debería abrirse el servidor web ofreciéndote un listado de los archivos y carpetas que hay en tu directorio web, en nuestro caso C:\mis webs. Ya con esto vemos que el apache funciona.

Ahora creamos un archivo que llamaremos info.php con el siguiente script de php:



y lo guardamos dentro de nuestra carpeta web C:\mis webs, ahora desde nuestro navegador escribimos la siguiente dirección Para Ver los enlaces debes estar...Asi que por favor...
Registrate o Identificate y deberías ver una web con una gran contenido de información de las variables de proceso del PHP dentro de tu PC. Esto nos demuestra que el Apache es capaz de interpretar PHP y que éste está funcionando.



Fin

No hay comentarios:

Publicar un comentario