PHP es un lenguaje de programación de uso general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en el documento HTML en lugar de llamar a un archivo externo que procese los datos.
PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje de código abierto muy popular especialmente adecuado para el desarrollo web y que puede ser incrustado en HTML.
El código es interpretado por un servidor web con un módulo de procesador de PHP que genera la página Web resultante. PHP ha evolucionado por lo que ahora incluye también una interfaz de línea de comandos que puede ser usada en aplicaciones gráficas independientes. Puede ser usado en la mayoría de los servidores web al igual que en casi todos los sistemas operativos y plataformas sin ningún costo.
PHP se considera uno de los lenguajes más flexibles, potentes y de alto rendimiento conocidos hasta el día de hoy, lo que ha atraído el interés de múltiples sitios con gran demanda de tráfico, como Facebook, para optar por el mismo como tecnología de servidor.
Fue creado originalmente por Rasmus Lerdorf en 1995. Actualmente el lenguaje sigue siendo desarrollado con nuevas funciones por el grupo PHP. Este lenguaje forma parte del software libre publicado bajo la licencia PHP, que es incompatible con la Licencia Pública General de GNU debido a las restricciones del uso del término PHP.
XAMPP es el entorno más popular de desarrollo con PHP, es una distribución de Apache completamente gratuita y fácil de instalar que contiene MariaDB, PHP y Perl. El paquete de instalación de XAMPP ha sido diseñado para ser increíblemente fácil de instalar y usar.
Instrucciones en PHP
Instrucciones en PHP
For
Los bucles for son los más complejos en PHP. Se comportan como sus homólogos en C. La sintaxis de un bucle fores:
for (expr1; expr2; expr3)
sentencia
La primera expresión (expr1) es evaluada (ejecutada) una vez incondicionalmente al comienzo del bucle.
En el comienzo de cada iteración, se evalúa expr2. Si se evalúa como TRUE, el bucle continúa y se ejecutan la/s sentencia/s anidada/s. Si se evalúa como FALSE, finaliza la ejecución del bucle.
Al final de cada iteración, se evalúa (ejecuta) expr3.
Cada una de las expresiones puede estar vacía o contener múltiples expresiones separadas por comas. En expr2, todas las expresiones separadas por una coma son evaluadas, pero el resultado se toma de la última parte. Que expr2 esté vacía significa que el bucle debería ser corrido indefinidamente (PHP implícitamente lo considera como TRUE, como en C). Esto puede no ser tan inútil como se pudiera pensar, ya que muchas veces se debe terminar el bucle usando una sentencia condicional break en lugar de utilizar la expresión verdadera del for.
Ejemplo
<?php
echo "La suma de los 10 primeros números </br>";
$sum=0;
for ($i=1; $i<=10; $i++)
{ $sum += $i;
echo $i;
echo ($i==10)?"=":"+ </br>";
}
echo "<strong>$sum</strong>";
?>
Foreach
El constructor foreach proporciona un modo sencillo de iterar sobre arrays. foreach funciona sólo sobre arrays y objetos, y emitirá un error al intentar usarlo con una variable de un tipo diferente de datos o una variable no inicializada. Existen dos sintaxis:
foreach (expresión_array as $valor)
sentencias
foreach (expresión_array as $clave => $valor)
sentencias
La primera forma recorre el array dado por expresión_array. En cada iteración, el valor del elemento actual se asigna a $valor y el puntero interno del array avanza una posición (así en la próxima iteración se estará observando el siguiente elemento).
La segunda forma además asigna la clave del elemento actual a la variable $clave en cada iteración.
También es posible personalizar la iteración de objetos.
Nota:
En PHP 5, cuando foreach inicia su ejecución, el puntero interno del array se pone automáticamente en el primer elemento del array. Esto significa que no es necesario llamar la función reset() antes de un bucle foreach.
Ya que foreach depende el puntero de array interno en PHP 5, cambiar éste dentro del bucle puede conducir a un comportamiento inesperado.
En PHP 7, foreach no utilizar el puntero interno del array.
Para poder modificar directamente los elementos del array dentro de bucle, se ha de anteponer & a $valor. En este caso el valor será asignado por referencia.
Ejemplo
<?php
$Frutero = array ("Manzana", "Pera", "Cambur");
reset($Frutero);
foreach ($Frutero as $fruta)
{ echo "Fruta: $fruta<br>\n";
}
?>
While
Los bucles while son el tipo más sencillo de bucle en PHP. Se comportan igual que su contrapartida en C. La forma básica de una sentencia while es:
while (expr) sentencia
El significado de una sentencia while es simple. Le dice a PHP que ejecute las sentencias anidadas, tanto como la expresión while se evalúe como TRUE. El valor de la expresión es verificado cada vez al inicio del bucle, por lo que incluso si este valor cambia durante la ejecución de las sentencias anidadas, la ejecución no se detendrá hasta el final de la iteración (cada vez que PHP ejecuta las sentencias contenidas en el bucle es una iteración). A veces, si la expresión while se evalúa como FALSE desde el principio, las sentencias anidadas no se ejecutarán ni siquiera una vez.
Al igual que con la sentencia if, se pueden agrupar varias instrucciones dentro del mismo bucle while rodeando un grupo de sentencias con corchetes, o utilizando la sintaxis alternativa:
while (expr): sentencias ... endwhile;
Ejemplo
<?php
$i = 1;
while ($i <= 10) {
echo "El numero es: ".$i."<br/>";
$i++;
}
?>
Addslashes: Escapa un string con barras invertidas
Descripción
string addslashes ( string $str )
Devuelve un string con barras invertidas delante de los caracteres que necesitan ser escapados. Estos caracteres son la comilla simple ('), comilla doble "), barra invertida (\) y NUL (el byte NULL).
Un ejemplo del uso de addslashes() es cuando se introducen datos en un string que es evaluado por PHP. Por ejemplo, si O'Reilly se almacena en $str, es necesario escapar $str. (p.ej. eval("echo '".addslashes($str)."';"); )
Para escapar parámetros de bases de datos, deberían usarse funciones de escape específicas de cada SGBD por razones de seguridad (p.ej. mysqli_real_escape_string() para MySQL o pg_escape_literal(), pg_escape_string()para PostgreSQL). Los SGBD poseen una especificación de escape diferente para identificadores (p.ej. Nombre de tabla, nombre de campo) que para parámetros. Algunos SGBD como PostgreSQL proporcionan una función es escape de identificadores, pg_escape_identifier(), pero no todos los SGBD proporcionan una API de escape de identificadores. Si este es el caso, consulte el manual del sistema de base de datos para el método apropiado de escape.
Si un SGBD no posee una función de escape y dicho SGBD usa \ para escapar caracteres especiales, podría ser posible usar esta función únicamente cuando este método de escape es adecuado para la base de datos. Por favor, observe que el uso de addslashes() para el escape de parámetros de bases de datos puede ser la causa de problemas de seguridad en la mayoría de las bases de datos.
La directiva de PHP magic_quotes_gpc estaba activada (on) por defecto antes de PHP 5.4, y básicamente ejecutaba la función addslashes() en todos los datos GET, POST y COOKIE. No utilizar addslashes() en las cadenas que ya se han escapado con magic_quotes_gpc ya que se hará un doble escape. La función get_magic_quotes_gpc() podría ser útil para comprobar esto.
Parámetros str
El string a escapar.
Valores devueltos
Devuelve un string escapado.
Ejemplo
<?php
$Frutero = array ("Manzana", "Pera", "Cambur");
reset($Frutero);
foreach ($Frutero as $fruta)
{ echo "Fruta: $fruta<br>\n";
}
?>
While
Los bucles while son el tipo más sencillo de bucle en PHP. Se comportan igual que su contrapartida en C. La forma básica de una sentencia while es:
while (expr) sentencia
El significado de una sentencia while es simple. Le dice a PHP que ejecute las sentencias anidadas, tanto como la expresión while se evalúe como TRUE. El valor de la expresión es verificado cada vez al inicio del bucle, por lo que incluso si este valor cambia durante la ejecución de las sentencias anidadas, la ejecución no se detendrá hasta el final de la iteración (cada vez que PHP ejecuta las sentencias contenidas en el bucle es una iteración). A veces, si la expresión while se evalúa como FALSE desde el principio, las sentencias anidadas no se ejecutarán ni siquiera una vez.
Al igual que con la sentencia if, se pueden agrupar varias instrucciones dentro del mismo bucle while rodeando un grupo de sentencias con corchetes, o utilizando la sintaxis alternativa:
while (expr): sentencias ... endwhile;
Ejemplo
<?php
$i = 1;
while ($i <= 10) {
echo "El numero es: ".$i."<br/>";
$i++;
}
?>
Addslashes: Escapa un string con barras invertidas
Descripción
string addslashes ( string $str )
Devuelve un string con barras invertidas delante de los caracteres que necesitan ser escapados. Estos caracteres son la comilla simple ('), comilla doble "), barra invertida (\) y NUL (el byte NULL).
Un ejemplo del uso de addslashes() es cuando se introducen datos en un string que es evaluado por PHP. Por ejemplo, si O'Reilly se almacena en $str, es necesario escapar $str. (p.ej. eval("echo '".addslashes($str)."';"); )
Para escapar parámetros de bases de datos, deberían usarse funciones de escape específicas de cada SGBD por razones de seguridad (p.ej. mysqli_real_escape_string() para MySQL o pg_escape_literal(), pg_escape_string()para PostgreSQL). Los SGBD poseen una especificación de escape diferente para identificadores (p.ej. Nombre de tabla, nombre de campo) que para parámetros. Algunos SGBD como PostgreSQL proporcionan una función es escape de identificadores, pg_escape_identifier(), pero no todos los SGBD proporcionan una API de escape de identificadores. Si este es el caso, consulte el manual del sistema de base de datos para el método apropiado de escape.
Si un SGBD no posee una función de escape y dicho SGBD usa \ para escapar caracteres especiales, podría ser posible usar esta función únicamente cuando este método de escape es adecuado para la base de datos. Por favor, observe que el uso de addslashes() para el escape de parámetros de bases de datos puede ser la causa de problemas de seguridad en la mayoría de las bases de datos.
La directiva de PHP magic_quotes_gpc estaba activada (on) por defecto antes de PHP 5.4, y básicamente ejecutaba la función addslashes() en todos los datos GET, POST y COOKIE. No utilizar addslashes() en las cadenas que ya se han escapado con magic_quotes_gpc ya que se hará un doble escape. La función get_magic_quotes_gpc() podría ser útil para comprobar esto.
Parámetros str
El string a escapar.
Valores devueltos
Devuelve un string escapado.
Ejemplo:
<?php
$str = "¿Cual es tu nombre O'Reilly?";
// Salida: ¿Cual es tu nombre O\'Reilly?
echo addslashes($str);
?>
También existen varias funciones que permiten y facilitan la acción de recorrer y manejar cadenas.
Arreglos
En PHP existen varias funciones que permiten y facilitan la acción de recorrer, manejar y ordenar arreglos.
Función | Definición |
current(array): | Me devuelve el valor del elemento actual. |
next(array): | Me devuelve el próximo elemento y actualiza el puntero a esa posición. |
prev(array): | Me devuelve el anterior elemento y actualiza el puntero a esa posición. |
end(array): | Me devuelve el último valor y actualiza el puntero a esa posición. |
reset(array): | Me devuelve el primer valor y actualiza el puntero a esa posición. |
key(array): | Devuelve el índice (numérico o asociativo)del elemento actual. |
each(array): | Devuelve una array con la clave y el valor del elemento actual y lo actualiza al próximo. |
count(array): | Cuenta el número de elementos en el array. |
sort("arreglo"): | Ordena el arreglo por contenido en orden ascendente. |
rsort(): | Ordena por contenido en orden descendente. |
ksort(): | Ordena por el índice en orden ascendente. |
rksort(): | Ordena por el índice en orden descendente. |
También existen varias funciones que permiten y facilitan la acción de recorrer y manejar cadenas.
Función | Definición |
int strcmp(string, string): | Compara dos cadenas |
int strcasecmp(string,string): | Compara dos cadenas sin tener en cuenta mayusculas y minúsculas |
string substr(string, int inicio [, int tamaño]): | Devuelve una subcadena a partir de inicio |
array explode(string 'delimitador', string [, int limite] | Permite extraer campos. Si se especifica un límite, se extraerá hasta ese numero de campos. |
string implode(string 'delimitador', array 'campos'] | Permite contraer campos. |
array split(string 'delimitador', string [, int limite] | Permite extraer campos con diferentes delimitadores. Si se especifica un límite, se extraerá hasta ese numero de campos. |
No hay comentarios:
Publicar un comentario