edit · print · PDF

1 - Introduccion

Páginas web estáticas vs dinámicas

Aunque el HTML es el lenguaje de la web, crear páginas directamente con HTML tiene muchas limitaciones. HTML no es un lenguaje de programación, únicamente de marcado; sirve para indicarle al navegador qué es un párrafo, un enlace o una imagen, pero no sabe nada de variables, bucles y demás funcionalidades habituales de programacion.

En la actualidad, las páginas web se crean con un lenguaje de programación propiamente dicho, que se utiliza para generar HTML. Los leguages de programación para web más empleados son PHP, JSP o Python y habitualmente emplean además una base de datos como MySQL, Postgres u Oracle. En general, los navegadores no interpretan en absoluto estos lenguajes, sino lo hace el servidor que alberga las páginas. Cuando el usuario solicita una página web a un servidor, en lugar de enviarla directamente el servidor interpreta el código y genera como resultado una página en HTML que es lo que recibe el usuario y lee su navegador.

Puesto que estos leguajes son siempre interpretados por el servidor, ya no basta con tener un navegador para ver los resultados, hay que tener un servidor web que separ interpretar el lenguaje empleado que luego veremos en nuestro navegador.

PHP es el lenguaje más usado en internet, especialmente con una base de datos MySQL en un servidor Apache, por lo que necesitaremos un servidor Apache con PHP y también un servidor MySQL para ejecutar nuestros programas.

Instalación de un servidor LAMP

Un servidor LAMP (Linux+Apache+MySQL+PHP) se puede instalar como usuario siguiendo la guía de la SIEpedia. Para ordenadores con Windows, la opción más sencilla es instalar el WAMP5.

Repaso a HTML/CSS

Antes se empezar con PHP, hay que sabr un poco de HTML. Si no lo tienes muy fresco puedes ver un curso básico de HTML y CSS en la SIEpedia.

Introducción a PHP

PHP es un leguaje de de scripts que se se incrustra entre el HTML para producir un resultado. Las páginas que contengan PHP, deben tener extensión .php para que el servidor sepa que las debe interpretar. Todo el código en PHP debe estar encerrado entre etiquetas <?php y ?> y el resto puede ser HTML. Un página básica con PHP es la siguiente:

span class="st0">"Esto es una tontería."

El resultado de esto, que es lo que verá el navegador será el siguiente código:


 
 
 

  Una página con PHP
  Esto es una tontería.

 

Las variables se denotan empezando con $, para las que vale cualquier cadena que no empiece con número. Los comentarios se pueden poner línea a línea con # o //, o se puede comentar un bloque encerrándolo entre /* y */ al estilo de C:

span class="co2"># Variable con un nombre. Esto es un comentario.
$nombre = "Juan Carlos""Mi nombre es: "

La indentación no es obligatoria en PHP, pero todas las sentencias deben terminar por ;. Como se ve en el ejemplo anterior, se puede imprimir una cadena o el valor de una variable con echo, aunque también se puede usar print o printf. Hay que tener en cuenta que las variables distinguen entre mayúsculas y minúculas.

Trabajando con variables

En PHP, las variables se declaran en el momento de usarlas y no es necesario indicar de qué tipo son (string, float, etc.). Si una variable contiene elementos alfanuméricos, es una cadena de texto:

span class="co2"># Variable con texto
$nombre = "Juan Carlos""Castro""Mi nombre es $nombre $apellidos";

# O tambien, concatenando variables:
" "

En el segundo ejemplo se muestra cómo se pueden concatenar variables con un punto.

PHP posee muchas funciones para tratamiento de cadenas. Aquí hay algunos ejemplos:

span class="st0">"Esta es una cadena de texto larga";

# Longitud de la cadena

Para eliminar los espacios en blanco al principio o al final uso trim, o ltrim y rtrim para hacerlo sólo a la izquierda o derecha respectivamente. Estas funciones tambien eliminan caracteres especiales como tabulador \t, nueva línea \n, retorno de carro \r.

Para trocear una cadena de texto, se puede usar substr($cadena, n_inicio,n_longitud), un ejemplo:

span class="st0">"123456789""\n";   # imprime 123456789
"\n";   # imprime 456789
"\n";   # imprime 789
"\n";   # imprime 456
"\n";   # imprime 3456
"\n";   # imprime 4

Las funciones strtoupper y strtolower se usan para pasar todo a mayúsculas o minuculas respectivamente. ucfirst() y ucword() pasan a maýuscula la primera de la cadena y la primera letra de cada palabra:

span class="st0">"Esta es una cadena de texto larga"# imprime "ESTO ES UNA CADENA DE TEXTO LARGA"
# Imprime "esto es una cadena de texto larga"
# Imprime "Esto es una cadena de texto larga"
# Imprime "Esto Es Una Cadena De Texto Larga"

Los valores numéricos, y en algunos casos a las cadena de texto, se le pueden aplicar los operadores habitules en programación:

Operadores de Comparación:

    $a <  $b   $a menor que $b
    $a >  $b   $a mayor que $b
    $a <= $b   $a menor o igual que $b
    $a >= $b   $a mayor o igual que $b
    $a == $b   $a igual que $b
    $a != $b   $a distinto que $b 

Operadores Lógicos:

    $a AND $b   TRUE si ambos son ciertos
    $a &&  $b   Equivalente a AND
    $a OR  $b   TRUE si alguno de los dos es cierto
    $a !!  $b   Equivalente a OR
    $a XOR $b   TRUE si sólo uno de los dos es cierto

Operadores de Asignación:

    $a =  $b   Asigna a $a el contenido de $b
    $a += $b   Le suma a $b a $a
    $a -= $b   Le resta a $b a $a
    $a *= $b   Multiplica $a por $b y lo asigna a $a
    $a /= $b   Divide $a por $b y lo asigna a $a
    $a .= $b   Añade la cadena $b a la cadena $a

Para variables numéricas tambien se pueden aplicar operadores aritméticos:

 $a + $b   Suma
 $a - $b   Resta
 $a * $b   Multiplicación
 $a / $b   División
 $a % $b   Resto de la división de $a por $b
 $a++      Suma 1 a $a
 $a--      Resta  1 a $a

Trabajando con arrays

Los arrays (o matrices o tablas) son como variables multidimensionales

span class="st0">"M 81", "UGC 10214", "M 101", "NGC 4676""Hay $num_galaxias en la base de datos.";
 

A cada elemento del array está asociado un índice, empezando por cero:

span class="st0">"M 81", "UGC 10214", "M 101", "NGC 4676"# Imprime "UGC 10214"
# Imprime "NGC 4676"
 

Sin embaro, en lugar de usar índices, se pueden crear arrays asociativos, en los que cada elemento tiene asociado un nombre:

span class="st0">"galaxia" => "M 77",
        "estrella" => "Spica",
        "nebulosa" => "NGC 7000"'estrella'];  # imprime "Spica"
 

Cuando se manipulan muchos datos clasificados, es muy útil emplear arrays multidimensionales:

span class="st0">"estrellas""Spica", "Aldebaran", "Fomalhaut", "Canopus", "Cor Caroli"),
    "galaxias""M 81", "M 87", "M 99"),
    "nebulosas""M 27", "M 57", "M 8", "M 16")
);

# Para ver el contenido del ''array''
"<pre>""</pre>"

Ver las muchas funciones de arrays en PHP en el manual oficial: http://es2.php.net/manual/en/ref.array.php

Estructuras de control

Las estructuras de control son la manera en que los programas toman decisiones o hacen una u otra operación. PHP posee las estructuras de control habituales en programación:

  • if/elseif/else
  • while
  • for
  • switch
  • foreach

if/elseif/else

Es el más común. Ejecuta una sentencia si se verifica; si no se verifica se ejecuta else, si se incluye:

span class="st0">'star''star''Objeto puntual''Objeto extenso'

también se puede usar elseif para dar mas opciones:

span class="st0">'star''star''Objeto puntual''galaxy''Objeto extenso''Sin determinar'

While

ejecuta la sentencia mientras se verifique una condición:

span class="st0">"El numero $num<br />"

For

Un forma distinta de hacer un while:

span class="st0">"$num <br />"

Switch

Es una forma similar de de if/else, más cómoda de usar si se tienen varias opciones:

span class="st0">"galaxy""star""Esto es una estrella""galaxy""Esto es una galaxia""qso""Esto es un QSO""Objeto sin determinar"

Foreach

Similar a for, muy útil para los arrays:

span class="st0">"M 81", "UGC 10214", "M 101", "NGC 4676""<br />"

Funciones

La funciones se declaran con function, asignándole un nombre y variables, si las necesita:

span class="st0">" es mayor que"" es mayor que"

Pasando variables por URL y formularios

Las variables en PHP sólo se mantienen definidas en la página actual; en cuanto el script de PHP finaliza, la variable se eliminada de la memoria. Esto quiere decir que si en una página definimos una variable $type, no lo estará en otra. Sin embargo, se pueden pasar variables y sus valores por usando los métodos GET o POST mediate la URL o formularios.

Un ejemplo de envio de variables por el método GET (por la URL) es el siguiente:


http://localhost/form.php?type=galaxy&mag=19&flux=120

aqui se están enviando las variables type, mag y flux y sus valores, "galaxy", "19" y "120", respectivamente.

Otra manera es usando un formulario con el método POST:


"datos""datos""form.php""GET"

Type: "text""type""type"
Magnitude: "text""mag""mag"
Flux: "text""flux""flux"
"submit""Enviar"

 

los valores que se envian, se guardan en un array especial $_GET o $_POST, según el método utlizado.

Manipulando ficheros

Aquí se listan algunas funciones importantes para el tratamiento de fichero.

Para abrir un fichero:

span class="co2">#8220;nombre_de_archivo&#8221;,&#8221;modo&#8221;);
 

siendo modo la forma en que se abre el fichero:

  • r Sólo lectura. El puntero al comienzo del archivo
  • r+ Lectura y escritura; apuntador al inicio del archivo
  • w Sólo escritura, si no existe el archivo lo crea, si existe lo convierte en fichero de longitud cero y el apuntador se coloca en el inicio (sobreescribe el contenido, vamos)
  • w+ Lectura y escritura, si existe lo trunca a tamaño cero, y se situa al inicio, si no existe lo crea
  • a Modo append, sólo escritura, si no existe lo crea. Si existe, el apuntador se coloca al final del ficero (listo para escribir a continuacion del contenido)
  • a+ Modo append, lectura y escritura, si no existe lo crea; apuntador al final del archivo
  • b es un flag adicional a cualquiera de los anteriores que indica que vamos a operar sobre un archivo binario (en contraposicion a archivo de texto) como una imagen o un sonido. En algunos sistemas operativos como linux no existe esta diferencia asi que el indicador b será ignorado.

la referencia que devuelve fopen, se usa luego en las otras funciones de ficheros como fgets, fputs, fclose, fread o fwrite.

LA funcion file_get_contents() pasa a una cadena todo un fichero de texto (incluyendo una URL) y file() lo lee línea a línea en un array. En ejemplo:

span class="st0">"data.txt"); # Leo el fichero linea a linea
# Ordeno el array alfabeticamente
# Pongo el puntero del array en el principio
"<br />";
}
 

y para escribir en un fichero:

span class="st0">"file.txt", 'a');
$line = "Aqui va el contenido"

Funcion mail

Aquí va un ejemplo:

span class="st0">"Probando la funcion mail()""Hola,\n\n""Solo estoy probando la funcion mail() de PHP.\n\n""Saludos, \n""Jorge""bcc: mru@iac.es, japp@iac.es" . "\r\n""From: Jorge A Perez Prieto <japp@iac.es>"

Trabajando con MySQL

Aunque el objetivo es trabajar con MySQL desde PHP, aprederemos las ordenes principales de MySQL desde la consola:

edit · print · PDF
Page last modified on June 20, 2019, at 02:41 PM