PHP

PHP

PHP: Hypertext Preprocessor

PHP es un lenguaje de scripting de propósito general popular que es especialmente adecuado para el desarrollo web.

domingo, 5 de octubre de 2014

CONCEPTOS BÁSICOS

CONCEPTOS BÁSICOS



¿QUE ES PHP?
       
         PHP Hypertex Processor es un lenguaje de “código abierto” interpretado, de alto nivel, embebido en páginas HTML y ejecutado en el servidor. Este lenguaje se caracteriza porque solo es interpretado pero no compilado, y es embebido en el código HTML, lo que le da un alto rendimiento y potencia. Especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML. Su popularidad  puede atribuirse a su sencillez, accesibilidad, coste (¡es gratis!). PHP se puede ejecutar en servidores y está disponible de forma gratuita en un gran número de plataformas y sistemas operativos.
       
        PHP es un lenguaje de script que se ejecuta del lado del servidor, el código PHP se incluye en una página HTML normal. Por lo tanto, se puede comparar con otros lenguajes de script que se ejecutan según el mismo principio: ASP (Active Server Pages), JSP (Java Server Pages) o PL/SQL Server Pages (PSP).


EJEMPLO:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <title>Ejemplo</title>
    </head>
    <body>

        
<?php
            
echo "¡Hola, soy un script de PHP!";
        
?>

    </body>
</html>

      En lugar de usar muchos comandos para mostrar HTML (como en C o en Perl), las páginas de PHP contienen HTML con código incrustado que hace "algo" (en este caso, mostrar "¡Hola, soy un script de PHP!). El código de PHP está encerrado entre las etiquetas especiales de comienzo y final que permiten entrar y salir del "modo PHP".
  
     Para indicar al servidor web que una página HTML contiene código PHP que debe ejecutarse, basta con dar al archivo una extensión especifica  .php


¿Qué puede hacer PHP?

     Cualquier cosa. PHP está enfocado principalmente a la programación de scripts del lado del servidor, por lo que se puede hacer cualquier cosa que pueda hacer otro programa CGI, como recopilar datos de formularios, generar páginas con contenidos dinámicos, o enviar y recibir cookies. Aunque PHP puede hacer mucho más.

     Existen principalmente tres campos principales donde se usan scripts de PHP.
    Scripts del lado del servidor. Este es el campo más tradicional y el foco principal. Son necesarias tres cosas para que esto funcione. El analizador de PHP (módulo CGI o servidor), un servidor web y un navegador web. Es necesario ejecutar el servidor con una instalación de PHP conectada. Se puede acceder al resultado del programa de PHP con un navegador, viendo la página de PHP a través del servidor. Todo esto se puede ejecutar en su máquina si está experimentado con la programación de PHP.
    
    Scripts desde la línea de comandos. Se puede crear un script de PHP y ejecutarlo sin necesidad de un servidor o navegador. Solamente es necesario el analizador de PHP para utilizarlo de esta manera. Este tipo de uso es ideal para scripts que se ejecuten con regularidad empleando cron (en *nix o Linux) o el Planificador de tareas (en Windows). Estos scripts también pueden usarse para tareas simples de procesamiento de texto.
     
       Escribir aplicaciones de escritorio. Probablemente PHP no sea el lenguaje más apropiado para crear aplicaciones de escritorio con una interfaz gráfica de usuario, pero si se conoce bien PHP, y se quisiera utilizar algunas características avanzadas de PHP en aplicaciones del lado del cliente, se puede utilizar PHP-GTK para escribir dichos programas. También es posible de esta manera escribir aplicaciones independientes de una plataforma. PHP-GTK es una extensión de PHP, no disponible en la distribución principal. Si está interesado en PHP-GTK, puede visitar su propio »  sitio web.

    PHP puede emplearse en todos los sistemas operativos principales, incluyendo Linux, muchas variantes de Unix (incluyendo HP-UX, Solaris y OpenBSD), Microsoft Windows, Mac OS X, RISC OS y probablemente otros más. PHP admite la mayoría de servidores web de hoy en día, incluyendo Apache, IIS, y muchos otros. Esto incluye cualquier servidor web que pueda utilizar el binario de PHP FastCGI, como lighttpd y nginx. PHP funciona tanto como módulo como procesador de CGI.
  
      De modo que con PHP, se tiene la libertad de elegir el sistema operativo y el servidor web. Además, se tiene la posibilidad de utilizar programación por procedimientos o programación orientada a objetos (POO), o una mezcla de ambas.
       Con PHP no se está limitado a generar HTML. Entre las capacidades de PHP se incluyen la creación de imágenes, ficheros PDF e incluso películas Flash (usando libswf y Ming) generadas sobre la marcha. También se puede generar fácilmente cualquier tipo de texto, como XHTML y cualquier otro tipo de fichero XML. PHP puede autogenerar estos ficheros y guardarlos en el sistema de ficheros en vez de imprimirlos en pantalla, creando una caché en el lado del servidor para contenido dinámico.
    
       Una de las características más potentes y destacables de PHP es su soporte para un amplio abanico de bases de datos. Escribir una página web con acceso a una base de datos es increíblemente simple utilizando una de las extensiones específicas de bases de datos (p.ej., para mysql), o utilizar una capa de abstracción como PDO, o conectarse a cualquier base de datos que admita el estándar de Conexión Abierta a Bases de Datos por medio de la extensión ODBC. Otras bases de datos podrían utilizar URL o sockets, como lo hace CouchDB.

      PHP también cuenta con soporte para comunicarse con otros servicios usando protocolos tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM (en Windows) y muchos otros. También se pueden crear sockets de red puros e interactuar usando cualquier otro protocolo. PHP tiene soporte para el intercambio de datos complejos de WDDX entre virtualmente todos los lenguajes de programación web. Y hablando de interconexión, PHP tiene soporte para la instalación de objetos de Java y emplearlos de forma transparente como objetos de PHP.
    
    PHP tiene útiles características de procesamiento de texto, las cuales incluyen las expresiones regulares compatibles con Perl (PCRE), y muchas extensiones y herramientas para el acceso y análisis de documentos XML. PHP estandariza todas las extensiones XML sobre el fundamento sólido de libxml2, y amplía este conjunto de características añadiendo soporte para SimpleXML, XMLReader y XMLWriter.



SINTAXIS BÁSICA DE PHP



SINTAXIS BÁSICA DE PHP



ETIQUETAS DE PHP

      Cuando PHP interpreta un fichero, busca las etiquetas de apertura y cierre, que son <?php y ?>, y que indican a PHP dónde empezar y finalizar la interpretación del código. Este mecanismo permite a PHP ser incrustado en todo tipo de documentos, ya que todo lo que esté fuera de las etiquetas de PHP será ignorado por el intérprete.


     PHP también permite las etiquetas abreviadas <? y ?> (las cuales están desaconsejadas debido a que sólo están disponibles si se habilitan con la directiva short_open_tag del fichero de configuración php.ini, o si PHP se configuró con la opción --enable-short-tags .
     Si un fichero contiene código PHP puro, es preferible omitir la etiqueta de cierre de PHP al final del fichero. Esto impide que se añadan espacios en blanco o nuevas líneas después de la etiqueta de cierre de PHP, los cuales pueden causar efectos no deseados debido a que PHP iniciará la salida del buffer cuando no había intención por parte del programador de enviar ninguna salida en ese punto del script.

<?php
echo "Hola mundo";

// ... más código

echo "Última sentencia";

// el script finaliza aquí sin etiqueta de cierre de PHP


SALIR DE HTML

       Cualquier cosa fuera del par de etiquetas de apertura y cierre es ignorada por el intérprete de PHP, el cual permite que los ficheros de PHP tengan contenido mixto. Esto permite que PHP sea embebido en documentos HTML para, por ejemplo, crear plantillas.

<p>Esto va a ser ignorado por PHP y mostrado por el navegador.</p>
<?php echo 'Mientras que esto va a ser interpretado.'?>
<p>Esto también será ignorado por PHP y mostrado por el navegador.</p>

     Esto funciona como se espera, porque cuando PHP intercepta las etiquetas de cierre ?>, simplemente comienza a imprimir cualquier cosa que encuentre (a excepción de una nueva línea inmediatamente) hasta que dé con otra etiqueta de apertura a menos que se encuentre en mitad de una sentencia condicional, en cuyo caso el intérprete determinará el resultado de la condición antes de tomar una decisión de qué es lo que tiene que saltar.

Vea el siguiente ejemplo.
Usar estructuras con condiciones

Ejemplo #1 Salida avanzada usando condiciones:

<?php if ($expresión == true): ?>
  Esto se mostrará si la expresión es verdadera.
<?php else: ?>
  En caso contrario se mostrará esto.
<?php endif; ?

        En este ejemplo, PHP saltará los bloques donde la condición no se cumpla, incluso si están fuera de las etiquetas de apertura/cierre de PHP, PHP los saltará según la condición, ya que el intérprete saltará por encima de los bloques contenidos dentro de una condición que no se cumpla.
     Para imprimir bloques de texto grandes, es más eficiente abandonar el modo intérprete de PHP que enviar todo el texto a través de echo o print.

    Existen cuatro tipos de pares de etiquetas de apertura y de cierre que se pueden usar en PHP. Dos de estas, <?php ?> y <script language="php"> </script>, siempre están disponibles. Las otras dos son las etiquetas abreviadas y las etiquetas estilo ASP, que se pueden activar o desactivar desde el fichero de configuración php.ini Aunque algunas personas encuentran las etiquetas abreviadas y las etiquetas estilo ASP más convenientes, son menos portables y generalmente no se recomiendan.

Ejemplo #2 Etiquetas de apertura y de cierre de PHP:

1.  <?php echo 'si se quiere mostrar documentos XHTML o XML, debe hacerse así'?>

2.  
<script language="php">
        
echo 'algunos editores (como FrontPage) no les gusta
              las instruciones de proceso'
;
    
</script>

3.  
<? echo 'esta es la forma más simple, una instrución de procesado SGML'?>
    <?= expresión ?> Esto es una forma abreviada de "<? echo expresión ?>"

4.  <% echo 'Quizá use de forma opcional etiquetas de estilo ASP'; %>
    <%= $variable; %>  Esto es una forma abreviada de "<% echo $variable; %>"

     Las etiquetas vistas en los ejemplos uno y dos están siempre disponibles; el ejemplo uno es el más común y recomendado de los dos.


SEPARACIÓN DE INSTRUCCIONES

      Como en C o en Perl, PHP requiere que las instrucciones terminen en punto y coma al final de cada sentencia. La etiqueta de cierre de un bloque de código de PHP automáticamente implica un punto y coma; no es necesario usar un punto y coma para cerrar la última línea de un bloque de PHP. La etiqueta de cierre del bloque incluirá la nueva línea final inmediata si está presente.

<?php
    
echo 'Esto es una prueba';
?>

<?php echo 'Esto es una prueba' ?>

<?php echo 'Hemos omitido la última etiqueta de cierre';

       La etiqueta de cierre de un bloque de PHP es opcional al final de un fichero, y en algunos casos es útil omitirla cuando se usa include o require, para que no se produzcan espacios en blanco al final de los ficheros, y así se podrán añadir aún cabeceras para la respuesta posterior. También es práctico si se utiliza la salida del buffer y no se desean espacios en blanco no deseados al final de las partes generadas por ficheros incluidos.


COMENTARIOS

 PHP soporta comentarios 'C', 'C++' y estilo consola Unix (estilo Perl).

Por ejemplo:

<?php
    
echo 'Esto es una prueba'// Esto es un comentario estilo c++ de una sola línea
    /* Esto es un comentario multi-línea
       y otra lína de comentarios */
    
echo 'Esto es otra prueba';
    echo 
'Una prueba final'# Esto es un comentario estilo consola de una sola línea
?>

         Los comentarios del estilo "una sola línea" solo comentan hasta el final de la línea o del bloque actual de código de PHP, lo primero que suceda. Esto implica que el código HTML después de // ... ?> o # ... ?> SERÁ impreso: ?> sale del modo PHP y vuelve al modo HTML, por lo que // o # no pueden influir en eso. Si la directiva de configuración asp_tags está activada, actúa igual que // %> y # %>. Sin embargo, la etiqueta </script> no sale del modo PHP en un comentario de una sola línea.
<h1>Esto es un <?php # echo 'simple';?> ejemplo</h1>
<p>El encabezado anterior dirá 'Esto es un  ejemplo'.</p>

      Los comentarios al estilo 'C' finalizan con el primer */ que se encuentre. Asegúrese de no anidar comentarios al estilo 'C'. Es muy fácil cometer este error cuando se intenta comentar un bloque grande de código.

<?php
 
/*
    echo 'Esto es una prueba'; /* Este comentario causará un problema*/
 
*/
?>


TIPOS DE DATOS DE PHP

TIPOS DE DATOS DE PHP



PHP soporta ocho tipos primitivos.

Cuatro tipos escalares:
-          boolean
-          Integer
-         float (número de punto-flotante, también conocido como ‘double’)
-          string

 Dos tipos compuestos:
-         Array
-          Object

y finalmente  dos tipos especiales:
-         resource
-          NULL.

Booleanos: Este es el tipo más simple. Un boolean expresa un valor de verdad. Puede ser TRUE (verdadero) o FALSE (falso).


Sintaxis

Para especificar un literal de tipo boolean, emplee las constantes TRUE o FALSE. Ambas son insensibles a mayúsculas y minúsculas.

<?php
$foo 
True// asigna el valor TRUE a $foo
?>

      Usualmente, el resultado de un operador que devuelve un valor boolean es pasado a una estructura de control.

<?php
// == es un operador que prueba por
// igualdad y devuelve un booleano
if ($accion == "mostrar_version") {
    echo 
"La versión es 1.23";
}

// esto no es necesario...
if ($mostrar_separadores == TRUE) {
    echo 
"<hr>\n";
}

// ...porque se puede escribir simplemente:
if ($mostrar_separadores) {
    echo 
"<hr>\n";
}
?>

Enteros (Integers) : Un entero integer es un número del conjunto = {..., -2, -1, 0, 1, 2, ...}.


Sintaxis

      Los integer pueden ser especificados mediante notación decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2), opcionalmente precedidos por un signo (- o +).

Números de punto flotante: Los números de punto flotante (también conocidos como "flotantes", "dobles" o "números reales") pueden ser especificados usando cualquiera de las siguientes sintaxis:

<?php
$a 
1.234;
$b 1.2e3;
$c 7E-10;
?>

Cadenas de caracteres (Strings): Un string es una serie de caracteres, donde cada carácter es lo mismo que un byte. Esto significa que PHP solo admite un conjunto de 256 caracteres, por lo que no tiene soporte nativo para Unicode.


Sintaxis

      Un literal de tipo string se puede especificar con cuatro formas diferentes:

-         entrecomillado simple
      La manera más sencilla de especificar un string es delimitarlo con comillas simples (el carácter ').
      Para especificar una comilla simple literal, se ha de escapar con una barra invertida (\). Para especificar una barra invertida literal, se duplica (\\). Todas las demás instancias de barras invertidas serán tratadas como una barra invertida literal: esto significa que otras secuencias de escape que podrían utilizarse, tales como \r o \n, serán mostradas literalmente tal y como se especifican, en lugar de tener cualquier otro significado especial.

-         entrecomillado doble
     La característica más importante del entrecomillado doble de un string es el hecho de que se expanden los nombres de las variables.

-          heredoc
     Una tercera forma de delimitar un string es mediante la sintaxis heredoc: <<<. Después de este operador, se deberá proporcionar un identificador y justo después una nueva línea. A continuación va el propio string, y para cerrar la notación se pone el mismo identificador.
      El identificador de cierre debe empezar en la primera columna de la nueva línea. Asimismo, el identificador debe seguir las mismas reglas de nomenclatura de las etiquetas en PHP: debe contener solo caracteres alfanuméricos y guiones bajos, y debe empezar con un carácter alfabético o un guion bajo

-         nowdoc (desde PHP 5.3.0)
      Nowdoc es a los string con comillas simples lo mismo que Heredoc lo es a los string con comillas dobles. Un nowdoc se especifica de forma análoga a un heredoc, pero no se realiza ningún análisis dentro del nowdoc. La construcción es ideal para embeber código PHP o grandes fragmentos de texto sin necesidad de escaparlo. Comparte algunas características comunes con la construcción <![CDATA[ ]]> de SGML, donde se declara un bloque de texto que no se analiza.

      Un nowdoc se identifica con la misma secuencia, <<<, usada para heredoc, pero el identificador que le sigue está delimitado con comillas simples, p.ej., <<<'EOT'. Todas las reglas para los identificadores de heredoc también son aplicables a los identificadores de nowdoc, especialmente aquellas que se refieren al empleo del identificador de cierre.

Arrays: Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado como una matriz real, una lista (vector), una tabla asociativa (una implementación de un mapa), diccionario, colección, pila, cola, y posiblemente más. Ya que los valores de un array pueden ser otros arrays, árboles y también son posibles arrays multidimensionales.
    
     Una explicación sobre tales estructuras de datos está fuera del alcance de este manual, pero encontrará al menos un ejemplo de cada uno de ellos. Para más información, consulte la extensa literatura que existe sobre este amplio tema.

Sintaxis

Especificación con array()
      Un array puede ser creado usando el constructor del lenguaje array(). Éste toma un cierto número de parejas clave => valor como argumentos.

array(
    clave  => valor,
    clave2 => valor2,
    clave3 => valor3,
    ...
    )

           La coma después del último elemento del array es opcional y se puede omitir. Esto normalmente se hace para arrays de una única línea, es decir, es preferible array(1, 2) que array(1, 2, ). Por otra parte, para arrays multilínea, la coma final se usa comúnmente, ya que permite la adición sencilla de nuevos elementos al final.

          A partir de PHP 5.4 también se puede usar la sintaxis de array corta, que reemplaza array() con [].

Ejemplo de un array simple:

<?php
$array 
= array(
    
"foo" => "bar",
    
"bar" => "foo",
);

// a partir de PHP 5.4
$array = [
    
"foo" => "bar",
    
"bar" => "foo",
];
?>


Objetos:
Inicialización de Objetos
Para crear un nuevo object, utilice la declaración new para instanciar una clase:

<?php
class foo
{
    function 
do_foo()
    {
        echo 
"Doing foo.";
    }
}

$bar = new foo;
$bar->do_foo();
?>

Recursos: Un valor tipo resource es una variable especial, que contiene una referencia a un recurso externo. Los recursos son creados y usados por funciones especiales.

NULO: El valor especial NULL representa una variable sin valor. NULL es el único valor posible del tipo null.

Una variable es considerada null si:
o   se le ha asignado la constante NULL.
o   no se le ha asignado un valor todavía.
o   se ha destruido con unset().


Sintaxis

No hay más que un valor de tipo null, y es la constante NULL insensible a mayúsculas/minúsculas.

<?php
$var 
NULL;     
?>

Llamadas de retorno: Las llamadas de retorno se pueden indicar con el tipo callable a partir de PHP 5.4. Esta documentación utilizó la información del tipo callback con el mismo propósito.
     Algunas funciones como call_user_func() o usort() aceptan como parámetro funciones de llamada de retorno definidas por el usuario. Las funciones de llamadas de retorno no sólo pueden ser funciones simples, sino también métodos de un object, incluyendo métodos de clase estáticos.

Ejemplo #1 Ejemplo de funcion de llamadas de retorno

<?php

// Un ejemplo de función de llamada de retorno
function mi_función_de_llamada_de_retorno() {
    echo 
'¡hola mundo!';
}

// Un ejemplo de método de llamada de retorno
class MiClase {
    static function 
miMétodoDeLlamadaDeRetorno() {
        echo 
'¡Hola Mundo!';
    }
}



VARIABLES

VARIABLES



    Las variables en PHP pueden almacenar datos de diferentes tipos, sin necesidad de ser declaradas previamente. La sintaxis para el uso de variables está definido por el siguiente modelo: $var, es decir, toda variable debe iniciar con el símbolo de dólar ($) y luego se escribe el nombre de la variable. Por ejemplo para hacer referencia a la variable “edad” se escribe $edad.
      
      En PHP las variables se representan con un signo de dólar seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas.
    
      Los nombres de variables siguen las mismas reglas que otras etiquetas en PHP. Un nombre de variable válido tiene que empezar con una letra o un carácter de subrayado (underscore), seguido de cualquier número de letras, números y caracteres de subrayado. Como expresión regular se podría expresar como: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'


Variables Predefinidas: PHP proporciona una gran cantidad de variables predefinidas a cualquier script que se ejecute. Muchas de éstas, sin embargo, no pueden ser completamente documentadas ya que dependen del servidor que esté corriendo, la versión y configuración de dicho servidor, y otros factores.



CONSTANTES

CONSTANTES



        Una constante es un identificador (nombre) para expresar un valor simple. Como el nombre sugiere, este valor no puede variar durante la ejecución del script. Una constante es sensible a mayúsculas por defecto. Por convención, los identificadores de contantes siempre suelen declararse en mayúsculas.

    El nombre de una constante sigue las mismas reglas que cualquier otra etiqueta de PHP. Un nombre de constante válido empieza por una letra o subguión, seguido por cualquier número o letras, números o subguiones. Usando una expresión regular, se representaría de la siguiente manera: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

      Se puede definir una constante usando la función define(). Una vez definida, no puede ser modificada ni eliminada.
   Para obtener el valor de una constante solo es necesario especificar su nombre. A diferencia de las variables, no se tiene que especificar el prefijo $.



DIFERENCIAS ENTRE CONSTANTES Y VARIABLES EN PHP


Las constantes solo pueden ser definidas usando la función define(), nunca por simple asignación.
Las constantes no pueden ser redefinidas o eliminadas después de establecerse; y
Las constantes solo puede albergar valores escalares.
Las constantes no llevan el signo dólar ($), como prefijo.
Las constantes pueden ser definidas y accedidas desde cualquier sitio sin importar las reglas de acceso de variables.

Ejemplo #1 Definiendo constantes

<?php

define("CONSTANTE""Hola mundo.");
echo CONSTANTE// muestra "Hola mundo."
echo Constante// muestra "Constant" y se emite un aviso.
?>


Ejemplo #2

<?php
define(“CONSTANT”,”Desarrollo Web.”);
echo CONSTANT; // imprime “Desarrollo Web”
?>

Constantes predefinidas: PHP ofrece un largo número de constantes predefinidas a cualquier script en ejecución. Muchas de estas constantes, sin embargo, son creadas por diferentes extensiones, y sólo estarán presentes si dichas extensiones están disponibles, bien por carga dinámica o porque han sido compiladas.


EXPRESIONES

EXPRESIONES



       Las expresiones son las piedras de construcción más importantes de PHP. En PHP casi todo lo que se escribe es una expresión. La manera más simple y acertada de definir lo que es una expresión es "cualquier cosa que tiene un valor".

         Las formas más básicas de expresiones son las constantes y las variables. Cuando se escribe "$a = 5", se está asignando '5' a $a. '5', obviamente, tiene el valor 5, o en otras palabras, '5' es una expresión con el valor de 5 (en este caso, '5' es una constante entera).
         Después de esta asignación, se espera que el valor de $a sea 5 también, por lo que si se escribe $b = $a, se espera que esto se comporte tal como si se escribiera $b = 5. En otras palabras, $a es también una expresión con el valor 5. Si todo funciona bien, esto es exactamente lo que sucederá.
      
     Un ejemplo de expresiones algo más complejo son las funciones. Por ejemplo, considere la siguiente función:

<?php
function foo ()
{
    return 
5;
}
?>



@ Raiza Venare / Venezuela. Con la tecnología de Blogger.