PHP - ¿Qué es PHP, Significado, Usos, Sitio Web

PHP es un acrónimo recursivo en inglés, «PHP: Hipertext Preprocessor». Se trata de un lenguaje de script (o de guiones) diseñado para, entre otras cosas, aumentar el dinamismo de las páginas web. Originalmente se trataba de un conjunto de macros concebidas para ayudar en el mantenimiento de páginas web. Desde entonces, sus características han ido creciendo hasta convertirse en un lenguaje de programación completo, capaz de manejar entornos que integran grandes bases de datos. Su popularidad se basa, en gran parte, en su sintaxis similar a la del lenguaje de programación C, su rapidez y simplicidad.

Ejemplo de código:

<html>
 <head>
  <title>Ejemplo PHP</title>
 </head>
 <body>
  <?php echo "Hola mundo con PHP"; ?>
 </body>
</html>


¿Qué es PHP?

PHP es un lenguaje de script (o de guiones), diseñado para, entre otras cosas, aumentar, incrementar el dinamismo de las páginas web. Originalmente se trataba de un conjunto de macros concebidas para ayudar en el mantenimiento de páginas web. Desde entonces, sus características han ido creciendo hasta convertirse en un lenguaje de programación completo, capaz de manejar entornos que integran grandes bases de datos. Su popularidad se basa, en gran parte, a su sintaxis similar a la del lenguaje de programación C, su rapidez y simplicidad.

Es un lenguaje de script utilizado en los servidores web y es allí donde se ejecuta. Es por eso que una página que incluya código PHP será interpretada en el servidor antes de mandarla al cliente (en este caso, un usuario informático que haya pedido una página web a través de cualquier navegador convencional). La página finalmente enviada ya no incluye el código PHP, solo el HTML típico de toda web.

Las páginas que contienen código PHP cambian antes de que el usuario las vea, dependiendo de ciertas condiciones. Esto se puede utilizar, por ejemplo, para escribir algo en esa página, crear una tabla con el mismo número de filas como veces ha entrado el usuario en ese sitio o integrar en la página una base de datos como MySQL. Es decir, PHP convierte una página estática en otra dinámica.

PHP se desarrolla en dos versiones paralelas: Para la versión 4, su última publicación es 4.4.9, y 5.2.6 (15 de Noviembre de 2008) para la versión 5.

Significado de PHP

PHP es un lenguaje de programación muy potente que, junto con html, permite crear sitios web dinámicos. PHP se instala en el servidor y funciona con versiones de Apache, Microsoft IIs, Netscape Enterprise Server y otros.

La forma de usar php es insertando código php dentro del código html de un sitio web. Cuando un cliente (cualquier persona en la web) visita la página web que contiene éste código, el servidor lo ejecuta y el cliente sólo recibe el resultado. Su ejecución, es por tanto en el servidor, a diferencia de otros lenguajes de programación que se ejecutan en el navegador.

PHP permite la conexión a numerosas bases de datos, incluyendo MySQL, Oracle, ODBC, etc. Y puede ser ejecutado en la mayoría de los sistemas operativos (Windows, Mac OS, Linux, Unix).

Los usos de PHP

USOS DE INCLUDE Y REQUIRE EN PHP

Las sentencias include() y require() tienen la función de incrustar un archivo en otro. En cierta medida tiene una cierta analogía con los frames de las páginas HTML, y de hecho podemos crear con estas sentencias una página modular en la que en podemos definir una variable que contiene, por ejemplo, el menú de navegación. Aunque cuando se trata de escribir simplemente código HTML también podemos hacerlo escribiendo el HTML con “echo”. De esta manera para agregar nuevos enlaces solamente tenemos que modificar la variable o el echo en cuestión agregando, modificando o quitando enlaces.

La diferencia que hay entre include() y require(), es que si el archivo a incrustar no existe include() da una advertencia, mientras que require() interrumpe la ejecución del código posterior a la línea donde se encuentra el require().

Por supuesto, no solo podemos incluir código HTML, también podemos crear un archivo que nos conecta con la base de datos y no tendremos que volver a escribir todos los datos de conexión cada vez que tengamos que conectarnos desde cualquier página con la base de datos.

En las páginas de registro de usuarios es muy cómodo incluir el archivo que genera la clave de acceso mediante un include(), así lo tenemos protegido de posibles cambios accidentales y el código de la página no resulta tan amplio y complejo.

EL USO DEL - ECHO - EN PHP, VARIOS CASOS

“echo” es una de las formas que tiene PHP de devolver al navegador los datos que procesa. Pero no solo devuelve los datos procesados, también puede devolver código HTML.

Veamos algunas formas que puede tomar:

echo 1; ======> devuelve un 1 en el código HTML

echo "hola"; ======> devuelve hola en el código HTML

echo 'hola'; ======> devuelve hola en el código HTML

echo $variable; ======> devuelve el valor de la variable

echo "$variable"; ======> devuelve el valor de la variable

echo '$variable'; ======> devuelve $variable

echo "<h2 align="center">Encabezado</h2>";

devuelve error, no puede haber comillas dobles dentro de comillas dobles

echo '<h2 align="center">Encabezado</h2>';

devuelve <h2 align="center">Encabezado</h2>

echo "<h2 align=\"center\">Encabezado</h2>";

devuelve <h2 align="center">Encabezado</h2>

Centrándonos en los puntos importantes, diremos que echo imprimirá valores numéricos y variables sin necesidad de ninguna comilla, pero si hay más de un valor numérico o algo más aparte de la variable, tendremos una cadena, por lo que necesitaremos comillas.

Sobre que comillas utilizar, las comillas simples (') imprimen cualquier valor menos las comillas simples, pero no imprime los valores de las variables.

Las comillas dobles (") imprimen cualquier valor menos las comillas dobles, pero a diferencia de las comillas simples, imprime los valores de las variables.

Hay un método que permitirá escribir comillas dobles dentro de comillas dobles o comillas simples dentro de comillas simples, ese método es la barra de escape (\).

Como hemos visto, las barras de escape las emplearemos de la siguiente forma:

echo "<h2 align=\"center\">$encabezado</h2>";

con esta sintaxis podremos imprimir el contenido de la variable encabezado dentro de un echo que incluye comillas dobles.

Por ultimo, solo decir que echo no es el único método de devolver datos reconocibles para el navegador, también existe print, y básicamente la diferencia es que print solo imprime una cadena, mientras que echo imprime tantas como reciba.

Con esta diferencia presente, casi se podría recomendar usar siempre echo, que cada cual decida.

EL USO DEL MÉTODO GET

El paso de variables de una página a otra puede hacerse de varias formas, ya hemos visto como hacerlo con un formulario mediante el método POST, y ahora vamos ha hacerlo también con un formulario pero usando GET.

El uso de GET en formularios, salvo que el desarrollador sepa muy bien lo que hace y los datos no sean comprometidos, no debe usarse para otras cosas diferentes a los formularios de búsqueda. El motivo es sencillo, el método GET lo que hace es pasar las variables y sus valores por la URL, es decir, no solo queda a la vista de cualquier usuario, sino que además la información puede quedar guardada en el historial del navegador. Imagine que se usa este método para identificar usuarios, y el nombre de usuario y la clave se queda guardada en el historial del navegador de un ordenador, digamos de una biblioteca pública, el fallo en la seguridad seria catastrófico.

Vamos a aplicar este método al caso de la calculadora que vimos antes. Para este caso tampoco seria un problema el método GET, ya que unos valores numéricos que queremos sumar, no tiene mucha importancia que aparezca en la URL.

Pero el método GET también tiene otras diferencias con POST, una de ellas es la recarga de la página. Si pasas las variables por URL (usando GET) cuando pulsas el botón volver atrás o actualizas la página lo haces sin más problemas. No obstante cuando se hace esto con el método POST te sale un mensaje que dice algo así como: “para recargar la página debe enviar la información que ya envío antes” y te obliga a recargar la página de nuevo para ver el contenido.

Otra diferencia entre GET y POST, es que el primero no permite enviar mas de 2048 caracteres, no olvideis esto.

Sitios web con PHP

Estructura de una página PHP: fragmentos PHP y fragmentos HTML

Una página PHP es un archivo de texto que contiene uno o varios fragmentos de código PHP y que también puede contener fragmentos de código HTML.

Los fragmentos de código PHP están delimitados por las etiquetas <?php (etiqueta inicial) y ?> (etiqueta final). Más adelante se comentan otros posibles delimitadores de fragmentos de código PHP.

Contenido del archivo PHP en el servidor: ejemplo.php

Texto recibido por el navegador: http:// .../ejemplo.php

<?php
print "<p>Hola</p>\n";
?>
<p>Hola</p>

En una página PHP todo lo que no son fragmentos PHP son fragmentos HTML. Los fragmentos de código HTML no están delimitados por ninguna etiqueta.

Contenido del archivo PHP en el servidor: ejemplo.php

Texto recibido por el navegador: http:// .../ejemplo.php

<?php
print "<p>Hola</p>\n";
?>
<p>¿Cómo estás</p>
<p>Hola</p>
<p>¿Cómo estás</p>

Cuando un navegador solicita una página PHP a un servidor, el servidor lee el archivo secuencialmente y va generando el resultado:

  • si la página contiene fragmentos HTML, el código HTML se incluye sin modificados en el resultado.

  • si la página contiene fragmentos PHP, se ejecutan las instrucciones que se encuentran en los fragmentos de código PHP. Si esas instrucciones generan texto, el texto se incluye en el resultado.

Cuando el servidor termina de leer el archivo, el servidor envía al navegador el resultado.

Es importante señalar que:

  • El navegador recibe una página web (es decir, únicamente código HTML), no recibe código PHP.

  • Los fragmentos PHP tiene que generar las etiquetas HTML que se necesiten para una correcta visualización de la página web en el navegador.

  • El navegador no puede distinguir en la página recibida, qué parte ha sido generada en un fragmento PHP y qué parte se encontraba ya en un fragmento HTML.

  • Como la página PHP se lee secuencialmente, el código HTML generado por los fragmentos PHP y el incluido en los fragmentos HTML se encuentran en el mismo orden en que se encontraban los fragmentos en la página PHP.

Los ejemplos siguientes muestran diferentes programas PHP que generan el mismo resultado:

  • Programa con un único fragmento PHP

Contenido del archivo PHP en el servidor

Texto recibido por el navegador

<?php
print "<p>Hola</p>\n";
print "<p>¿Cómo estás?</p>\n";
print "<p>Adios</p>\n";
?>
<p>Hola</p>
<p>¿Cómo estás?</p>
<p>Adios</p>

  • Programa con un fragmento PHP y un fragmento HTML

Contenido del archivo PHP en el servidor

Texto recibido por el navegador

<p>Hola</p>
<?php
print "<p>¿Cómo estás?</p>\n";
print "<p>Adios</p>\n";
?>
<p>Hola</p>
<p>¿Cómo estás?</p>
<p>Adios</p>

  • Programa con dos fragmentos PHP y un fragmento HTML

Contenido del archivo PHP en el servidor

Texto recibido por el navegador

<?php
print "<p>Hola</p>\n";
?>
<p>¿Cómo estás?</p>
            
<?php
print "<p>Adios</p>\n";
?>
<p>Hola</p>
<p>¿Cómo estás?</p>
<p>Adios</p>

En un fragmento PHP no pueden escribirse etiquetas HTML sueltas; el código HTML debe generarse siempre con instrucciones de PHP. El programa siguiente no puede ni siquiera ejecutarse y produce un error de sintaxis:

<?php
<p>Hola</p>
?>

Parse error: syntax error, unexpected '<' in ejemplo.php on line 2


Si en una misma página hay varios fragmentos PHP, se tratan como un único programa.

<?php
$saludo = "Hola";         // Se define una variable
print "<p>$saludo</p>";   // Se escribe el valor de la variable
?>
<p>Hola</p>
<?php
$saludo = "Hola";         // Se define una variable 
?>
<p>
<?php
print "$saludo";         // Se escribe el valor de la variable
?>
</p>
<p>Hola</p>

¿Cómo hacer una web multilenguaje sin afectar al posicionamiento (SEO) con PHP?

Leyendo este artículo sobre Posicionamiento web en sitios Multi-idioma, vemos que hay múltiple maneras de resolver éste problema, aunque cada una tiene ciertos inconvenientes.

Una de las múltiples opciones y de las más fáciles es hacerlo pasando parámetros mediante GET y jugando con la sesión y las cookies del usuario. En nuestro caso, hemos elegido esta opción, pero no deseamos que la URL quede mancillada con parámetros, pero que al mismo tiempo, tampoco nos de un error si no le pasamos dichos parámetros a la URL. ¿Qué hacemos entonces?

Pues primeramente para elegir el idioma de la web a mostrar, evaluamos que si hay un GET es porque el usuario ha cambiado el idioma de la página, si no, rastrearemos la sesión y las cookies en busca de un idioma. En el caso de no encontrar nada, buscaremos el idioma del navegador, y en caso de que falle, pondremos un idioma internacional como es el inglés. Veamos el código:

<?php
        // Idioma
        function getLang(){
                if(isSet($_GET['lang'])) {
                        $lang = $_GET['lang'];
                        // Registramos la sesion y la cookie
                        $_SESSION['lang'] = $lang;
                        setcookie("lang", $lang, time() + (3600 * 24));
                } else if(isSet($_SESSION['lang'])) {
                        $lang = $_SESSION['lang'];
                } else if(isSet($_COOKIE['lang'])) {
                        $lang = $_COOKIE['lang'];
                } else {
                        // Averiguamos cual es el idioma configurado en el navegador del visitante
                        // y si no lo tiene, ponemos ingles por defecto
                        if ($_SERVER['HTTP_ACCEPT_LANGUAGE'] != ''){
                                $idiomas = explode(";", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
                                if(strpos($idiomas[0], "es") !== FALSE){$lang = "es";}
                                if(strpos($idiomas[0], "en") !== FALSE){$lang = "en";}
                                if(strpos($idiomas[0], "fr") !== FALSE){$lang = "fr";}
                        } else {
                                $lang = 'en';
                        }
                }
                return $lang;
        }
?>


Es decir, que sólo pasaremos parámetros por GET en el caso que el usuario cambie el idioma. Y si un usuario pasa un enlace a otro sin dichos parámetros, éste último pueda ver el contenido sin problema en el que podemos asegurar será su idioma (al menos, el del navegador).

Con ésto evitamos el problema de duplicar contenido teniendo URL diferentes para cada idioma, por ejemplo. Podemos evaluar el valor de la variable $lang y mostrar el contenido en el idioma que deseemos usando includes.

Vídeos Gratis
www.Santos-Catolicos.com
¡DVDs, Artículos y Libros Gratis!
FREE DVDS & VIDEOS
WATCH & DOWNLOAD ALL THE DVDS & VIDEOS FOR FREE!