PHP
PHP
PHP - Inicio
PHP - Introducción
PHP - Configuración del entorno
PHP - Descripción general de la sintaxis
PHP - Tipos de variables
PHP - Constantes
PHP - Tipos de operador
PHP - Toma de decisiones
PHP - Tipos de bucle
PHP - Matrices
PHP - Cadenas
PHP - Conceptos web
PHP - OBTENER Y PUBLICAR
PHP - Inclusión de archivos
PHP - Archivos y E / S
PHP - Funciones
PHP - Cookies
PHP - Sesiones
PHP - Envío de correos electrónicos
PHP - Carga de archivos
PHP - Estándar de codificación
PHP avanzado
PHP - Variables predefinidas
PHP - Expresión regular
PHP - Manejo de errores
PHP - Depuración de errores
PHP - Fecha y hora
PHP y MySQL
PHP y AJAX
PHP y XML
PHP - Orientado a objetos
PHP - Para desarrolladores de C
PHP - Para desarrolladores de PERL
Ejemplos de formularios PHP
PHP - Introducción al formulario
PHP - Ejemplo de validación
PHP - Formulario completo
Ejemplos de inicio de sesión PHP
PHP - Ejemplo de inicio de sesión
PHP - Inicio de sesión en Facebook
PHP - Integración de Paypal
PHP - Inicio de sesión MySQL
Ejemplos PHP AJAX
PHP - Búsqueda AJAX
PHP - Analizador XML AJAX
PHP - Búsqueda automática completa de AJAX
PHP - Ejemplo de fuente RSS AJAX
Ejemplo de PHP XML
PHP - Introducción a XML
PHP - XML simple
PHP - XML simple GET
PHP - Ejemplo de analizador SAX
PHP - Ejemplo de analizador DOM
PHP Frame Works
PHP - Frame Works
PHP - PHP principal vs Frame Works
Patrones de diseño PHP
PHP - Patrones de diseño
El preprocesador de hipertexto PHP (PHP) es un lenguaje de programación
que permite a los desarrolladores web crear contenido dinámico que interactúa
con las bases de datos. PHP se utiliza básicamente para desarrollar
aplicaciones de software basadas en web. Este tutorial te ayuda a construir tu
base con PHP.
Características de PHP
Cinco características importantes hacen posible la naturaleza práctica de PHP:
Sencillez
Eficiencia
Seguridad
Flexibilidad
Familiaridad
<head>
<title>Hello World</title>
</head>
<body>
<?php echo "Hello, World!";?>
</body>
</html>
Aplicaciones de PHP
Como se mencionó anteriormente, PHP es uno de los lenguajes más
utilizados en la web. Voy a enumerar algunos de ellos aquí:
PHP realiza funciones del sistema, es decir, a partir de archivos en un sistema que
puede crear, abrir, leer, escribir y cerrar.
PHP puede manejar formularios, es decir, recopilar datos de archivos, guardar
datos en un archivo, a través del correo electrónico puede enviar datos, devolver
datos al usuario.
Agrega, elimina, modifica elementos dentro de su base de datos a través de PHP.
Acceda a las variables de cookies y configure las cookies.
Con PHP, puede restringir el acceso de los usuarios a algunas páginas de su sitio
web.
Puede encriptar datos.
Audiencia
Este tutorial de PHP está diseñado para programadores de PHP que
desconocen por completo los conceptos de PHP pero tienen conocimientos
básicos de programación de computadoras.
Prerrequisitos
Antes de continuar con este tutorial, debe tener al menos una comprensión
básica de la programación de computadoras, Internet, bases de datos y
MySQL, etc. es muy útil.
PHP - Introducción
PHP comenzó como un pequeño proyecto de código abierto que evolucionó a
medida que más y más personas descubrieron lo útil que era. Rasmus Lerdorf
lanzó la primera versión de PHP en 1994.
PHP es un acrónimo recursivo para "PHP: preprocesador de hipertexto".
PHP es un lenguaje de script del lado del servidor que está incrustado en
HTML. Se utiliza para administrar contenido dinámico, bases de datos,
seguimiento de sesiones, incluso construir sitios completos de comercio
electrónico.
Está integrado con una serie de bases de datos populares, incluidas MySQL,
PostgreSQL, Oracle, Sybase, Informix y Microsoft SQL Server.
PHP es agradablemente rápido en su ejecución, especialmente cuando se compila
como un módulo de Apache en el lado de Unix. El servidor MySQL, una vez
iniciado, ejecuta incluso consultas muy complejas con grandes conjuntos de
resultados en un tiempo récord.
PHP admite una gran cantidad de protocolos principales como POP3, IMAP y
LDAP. PHP4 agregó soporte para Java y arquitecturas de objetos distribuidos
(COM y CORBA), haciendo que el desarrollo de n niveles sea una posibilidad por
primera vez.
PHP es indulgente: el lenguaje PHP intenta ser lo más indulgente posible.
La sintaxis de PHP es C-Like.
Características de PHP
Cinco características importantes hacen posible la naturaleza práctica de PHP:
Sencillez
Eficiencia
Seguridad
Flexibilidad
Familiaridad
<body>
<?php echo "Hello, World!";?>
</body>
</html>
Una etiqueta más común es <? Php ...?> Y también usaremos la misma
etiqueta en nuestro tutorial.
Desde el próximo capítulo comenzaremos con la configuración del entorno
PHP en su máquina y luego buscaremos casi todos los conceptos
relacionados con PHP para que se sienta cómodo con el lenguaje PHP.
Configuración de Apache
Si está utilizando Apache como servidor web, esta sección lo guiará para
editar los archivos de configuración de Apache.
Simplemente verifíquelo aquí - Configuración de PHP en el servidor Apache
Escapar a PHP
El motor de análisis PHP necesita una forma de diferenciar el código PHP de
otros elementos en la página. El mecanismo para hacerlo se conoce como
'escapar a PHP'. Hay cuatro formas de hacer esto:
Las etiquetas de estilo ASP imitan las etiquetas utilizadas por las páginas
Active Server para delinear bloques de código. Las etiquetas de estilo ASP se
ven así:
<%...%>
Para usar etiquetas de estilo ASP, deberá establecer la opción de
configuración en su archivo php.ini.
# Second Example
print "This spans
multiple lines. The newlines will be
output as well";
?>
Comentarios de líneas múltiples : generalmente se utilizan para
proporcionar algoritmos de pseudocódigo y explicaciones más detalladas
cuando sea necesario. El estilo de comentarios de varias líneas es el mismo
que en C. Aquí están los ejemplos de comentarios de varias líneas.
<?
/* This is a comment with multiline
Author : Mohammad Mohtashim
Purpose: Multiline Comments Demo
Subject: PHP
*/
<?php
$capital = 67;
print("Variable capital is $capital<br>");
print("Variable CaPiTaL is $CaPiTaL<br>");
?>
</body>
</html>
Esto producirá el siguiente resultado:
Variable capital is 67
Variable CaPiTaL is
if (3 == 2 + 1) {
print("Good - I haven't totally");
print("lost my mind.<br>");
}
Enteros
Son números enteros, sin un punto decimal, como 4195. Son el tipo más
simple. Corresponden a números enteros simples, tanto positivos como
negativos. Los números enteros se pueden asignar a variables, o se pueden
usar en expresiones, como así:
$int_var = 12345;
$another_int = -12345 + 12345;
El entero puede estar en formato decimal (base 10), octal (base 8) y
hexadecimal (base 16). El formato decimal es el predeterminado, los enteros
octales se especifican con un 0 inicial y los hexadecimales tienen un 0x inicial.
Para las plataformas más comunes, el número entero más grande es (2 ** 31.
1) (o 2,147,483,647), y el número entero más pequeño (más negativo) es. (2 **
31. 1) (o .2,147,483,647).
Dobles
Les gusta 3.14159 o 49.1. Por defecto, los dobles imprimen con el mínimo
número de decimales necesarios. Por ejemplo, el código -
Demo en vivo
<?php
$many = 2.2888800;
$many_2 = 2.2111200;
$few = $many + $many_2;
Booleano
Solo tienen dos valores posibles, verdadero o falso. PHP proporciona un par
de constantes especialmente para su uso como booleanos: VERDADERO y
FALSO, que pueden usarse así:
if (TRUE)
print("This will always print<br>");
else
print("This will never print<br>");
Estas son las reglas para determinar la "verdad" de cualquier valor que aún no
sea del tipo booleano:
Si el valor es un número, es falso si es exactamente igual a cero y verdadero en
caso contrario.
Si el valor es una cadena, es falso si la cadena está vacía (tiene cero caracteres) o
es la cadena "0", y de lo contrario es verdadera.
Los valores de tipo NULL son siempre falsos.
Si el valor es una matriz, es falso si no contiene otros valores, y de lo contrario es
verdadero. Para un objeto, contener un valor significa tener una variable miembro
a la que se le ha asignado un valor.
Los recursos válidos son verdaderos (aunque algunas funciones que devuelven
recursos cuando tienen éxito devolverán FALSO cuando no tienen éxito).
No uses el doble como booleanos.
Cada una de las siguientes variables tiene el valor de verdad incrustado en su
nombre cuando se usa en un contexto booleano.
$true_num = 3 + 0.14159;
$true_str = "Tried and true"
$true_array[49] = "An array element";
$false_array = array();
$false_null = NULL;
$false_num = 999 - 999;
$false_str = "";
NULO
NULL es un tipo especial que solo tiene un valor: NULL. Para dar a una
variable el valor NULL, simplemente asígnelo:
$my_var = NULL;
Instrumentos de cuerda
Son secuencias de caracteres, como "PHP admite operaciones de
cadena". Los siguientes son ejemplos válidos de cadena
$string_1 = "This is a string in double quotes";
$string_2 = 'This is a somewhat longer, singly quoted
string';
$string_39 = "This string has thirty-nine characters";
$string_0 = ""; // a string with zero characters
Las cadenas con comillas simples se tratan casi literalmente, mientras que las
cadenas con comillas dobles reemplazan las variables con sus valores y
también interpretan especialmente ciertas secuencias de caracteres.
Demo en vivo
<?php
$variable = "name";
$literally = 'My $variable will not print!';
print($literally);
print "<br>";
Aquí documento
<channel>
<title>What's For Dinner</title>
<link>http://menu.example.com/ </link>
<description>Choose what to eat tonight.</description>
</channel>
_XML_;
echo <<<END
This uses the "here document" syntax to output multiple
lines with variable
interpolation. Note that the here document terminator must
appear on a line with
just a semicolon. no extra whitespace!
END;
print $channel;
?>
<channel>
<title>What's For Dinner<title>
<link>http://menu.example.com/<link>
<description>Choose what to eat tonight.</description>
Alcance variable
El alcance se puede definir como el rango de disponibilidad que una variable
tiene para el programa en el que se declara. Las variables PHP pueden ser
uno de los cuatro tipos de alcance:
Variables locales
Parámetros de la función
Variables globales
Variables estáticas
Nomenclatura variable
Las reglas para nombrar una variable son:
Los nombres de las variables deben comenzar con una letra o un carácter de
subrayado.
Un nombre de variable puede consistir en números, letras, guiones bajos, pero no
puede usar caracteres como +, -,%, (,). &, etc.
No hay límite de tamaño para las variables
ejemplo de constant ()
<?php
define("MINSIZE", 50);
echo MINSIZE;
echo constant("MINSIZE"); // same thing as the previous
line
?>
Solo los datos escalares (booleano, entero, flotante y cadena) pueden estar
contenidos en constantes.
No Nombre y descripción
Señor
1
__LÍNEA__
El número de línea actual del archivo.
2
__ARCHIVO__
La ruta completa y el nombre del archivo. Si se usa dentro de un include, se
devuelve el nombre del archivo incluido. Desde PHP 4.0.2 , __FILE__ siempre
contiene una ruta absoluta, mientras que en versiones anteriores contenía una ruta
relativa en algunas circunstancias.
3
__FUNCIÓN__
El nombre de la función. (Agregado en PHP 4.3.0) A partir de PHP 5, esta
constante devuelve el nombre de la función tal como se declaró (distingue entre
mayúsculas y minúsculas). En PHP 4 su valor siempre está en minúscula.
44
__CLASE__
El nombre de la clase. (Agregado en PHP 4.3.0) A partir de PHP 5, esta constante
devuelve el nombre de la clase tal como se declaró (distingue entre mayúsculas y
minúsculas). En PHP 4 su valor siempre está en minúscula.
55
__MÉTODO__
El nombre del método de clase. (Agregado en PHP 5.0.0) El nombre del método se
devuelve como se declaró (distingue entre mayúsculas y minúsculas).
Operadores aritméticos
Operadores de comparación
Operadores lógicos (o relacionales)
Operadores de Asignación
Operadores condicionales (o ternarios)
Echemos un vistazo a todos los operadores uno por uno.
Operadores aritméticos
Los siguientes operadores aritméticos son compatibles con el lenguaje PHP:
Suponga que la variable A contiene 10 y la variable B contiene 20 y luego -
Mostrar ejemplos
Operadores de comparación
Los siguientes operadores de comparación son compatibles con el lenguaje
PHP
Suponga que la variable A contiene 10 y la variable B contiene 20 y luego -
Mostrar ejemplos
Operadores logicos
Los siguientes operadores lógicos son compatibles con el lenguaje PHP.
Suponga que la variable A contiene 10 y la variable B contiene 20 y luego -
Mostrar ejemplos
Operadores de Asignación
Los siguientes operadores de asignación son compatibles con el lenguaje
PHP:
Mostrar ejemplos
Operador Condicional
Hay un operador más llamado operador condicional. Primero evalúa una
expresión para un valor verdadero o falso y luego ejecuta una de las dos
declaraciones dadas dependiendo del resultado de la evaluación. El operador
condicional tiene esta sintaxis:
Mostrar ejemplos
Categorías de operadores
Todos los operadores que hemos discutido anteriormente se pueden clasificar
en las siguientes categorías:
Operadores de prefijo unario, que preceden a un solo operando.
Operadores binarios, que toman dos operandos y realizan una variedad de
operaciones aritméticas y lógicas.
El operador condicional (un operador ternario), que toma tres operandos y evalúa
la segunda o tercera expresión, dependiendo de la evaluación de la primera
expresión.
Operadores de asignación, que asignan un valor a una variable.
Toma de decisiones
Las declaraciones if, elseif ... else y switch se utilizan para tomar decisiones
basadas en la condición diferente.
Puede usar declaraciones condicionales en su código para tomar sus
decisiones. PHP admite las siguientes tres declaraciones de toma de
decisiones:
instrucción if ... else : use esta instrucción si desea ejecutar un conjunto de
código cuando una condición es verdadera y otra si la condición no es verdadera
instrucción elseif : se usa con la instrucción if ... else para ejecutar un conjunto
de código si una de las varias condiciones es verdadera
declaración de cambio : se usa si desea seleccionar uno de los muchos bloques
de código que se ejecutarán, use la declaración de cambio. La instrucción switch
se usa para evitar bloques largos de código if..elseif..else.
Sintaxis
if (condition)
code to be executed if condition is true;
else
code to be executed if condition is false;
Ejemplo
<?php
$d = date("D");
if ($d == "Fri")
echo "Have a nice weekend!";
else
echo "Have a nice day!";
?>
</body>
</html>
La otra declaración
Si desea ejecutar algún código si una de las varias condiciones es verdadera,
use la instrucción elseif
Sintaxis
if (condition)
code to be executed if condition is true;
elseif (condition)
code to be executed if condition is true;
else
code to be executed if condition is false;
Ejemplo
<?php
$d = date("D");
if ($d == "Fri")
echo "Have a nice weekend!";
else
echo "Have a nice day!";
?>
</body>
</html>
Producirá el siguiente resultado:
Have a nice Weekend!
La declaración de cambio
Si desea seleccionar uno de los muchos bloques de código que se ejecutarán,
use la instrucción Switch.
La instrucción switch se usa para evitar bloques largos de código
if..elseif..else.
Sintaxis
switch (expression){
case label1:
code to be executed if expression = label1;
break;
case label2:
code to be executed if expression = label2;
break;
default:
code to be executed
if expression is different
from both label1 and label2;
}
Ejemplo
<?php
$d = date("D");
switch ($d){
case "Mon":
echo "Today is Monday";
break;
case "Tue":
echo "Today is Tuesday";
break;
case "Wed":
echo "Today is Wednesday";
break;
case "Thu":
echo "Today is Thursday";
break;
case "Fri":
echo "Today is Friday";
break;
case "Sat":
echo "Today is Saturday";
break;
case "Sun":
echo "Today is Sunday";
break;
default:
echo "Wonder which day is this ?";
}
?>
</body>
</html>
Sintaxis
Ejemplo
</body>
</html>
Esto producirá el siguiente resultado:
At the end of the loop a = 50 and b = 25
Ejemplo
<?php
$i = 0;
$num = 50;
</body>
</html>
Sintaxis
do {
code to be executed;
}
while (condition);
Ejemplo
<?php
$i = 0;
$num = 0;
do {
$i++;
}
while( $i < 10 );
echo ("Loop stopped at i = $i" );
?>
</body>
</html>
Esto producirá el siguiente resultado:
Loop stopped at i = 10
Sintaxis
Ejemplo
<?php
$array = array( 1, 2, 3, 4, 5);
La declaración de ruptura
La palabra clave de ruptura de PHP se usa para terminar la ejecución de un
ciclo prematuramente.
La declaración de ruptura se encuentra dentro del bloque de declaración. Te
da control total y siempre que quieras salir del bucle puedes salir. Después de
salir de un ciclo, se ejecutará una declaración inmediata al ciclo.
Ejemplo
<?php
$i = 0;
</body>
</html>
Esto producirá el siguiente resultado:
Loop stopped at i = 3
La declaración continua
La palabra clave PHP continue se usa para detener la iteración actual de un
ciclo, pero no termina el ciclo.
Al igual que la instrucción break , la instrucción continue se encuentra dentro
del bloque de la instrucción que contiene el código que ejecuta el bucle,
precedido por una prueba condicional. Para el pase que encuentra
la declaración de continuación , se omite el resto del código de bucle y
comienza el próximo pase.
Ejemplo
<?php
$array = array( 1, 2, 3, 4, 5);
</body>
</html>
PHP - Matrices
Una matriz es una estructura de datos que almacena uno o más tipos de
valores similares en un solo valor. Por ejemplo, si desea almacenar 100
números, en lugar de definir 100 variables, es fácil definir una matriz de 100
longitudes.
Hay tres tipos diferentes de matrices y se accede a cada valor de matriz
utilizando una ID c que se denomina índice de matriz.
Matriz numérica : una matriz con un índice numérico. Los valores se almacenan y
acceden de manera lineal.
Matriz asociativa : una matriz con cadenas como índice. Esto almacena valores
de elementos en asociación con valores clave en lugar de en un estricto orden de
índice lineal.
Matriz multidimensional : se accede a una matriz que contiene una o más
matrices y valores mediante múltiples índices
NOTA : las funciones de matriz incorporadas se proporcionan en las funciones
de matriz de PHP de referencia de funciones
Matriz numérica
Estas matrices pueden almacenar números, cadenas y cualquier objeto, pero
su índice estará representado por números. Por defecto, el índice de matriz
comienza desde cero.
Ejemplo
<?php
/* First method to create array. */
$numbers = array( 1, 2, 3, 4, 5);
</body>
</html>
Matrices asociativas
Las matrices asociativas son muy similares a las matrices numéricas en
términos de funcionalidad, pero son diferentes en términos de su índice. La
matriz asociativa tendrá su índice como cadena para que pueda establecer
una asociación fuerte entre clave y valores.
Para almacenar los salarios de los empleados en una matriz, una matriz
indexada numéricamente no sería la mejor opción. En cambio, podríamos usar
los nombres de los empleados como las claves en nuestra matriz asociativa, y
el valor sería su salario respectivo.
NOTA : No mantenga la matriz asociativa dentro de comillas dobles mientras
imprime; de lo contrario, no devolvería ningún valor.
Ejemplo
Demo en vivo
<html>
<body>
<?php
/* First method to associate create array. */
$salaries = array("mohammad" => 2000, "qadir" =>
1000, "zara" => 500);
</body>
</html>
Esto producirá el siguiente resultado:
Salary of mohammad is 2000
Salary of qadir is 1000
Salary of zara is 500
Salary of mohammad is high
Salary of qadir is medium
Salary of zara is low
Matrices Multidimensionales
Una matriz multidimensional de cada elemento en la matriz principal también
puede ser una matriz. Y cada elemento en la sub-matriz puede ser una matriz,
y así sucesivamente. Se accede a los valores en la matriz multidimensional
utilizando múltiples índices.
Ejemplo
<?php
$marks = array(
"mohammad" => array (
"physics" => 35,
"maths" => 30,
"chemistry" => 39
),
</body>
</html>
Esto producirá el siguiente resultado:
Marks for mohammad in physics : 35
Marks for qadir in maths : 32
Marks for zara in chemistry : 39
PHP - Cadenas
Son secuencias de caracteres, como "PHP admite operaciones de cadena".
NOTA - Las funciones de cadena incorporadas se proporcionan en las
funciones de cadena de PHP de referencia de funciones
Los siguientes son ejemplos válidos de cadena
$string_1 = "This is a string in double quotes";
$string_2 = "This is a somewhat longer, singly quoted
string";
$string_39 = "This string has thirty-nine characters";
$string_0 = ""; // a string with zero characters
Las cadenas con comillas simples se tratan casi literalmente, mientras que las
cadenas con comillas dobles reemplazan las variables con sus valores y
también interpretan especialmente ciertas secuencias de caracteres.
Demo en vivo
<?php
$variable = "name";
$literally = 'My $variable will not print!\\n';
print($literally);
print "<br />";
print($literally);
?>
<?php
function getBrowser() {
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$bname = 'Unknown';
$platform = 'Unknown';
$version = "";
if (!preg_match_all($pattern, $u_agent,
$matches)) {
// we have no matching number just continue
}
if ($i != 1) {
//we will have two since we are not using
'other' argument yet
//see if version is before or after the name
if (strripos($u_agent,"Version") <
strripos($u_agent,$ub)){
$version= $matches['version'][0];
}else {
$version= $matches['version'][1];
}
}else {
$version= $matches['version'][0];
}
// now try it
$ua = getBrowser();
$yourbrowser = "Your browser: " . $ua['name'] . " "
. $ua['version'] .
" on " .$ua['platform'] . " reports: <br >" .
$ua['userAgent'];
print_r($yourbrowser);
?>
</body>
</html>
<?php
srand( microtime() * 1000000 );
$num = rand( 1, 4 );
switch( $num ) {
case 1: $image_file = "/php/images/logo.png";
break;
</body>
</html>
<?php
if( $_POST["name"] || $_POST["age"] ) {
if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
die ("invalid name and name should be alpha");
}
</body>
</html>
<?php
if( $_POST["location"] ) {
$location = $_POST["location"];
header( "Location:$location" );
exit();
}
?>
<html>
<body>
<option value =
"http://www.postparaprogramadores.com">
Postparaprogramadores.com
</option>
</select>
<input type = "submit" />
</form>
</body>
</html>
El método GET
El método POST
Antes de que el navegador envíe la información, la codifica utilizando un
esquema llamado codificación URL. En este esquema, los pares de nombre /
valor se unen con signos iguales y diferentes pares están separados por el
signo "&".
name1=value1&name2=value2&name3=value3
Los espacios se eliminan y se reemplazan con el carácter + y cualquier otro
carácter no alfanumérico se reemplaza con valores hexadecimales. Después
de codificar la información, se envía al servidor.
El método GET
El método GET envía la información codificada del usuario adjunta a la
solicitud de página. La página y la información codificada están separados por
el ? personaje.
http://www.test.com/index.htm?name1=value1&name2=value2
El método GET produce una cadena larga que aparece en los registros de su
servidor, en el cuadro Ubicación del navegador.
El método GET está restringido a enviar solo hasta 1024 caracteres.
Nunca use el método GET si tiene una contraseña u otra información confidencial
para enviar al servidor.
GET no se puede usar para enviar datos binarios, como imágenes o documentos
de texto, al servidor.
Se puede acceder a los datos enviados por el método GET utilizando la variable
de entorno QUERY_STRING.
El PHP proporciona una matriz asociativa $ _GET para acceder a toda la
información enviada utilizando el método GET.
Pruebe el siguiente ejemplo poniendo el código fuente en el script test.php.
<?php
if( $_GET["name"] || $_GET["age"] ) {
echo "Welcome ". $_GET['name']. "<br />";
echo "You are ". $_GET['age']. " years old.";
exit();
}
?>
<html>
<body>
</body>
</html>
Producirá el siguiente resultado:
El método POST
El método POST transfiere información a través de encabezados HTTP. La
información se codifica como se describe en el caso del método GET y se
coloca en un encabezado llamado QUERY_STRING.
El método POST no tiene ninguna restricción en el tamaño de los datos que se
enviarán.
El método POST se puede utilizar para enviar datos ASCII y binarios.
Los datos enviados por el método POST pasan por el encabezado HTTP, por lo
que la seguridad depende del protocolo HTTP. Al utilizar HTTP seguro, puede
asegurarse de que su información esté segura.
El PHP proporciona una matriz asociativa $ _POST para acceder a toda la
información enviada utilizando el método POST.
Pruebe el siguiente ejemplo poniendo el código fuente en el script test.php.
<?php
if( $_POST["name"] || $_POST["age"] ) {
if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
die ("invalid name and name should be alpha");
}
echo "Welcome ". $_POST['name']. "<br />";
echo "You are ". $_POST['age']. " years old.";
exit();
}
?>
<html>
<body>
</body>
</html>
La variable $ _REQUEST
La variable PHP $ _REQUEST contiene el contenido de $ _GET, $ _POST y $
_COOKIE. Discutiremos la variable $ _COOKIE cuando expliquemos sobre las
cookies.
La variable PHP $ _REQUEST se puede usar para obtener el resultado de los
datos del formulario enviados con los métodos GET y POST.
Pruebe el siguiente ejemplo poniendo el código fuente en el script test.php.
<?php
if( $_REQUEST["name"] || $_REQUEST["age"] ) {
echo "Welcome ". $_REQUEST['name']. "<br />";
echo "You are ". $_REQUEST['age']. " years old.";
exit();
}
?>
<html>
<body>
</body>
</html>
Aquí la variable $ _PHP_SELF contiene el nombre del auto script en el que se
llama.
Producirá el siguiente resultado:
La función include ()
La función require ()
Este es un punto fuerte de PHP que ayuda a crear funciones, encabezados,
pies de página o elementos que se pueden reutilizar en varias páginas. Esto
ayudará a los desarrolladores a facilitar el cambio del diseño del sitio web
completo con un mínimo esfuerzo. Si se requiere algún cambio, en lugar de
cambiar miles de archivos, simplemente cambie el archivo incluido.
La función include ()
La función include () toma todo el texto en un archivo especificado y lo copia
en el archivo que usa la función include. Si hay algún problema al cargar un
archivo, la función include () genera una advertencia, pero el script continuará
ejecutándose.
Suponga que desea crear un menú común para su sitio web. Luego cree un
archivo menu.php con el siguiente contenido.
<a
href="http://www.postparaprogramadores.com/index.htm">Home</a
> -
<a
href="http://www.postparaprogramadores.com/ebxml">ebXML</a> -
<a href="http://www.postparaprogramadores.com/ajax">AJAX</a>
-
<a href="http://www.postparaprogramadores.com/perl">PERL</a>
<br />
Ahora cree tantas páginas como desee e incluya este archivo para crear el
encabezado. Por ejemplo, ahora su archivo test.php puede tener el siguiente
contenido.
<html>
<body>
</body>
</html>
La función require ()
La función require () toma todo el texto en un archivo especificado y lo copia
en el archivo que usa la función de inclusión. Si hay algún problema al cargar
un archivo, la función require () genera un error fatal y detiene la ejecución del
script.
Por lo tanto, no hay diferencia en require () e include (), excepto que manejan
condiciones de error. Se recomienda utilizar la función require () en lugar de
include (), ya que los scripts no deberían continuar ejecutándose si faltan
archivos o si tienen un nombre incorrecto.
Puede intentar usar el ejemplo anterior con la función require () y generará el
mismo resultado. Pero si intenta seguir dos ejemplos en los que el archivo no
existe, obtendrá resultados diferentes.
<html>
<body>
</body>
</html>
Esto producirá el siguiente resultado:
This is an example to show how to include wrong PHP file!
Ahora intentemos el mismo ejemplo con la función require ().
<html>
<body>
</body>
</html>
Esta vez la ejecución del archivo se detiene y no se muestra nada.
NOTA : puede recibir mensajes de advertencia simples o mensajes de error
fatales o nada en absoluto. Esto depende de la configuración de su servidor
PHP.
PHP - Archivos y E / S
Este capítulo explicará las siguientes funciones relacionadas con los archivos:
Abrir un archivo
Leyendo un archivo
Escribir un archivo
Cerrar un archivo
No Modo y Propósito
Señor
1
r
Abre el archivo solo para lectura.
Coloca el puntero del archivo al comienzo del archivo.
2
r+
Abre el archivo para leer y escribir.
Coloca el puntero del archivo al comienzo del archivo.
3
w
Abre el archivo solo para escribir.
Coloca el puntero del archivo al comienzo del archivo.
y trunca el archivo a longitud cero. Si los archivos no
existe, entonces intenta crear un archivo.
44
w+
Abre el archivo solo para lectura y escritura.
Coloca el puntero del archivo al comienzo del archivo.
y trunca el archivo a longitud cero. Si los archivos no
existe, entonces intenta crear un archivo.
55
un
Abre el archivo solo para escribir.
Coloca el puntero del archivo al final del archivo.
Si los archivos no existen, entonces intenta crear un archivo.
66
a+
Abre el archivo solo para lectura y escritura.
Coloca el puntero del archivo al final del archivo.
Si los archivos no existen, entonces intenta crear un archivo.
Leyendo un archivo
Una vez que se abre un archivo usando la función fopen () , se puede leer con
una función llamada fread () . Esta función requiere dos argumentos. Estos
deben ser el puntero del archivo y la longitud del archivo expresada en bytes.
La longitud de los archivos se puede encontrar utilizando la función filesize
() que toma el nombre del archivo como argumento y devuelve el tamaño del
archivo expresado en bytes.
Así que aquí están los pasos necesarios para leer un archivo con PHP.
Abra un archivo usando la función fopen () .
Obtenga la longitud del archivo usando la función filesize () .
Lea el contenido del archivo usando la función fread () .
Cierre el archivo con la función fclose () .
El siguiente ejemplo asigna el contenido de un archivo de texto a una variable
y luego muestra esos contenidos en la página web.
<html>
<head>
<title>Reading a file using PHP</title>
</head>
<body>
<?php
$filename = "tmp.txt";
$file = fopen( $filename, "r" );
</body>
</html>
<head>
<title>Writing a file using PHP</title>
</head>
<body>
<?php
$filename = "newfile.txt";
$file = fopen( $filename, "r" );
fclose( $file );
</body>
</html>
Producirá el siguiente resultado:
PHP - Funciones
Las funciones de PHP son similares a otros lenguajes de programación. Una
función es un fragmento de código que toma una entrada más en forma de
parámetro, procesa y devuelve un valor.
Ya has visto muchas funciones como fopen () y fread (), etc. Son funciones
integradas, pero PHP también te da la opción de crear tus propias funciones.
Hay dos partes que deben ser claras para usted:
<head>
<title>Writing PHP Function</title>
</head>
<body>
<?php
/* Defining a PHP Function */
function writeMessage() {
echo "You are really a nice person, Have a nice
time!";
}
</body>
</html>
<head>
<title>Writing PHP Function with Parameters</title>
</head>
<body>
<?php
function addFunction($num1, $num2) {
$sum = $num1 + $num2;
echo "Sum of the two numbers is : $sum";
}
addFunction(10, 20);
?>
</body>
</html>
<head>
<title>Passing Argument by Reference</title>
</head>
<body>
<?php
function addFive($num) {
$num += 5;
}
function addSix(&$num) {
$num += 6;
}
$orignum = 10;
addFive( $orignum );
addSix( $orignum );
echo "Original Value is $orignum<br />";
?>
</body>
</html>
<head>
<title>Writing PHP Function which returns value</title>
</head>
<body>
<?php
function addFunction($num1, $num2) {
$sum = $num1 + $num2;
return $sum;
}
$return_value = addFunction(10, 20);
</body>
</html>
<head>
<title>Writing PHP Function which returns value</title>
</head>
<body>
<?php
function printMe($param = NULL) {
print $param;
}
printMe("This is test");
printMe();
?>
</body>
</html>
Esto producirá el siguiente resultado:
This is test
<head>
<title>Dynamic Function Calls</title>
</head>
<body>
<?php
function sayHello() {
echo "Hello<br />";
}
$function_holder = "sayHello";
$function_holder();
?>
</body>
</html>
<head>
<title>Setting Cookies with PHP</title>
</head>
<body>
<?php echo "Set Cookies"?>
</body>
</html>
<head>
<title>Accessing Cookies with PHP</title>
</head>
<body>
<?php
echo $_COOKIE["name"]. "<br />";
/* is equivalent to */
echo $HTTP_COOKIE_VARS["name"]. "<br />";
/* is equivalent to */
echo $HTTP_COOKIE_VARS["age"] . "<br />";
?>
</body>
</html>
Puede usar la función isset () para verificar si una cookie está configurada o
no.
<html>
<head>
<title>Accessing Cookies with PHP</title>
</head>
<body>
<?php
if( isset($_COOKIE["name"]))
echo "Welcome " . $_COOKIE["name"] . "<br />";
else
echo "Sorry... Not recognized" . "<br />";
?>
</body>
</html>
<head>
<title>Deleting Cookies with PHP</title>
</head>
<body>
<?php echo "Deleted Cookies" ?>
</body>
</html>
PHP - Sesiones
Una forma alternativa de hacer que los datos sean accesibles en las distintas
páginas de un sitio web completo es utilizar una sesión PHP.
Una sesión crea un archivo en un directorio temporal en el servidor donde se
almacenan las variables de sesión registradas y sus valores. Estos datos
estarán disponibles para todas las páginas del sitio durante esa visita.
La ubicación del archivo temporal está determinada por una configuración en
el archivo php.ini llamada session.save_path . Antes de usar cualquier
variable de sesión, asegúrese de haber configurado esta ruta.
Cuando se inicia una sesión después de que suceden cosas,
Demo en vivo
<?php
session_start();
if( isset( $_SESSION['counter'] ) ) {
$_SESSION['counter'] += 1;
}else {
$_SESSION['counter'] = 1;
}
<html>
<head>
<title>Setting up a PHP session</title>
</head>
<body>
<?php echo ( $msg ); ?>
</body>
</html>
<?php
unset($_SESSION['counter']);
?>
<?php
session_destroy();
?>
Activar sesión automática
No necesita llamar a la función start_session () para iniciar una sesión cuando
un usuario visita su sitio si puede establecer la variable session.auto_start en
1 en el archivo php.ini .
Demo en vivo
<?php
session_start();
if (isset($_SESSION['counter'])) {
$_SESSION['counter'] = 1;
}else {
$_SESSION['counter']++;
}
echo ( $msg );
?>
<p>
To continue click following link <br />
No Descripción de parámetros
Señor
1
a
Necesario. Especifica el receptor / receptores del correo electrónico.
2
tema
Necesario. Especifica el asunto del correo electrónico. Este parámetro no puede
contener caracteres de nueva línea.
3
mensaje
Necesario. Define el mensaje a enviar. Cada línea debe separarse con un LF (\
n). Las líneas no deben exceder los 70 caracteres.
44
encabezados
Opcional. Especifica encabezados adicionales, como From, Cc y Bcc. Los
encabezados adicionales deben separarse con un CRLF (\ r \ n)
55
parámetros
Opcional. Especifica un parámetro adicional para el programa de envío de correo.
Tan pronto como se llame a la función de correo, PHP intentará enviar el
correo electrónico y luego devolverá verdadero si tiene éxito o falso si falla.
Se pueden especificar varios destinatarios como el primer argumento para la
función mail () en una lista separada por comas.
Ejemplo
<head>
<title>Sending HTML email using PHP</title>
</head>
<body>
<?php
$to = "[email protected]";
$subject = "This is subject";
</body>
</html>
if ($filea) {
function mail_attachment ($from , $to, $subject,
$message, $attachment){
$fileatt = $attachment; // Path to the file
$fileatt_type = "application/octet-stream"; // File
Type
$email_txt .= $msg_txt;
$data = chunk_split(base64_encode($data));
if($ok) {
echo "File Sent Successfully.";
unlink($attachment); // delete a file after
attachment sent.
}else {
die("Sorry but the email could not be sent.
Please go back and try again!");
}
}
move_uploaded_file($_FILES["filea"]["tmp_name"],
'temp/'.basename($_FILES['filea']['name']));
mail_attachment("$from", "[email protected]",
"subject", "message",
("temp/".$_FILES["filea"]["name"]));
}
?>
<html>
<head>
</head>
<body>
<tr>
<td><input name = "from" type =
"text"
id = "from" size = "30"></td>
</tr>
<tr>
<td class = "frmtxt2"><input name =
"emaila"
type = "text" id = "emaila" size =
"30"></td>
</tr>
<tr>
<td height = "20" valign =
"bottom">Attach File:</td>
</tr>
<tr>
<td height = "40" valign =
"middle"><input
name = "Reset2" type = "reset" id
= "Reset2" value = "Reset">
<input name = "Submit2" type =
"submit"
value = "Submit" onClick = "return
CheckData45()"></td>
</tr>
</table>
</form>
<center>
<table width = "400">
<tr>
<td id = "one">
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</body>
</html>
PHP - Carga de archivos
Se puede usar un script PHP con un formulario HTML para permitir a los
usuarios subir archivos al servidor. Inicialmente, los archivos se cargan en un
directorio temporal y luego se reubican en un destino de destino mediante un
script PHP.
La información en la página phpinfo.php describe el directorio temporal que
se utiliza para cargar archivos como upload_tmp_dir y el tamaño máximo
permitido de archivos que se pueden cargar se indica
como upload_max_filesize . Estos parámetros se establecen en el archivo de
configuración PHP php.ini
El proceso de carga de un archivo sigue estos pasos:
El usuario abre la página que contiene un formulario HTML con archivos de texto,
un botón de exploración y un botón de envío.
El usuario hace clic en el botón Examinar y selecciona un archivo para cargar
desde la PC local.
La ruta completa al archivo seleccionado aparece en el texto archivado y luego el
usuario hace clic en el botón Enviar.
El archivo seleccionado se envía al directorio temporal en el servidor.
El script PHP que se especificó como el controlador de formulario en el atributo de
acción del formulario verifica que el archivo haya llegado y luego lo copia en un
directorio deseado.
El script PHP confirma el éxito del usuario.
Como es habitual al escribir archivos, es necesario que las ubicaciones
temporales y finales tengan permisos establecidos que permitan la escritura
de archivos. Si cualquiera está configurado para ser de solo lectura, el proceso
fallará.
Un archivo cargado puede ser un archivo de texto o un archivo de imagen o
cualquier documento.
$file_ext=strtolower(end(explode('.',$_FILES['image']['name']
)));
$extensions= array("jpeg","jpg","png");
if(in_array($file_ext,$extensions)=== false){
$errors[]="extension not allowed, please choose a
JPEG or PNG file.";
}
if(empty($errors)==true){
move_uploaded_file($file_tmp,"images/".$file_name);
echo "Success";
}else{
print_r($errors);
}
}
?>
<html>
<body>
</body>
</html>
Ejemplo
$file_ext=strtolower(end(explode('.',$_FILES['image']['name']
)));
$extensions= array("jpeg","jpg","png");
if(in_array($file_ext,$extensions)=== false){
$errors[]="extension not allowed, please choose a
JPEG or PNG file.";
}
if($file_size > 2097152) {
$errors[]='File size must be excately 2 MB';
}
if(empty($errors)==true) {
move_uploaded_file($file_tmp,"images/".$file_name);
echo "Success";
}else{
print_r($errors);
}
}
?>
<html>
<body>
<ul>
<li>Sent file: <?php echo
$_FILES['image']['name']; ?>
<li>File size: <?php echo
$_FILES['image']['size']; ?>
<li>File type: <?php echo
$_FILES['image']['type'] ?>
</ul>
</form>
</body>
</html>
Producirá el siguiente resultado:
PHP - Estándar de codificación
PHP proporciona una gran cantidad de variables predefinidas a cualquier
script que ejecute. PHP proporciona un conjunto adicional de matrices
predefinidas que contienen variables del servidor web, el entorno y la entrada
del usuario. Estas nuevas matrices se llaman superglobales:
Todas las siguientes variables están disponibles automáticamente en todos los
ámbitos.
PHP Superglobales
No Variable y descripción
Señor
1
$ GLOBALES
Contiene una referencia a cada variable que está actualmente disponible dentro del
alcance global del script. Las claves de esta matriz son los nombres de las
variables globales.
2
$ _SERVER
Esta es una matriz que contiene información como encabezados, rutas y
ubicaciones de script. Las entradas en esta matriz son creadas por el servidor
web. No hay garantía de que cada servidor web proporcione ninguno de
estos. Consulte la siguiente sección para obtener una lista completa de todas las
variables de SERVIDOR.
3
$ _GET
Una matriz asociativa de variables pasadas al script actual a través del método
HTTP GET.
44
$ _POST
Una matriz asociativa de variables pasadas al script actual a través del método
HTTP POST.
55
$ _FILES
Una matriz asociativa de elementos cargados en el script actual a través del
método HTTP POST.
66
$ _REQUEST
Una matriz asociativa que consta de los contenidos de $ _GET, $ _POST y $
_COOKIE.
77
$ _COOKIE
Una matriz asociativa de variables pasadas al script actual a través de cookies
HTTP.
8
$ _SESIÓN
Una matriz asociativa que contiene variables de sesión disponibles para el script
actual.
99
$ _PHP_SELF
Una cadena que contiene el nombre del archivo de script PHP en el que se llama.
10
$ php_errormsg
$ php_errormsg es una variable que contiene el texto del último mensaje de error
generado por PHP.
No Variable y descripción
Señor
1
$ _SERVER ['PHP_SELF']
El nombre de archivo del script que se está ejecutando actualmente, relativo a la
raíz del documento
2
$ _SERVER ['argv']
Matriz de argumentos pasados al guión. Cuando el script se ejecuta en la línea de
comando, esto le da acceso al estilo C a los parámetros de la línea de
comando. Cuando se llama a través del método GET, este contendrá la cadena
de consulta.
3
$ _SERVER ['argc']
Contiene el número de parámetros de línea de comando pasados al script si se
ejecuta en la línea de comando.
44
$ _SERVER ['GATEWAY_INTERFACE']
Qué revisión de la especificación CGI está usando el servidor; es decir, 'CGI /
1.1'.
55
$ _SERVER ['SERVER_ADDR']
La dirección IP del servidor en el que se ejecuta el script actual.
66
$ _SERVER ['SERVER_NAME']
El nombre del host del servidor en el que se ejecuta el script actual. Si el script se
ejecuta en un host virtual, este será el valor definido para ese host virtual.
77
$ _SERVER ['SERVER_SOFTWARE']
Cadena de identificación del servidor, dada en los encabezados al responder a
las solicitudes.
8
$ _SERVER ['SERVER_PROTOCOL']
Nombre y revisión del protocolo de información a través del cual se solicitó la
página; es decir, 'HTTP / 1.0';
99
$ _SERVER ['SOLICITUD_MÉTODO']
Qué método de solicitud se utilizó para acceder a la página; es decir, 'GET',
'HEAD', 'POST', 'PUT'.
10
$ _SERVER ['REQUEST_TIME']
La marca de tiempo del inicio de la solicitud. Disponible desde PHP 5.1.0.
11
$ _SERVER ['QUERY_STRING']
La cadena de consulta, si la hay, a través de la cual se accedió a la página.
12
$ _SERVER ['DOCUMENT_ROOT']
El directorio raíz del documento en el que se ejecuta el script actual, tal como se
define en el archivo de configuración del servidor.
13
$ _SERVER ['HTTP_ACCEPT']
Contenido de Aceptar: encabezado de la solicitud actual, si hay una.
14
$ _SERVER ['HTTP_ACCEPT_CHARSET']
Contenido del Accept-Charset: encabezado de la solicitud actual, si hay
uno. Ejemplo: 'iso-8859-1, *, utf-8'.
15
$ _SERVER ['HTTP_ACCEPT_ENCODING']
Contenido del Accept-Encoding: encabezado de la solicitud actual, si
existe. Ejemplo: 'gzip'.
dieciséis
$ _SERVER ['HTTP_ACCEPT_LANGUAGE']
Contenido del idioma de aceptación: encabezado de la solicitud actual, si
existe. Ejemplo: 'en'.
17
$ _SERVER ['HTTP_CONNECTION']
Contenido de la conexión: encabezado de la solicitud actual, si hay una. Ejemplo:
'Keep-Alive'.
18 años
$ _SERVER ['HTTP_HOST']
Contenido del host: encabezado de la solicitud actual, si hay una.
19
$ _SERVER ['HTTP_REFERER']
La dirección de la página (si la hay) que refirió al agente de usuario a la
página actual.
20
$ _SERVER ['HTTP_USER_AGENT']
Esta es una cadena que indica que el agente de usuario está accediendo a la
página. Un ejemplo típico es: Mozilla / 4.5 [en] (X11; U; Linux 2.2.9 i586).
21
$ _SERVER ['HTTPS']
Establezca un valor no vacío si el script se consultó a través del protocolo
HTTPS.
22
$ _SERVER ['REMOTE_ADDR']
La dirección IP desde la cual el usuario está viendo la página actual.
23
$ _SERVER ['REMOTE_HOST']
El nombre de host desde el que el usuario está viendo la página actual. La
búsqueda dns inversa se basa en REMOTE_ADDR del usuario.
24
$ _SERVER ['REMOTE_PORT']
El puerto que se utiliza en la máquina del usuario para comunicarse con el
servidor web.
25
$ _SERVER ['SCRIPT_FILENAME']
El nombre de ruta absoluto del script que se está ejecutando actualmente.
26
$ _SERVER ['SERVER_ADMIN']
El valor dado a la directiva SERVER_ADMIN (para Apache) en el archivo de
configuración del servidor web.
27
$ _SERVER ['SERVER_PORT']
El puerto en la máquina del servidor que utiliza el servidor web para la
comunicación. Para configuraciones predeterminadas, será '80'.
28
$ _SERVER ['SERVER_SIGNATURE']
Cadena que contiene la versión del servidor y el nombre de host virtual que se
agregan a las páginas generadas por el servidor, si está habilitado.
29
$ _SERVER ['PATH_TRANSLATED']
Ruta basada en el sistema de archivos al script actual.
30
$ _SERVER ['SCRIPT_NAME']
Contiene la ruta del script actual. Esto es útil para páginas que necesitan
señalarse a sí mismas.
31
$ _SERVER ['REQUEST_URI']
El URI que se proporcionó para acceder a esta página; por ejemplo, '/index.html'.
32
$ _SERVER ['PHP_AUTH_DIGEST']
Cuando se ejecuta bajo Apache como módulo que realiza la autenticación HTTP
implícita, esta variable se establece en el encabezado 'Autorización' enviado por
el cliente.
33
$ _SERVER ['PHP_AUTH_USER']
Cuando se ejecuta bajo Apache o IIS (ISAPI en PHP 5) como módulo que realiza
la autenticación HTTP, esta variable se configura con el nombre de usuario
proporcionado por el usuario.
34
$ _SERVER ['PHP_AUTH_PW']
Cuando se ejecuta bajo Apache o IIS (ISAPI en PHP 5) como módulo que realiza
la autenticación HTTP, esta variable se configura con la contraseña
proporcionada por el usuario.
35
$ _SERVER ['AUTH_TYPE']
Cuando se ejecuta bajo Apache como módulo que autentica HTTP, esta variable
se establece en el tipo de autenticación.
PHP - Expresiones regulares
Las expresiones regulares no son más que una secuencia o patrón de
caracteres en sí. Proporcionan la base para la funcionalidad de coincidencia
de patrones.
Usando la expresión regular, puede buscar una cadena particular dentro de
otra cadena, puede reemplazar una cadena por otra cadena y puede dividir
una cadena en muchos trozos.
PHP ofrece funciones específicas para dos conjuntos de funciones de
expresión regular, cada una correspondiente a un cierto tipo de expresión
regular. Puede usar cualquiera de ellos según su comodidad.
Soportes
1
[0-9]
Coincide con cualquier dígito decimal del 0 al 9.
2
[Arizona]
Coincide con cualquier carácter, desde minúsculas a hasta minúsculas z.
3
[ARIZONA]
Coincide con cualquier personaje desde mayúscula A hasta mayúscula Z.
44
[Arizona]
Coincide con cualquier carácter de minúscula a a mayúscula Z.
Los rangos mostrados arriba son generales; también puede usar el rango [0-3]
para que coincida con cualquier dígito decimal que vaya de 0 a 3, o el rango
[bv] para que coincida con cualquier carácter en minúscula que vaya de b a v.
Cuantificadores
1
p+
Coincide con cualquier cadena que contenga al menos una p.
2
pag*
Coincide con cualquier cadena que contenga cero o más p.
3
¿pag?
Coincide con cualquier cadena que contenga cero o una p.
44
p{N}
Coincide con cualquier cadena que contenga una secuencia de N p
55
p {2,3}
Coincide con cualquier cadena que contenga una secuencia de dos o tres p.
66
p {2,}
Coincide con cualquier cadena que contenga una secuencia de al menos dos p.
77
p$
Coincide con cualquier cadena con p al final.
8
^p
Coincide con cualquier cadena con p al principio.
Ejemplos
No Expresión y Descripción
Señor
1
[^ a-zA-Z]
Coincide con cualquier cadena que no contenga ninguno de los caracteres que
van de la A a la Z y de la A a la Z.
2
páginas
Coincide con cualquier cadena que contenga p, seguida de cualquier carácter,
seguida de otra p.
3
^. {2} $
Coincide con cualquier cadena que contenga exactamente dos caracteres.
44
<b> (. *) </b>
Coincide con cualquier cadena encerrada entre <b> y </b>.
55
p (hp) *
Coincide con cualquier cadena que contenga ap seguido de cero o más
instancias de la secuencia php.
No Expresión y Descripción
Señor
1
[[:alfa:]]
Coincide con cualquier cadena que contenga caracteres alfabéticos aA a zZ.
2
[[:dígito:]]
Coincide con cualquier cadena que contenga dígitos numéricos del 0 al 9.
3
[[: alnum:]]
Coincide con cualquier cadena que contenga caracteres alfanuméricos aA a zZ y
0 a 9.
44
[[:espacio:]]
Coincide con cualquier cadena que contenga un espacio.
No Función descriptiva
Señor
1 ereg ()
La función ereg () busca una cadena especificada por cadena para una cadena
especificada por patrón, devolviendo verdadero si se encuentra el patrón y falso en
caso contrario.
2 ereg_replace ()
La función ereg_replace () busca la cadena especificada por patrón y reemplaza el
patrón con reemplazo si se encuentra.
3 eregi ()
La función eregi () busca en una cadena especificada por patrón una cadena
especificada por cadena. La búsqueda no distingue entre mayúsculas y
minúsculas.
44 eregi_replace ()
La función eregi_replace () funciona exactamente como ereg_replace (), excepto
que la búsqueda de patrón en cadena no distingue entre mayúsculas y minúsculas.
55 división()
La función split () dividirá una cadena en varios elementos, los límites de cada
elemento en función de la aparición del patrón en la cadena.
66 spliti ()
La función spliti () funciona exactamente de la misma manera que su hermano split
(), excepto que no distingue entre mayúsculas y minúsculas.
77 sql_regcase ()
La función sql_regcase () se puede considerar como una función de utilidad, que
convierte cada carácter de la cadena del parámetro de entrada en una expresión
entre corchetes que contiene dos caracteres.
Meta personajes
Un meta carácter es simplemente un carácter alfabético precedido por una
barra diagonal inversa que actúa para dar un significado especial a la
combinación.
Por ejemplo, puede buscar grandes sumas de dinero utilizando el meta
carácter '\ d': / ([\ d] +) 000 / , Aquí \ d buscará cualquier cadena de caracteres
numéricos.
La siguiente es la lista de metacaracteres que se pueden usar en las
expresiones regulares de estilo PERL.
Character Description
. a single character
\s a whitespace character (space, tab, newline)
\S non-whitespace character
\d a digit (0-9)
\D a non-digit
\w a word character (a-z, A-Z, 0-9, _)
\W a non-word character
[aeiou] matches a single character in the given set
[^aeiou] matches a single character outside the given
set
(foo|bar|baz) matches any of the alternatives specified
Modificadores
Hay varios modificadores disponibles que pueden hacer que su trabajo con
expresiones regulares sea mucho más fácil, como mayúsculas y minúsculas,
búsqueda en varias líneas, etc.
Modifier Description
i Makes the match case insensitive
m Specifies that if the string has newline or carriage
return characters, the ^ and $ operators will now
match against a newline boundary, instead of a
string boundary
o Evaluates the expression only once
s Allows use of . to match a newline character
x Allows you to use white space in the expression for
clarity
g Globally finds all matches
cg Allows a search to continue even after a global match
fails
No Función descriptiva
Señor
1 preg_match ()
2 preg_match_all ()
La función preg_match_all () coincide con todas las apariciones de patrón en una
cadena.
3 preg_replace ()
La función preg_replace () funciona igual que ereg_replace (), excepto que se
pueden usar expresiones regulares en el patrón y los parámetros de entrada de
reemplazo.
44 preg_split ()
La función preg_split () funciona exactamente como split (), excepto que las
expresiones regulares se aceptan como parámetros de entrada para el patrón.
55 preg_grep ()
La función preg_grep () busca todos los elementos de input_array, devolviendo
todos los elementos que coinciden con el patrón regexp.
66 preg_ quote ()
Citar caracteres de expresiones regulares
PHP - Manejo de errores y excepciones
El manejo de errores es el proceso de capturar los errores generados por su
programa y luego tomar las medidas apropiadas. Si maneja los errores
correctamente, puede tener muchas consecuencias imprevistas.
Es muy simple en PHP para manejar un error.
Sintaxis
error_function(error_level,error_message,
error_file,error_line,error_context);
No Descripción de parámetros
Señor
1
nivel_error
Obligatorio: especifica el nivel de informe de error para el error definido por el
usuario. Debe ser un número de valor.
2
mensaje de error
Obligatorio: especifica el mensaje de error para el error definido por el usuario
3
archivo_error
Opcional: especifica el nombre del archivo en el que se produjo el error
44
error_line
Opcional: especifica el número de línea en el que ocurrió el error
55
error_context
Opcional: especifica una matriz que contiene todas las variables y sus valores en
uso cuando se produjo el error
1 1
.E_ERROR
Errores fatales en tiempo de ejecución. Se detiene la ejecución del
guión.
2 2
E_ADVERTENCIA
Errores de tiempo de ejecución no fatales. La ejecución del guión no se
detiene
3 44
E_PARSE
Errores de análisis en tiempo de compilación. Los errores de análisis
solo deben ser generados por el analizador.
44 8
E_NOTICE
Avisos de tiempo de ejecución. El script encontró algo que podría ser un
error, pero que también podría ocurrir al ejecutar un script normalmente
55 dieciséis
E_CORE_ERROR
Errores fatales que ocurren durante el arranque inicial de PHP.
66 32
E_CORE_WARNING
Errores de tiempo de ejecución no fatales. Esto ocurre durante el
arranque inicial de PHP.
77 256
E_USER_ERROR
Error grave generado por el usuario. Esto es como un E_ERROR
establecido por el programador usando la función PHP trigger_error ()
8 512
E_USER_WARNING
Advertencia no fatal generada por el usuario. Esto es como un
E_WARNING establecido por el programador usando la función PHP
trigger_error ()
99 1024
E_USER_NOTICE
Aviso generado por el usuario. Esto es como un E_NOTICE establecido
por el programador usando la función PHP trigger_error ()
10 2048
E_STRICT
Avisos de tiempo de ejecución. Habilite para que PHP sugiera cambios
en su código que garantizarán la mejor interoperabilidad y la
compatibilidad directa de su código.
11 4096
E_RECOVERABLE_ERROR
Error fatal capturable. Esto es como un E_ERROR pero puede ser
detectado por un identificador definido por el usuario (ver también
set_error_handler ())
12 8191
E_ALL
Todos los errores y advertencias, excepto el nivel E_STRICT
(E_STRICT formará parte de E_ALL a partir de PHP 6.0)
die();
}
?>
function handleError($errno,
$errstr,$error_file,$error_line) {
echo "<b>Error:</b> [$errno] $errstr -
$error_file:$error_line";
echo "<br />";
echo "Terminating PHP Script";
die();
}
//trigger error
myFunction();
?>
Manejo de Excepciones
PHP 5 tiene un modelo de excepción similar al de otros lenguajes de
programación. Las excepciones son importantes y proporcionan un mejor
control sobre el manejo de errores.
Vamos a explicar allí una nueva palabra clave relacionada con las
excepciones.
Try : una función que usa una excepción debe estar en un bloque "try". Si la
excepción no se activa, el código continuará normalmente. Sin embargo, si se
dispara la excepción, se "lanza" una excepción.
Lanzar : así es como se activa una excepción. Cada "lanzamiento" debe tener al
menos una "captura".
Captura : un bloque "captura" recupera una excepción y crea un objeto que
contiene la información de excepción.
Cuando se produce una excepción, el código que sigue a la declaración no se
ejecutará y PHP intentará encontrar el primer bloque catch coincidente. Si no
se detecta una excepción, se emitirá un error fatal de PHP con una "excepción
no detectada ...
Una excepción puede ser lanzada y atrapada ("atrapada") dentro de PHP. El
código puede estar rodeado por un bloque de prueba.
Cada intento debe tener al menos un bloque catch correspondiente. Se pueden
usar múltiples bloques catch para capturar diferentes clases de excepciones.
Se pueden lanzar excepciones (o volver a lanzar) dentro de un bloque catch.
Ejemplo
// Continue execution
echo 'Hello World';
?>
En el ejemplo anterior, la función $ e-> getMessage se usa para obtener un
mensaje de error. Existen las siguientes funciones que se pueden usar desde
la clase Exception .
getMessage () - mensaje de excepción
getCode () - código de excepción
getFile () - nombre del archivo fuente
getLine () - línea de origen
getTrace () - n matriz de backtrace ()
getTraceAsString () : cadena de rastreo formateada
Ejemplo
<?php
function exception_handler($exception) {
echo "Uncaught exception: " , $exception->getMessage(),
"\n";
}
set_exception_handler('exception_handler');
throw new Exception('Uncaught Exception');
1 20
segundos
Segundos pasados los minutos (0-59)
2 29
minutos
Minutos después de la hora (0-59)
3 22
horas
Horas del día (0-23)
44 11
mday
Día del mes (1 - 31)
55 44
wday
Día de la semana (0 - 6)
66 77
Lun
Mes del año (1 - 12)
77 1997
año
Año (4 dígitos)
8 19
el dia
Día del año (0 - 365)
99 jueves
día laborable
Día de la semana
10 enero
mes
Mes del año
11 948370048
00
Marca de tiempo
Ahora tiene control completo sobre la fecha y la hora. Puede formatear esta
fecha y hora en el formato que desee.
Ejemplo
print $formated_date;
?>
Esto producirá el siguiente resultado:
seconds = 10
minutes = 29
hours = 9
mday = 5
wday = 1
mon = 12
year = 2016
yday = 339
weekday = Monday
month = December
0 = 1480930150
Today's date: 5/12/2016
1 pm
un
'am' o 'pm' en minúsculas
2 PM
UN
'AM' o 'PM' en mayúsculas
3 20
re
Día del mes, un número con ceros a la izquierda
44 Jue
re
Día de la semana (tres letras)
55 enero
F
Nombre del mes
66 12
h
Hora (formato de 12 horas - ceros iniciales)
77 22
H
Hora (formato de 24 horas - ceros iniciales)
8 12
sol
Hora (formato de 12 horas - sin ceros a la izquierda)
99 22
sol
Hora (formato de 24 horas - sin ceros a la izquierda)
10 23
yo
Minutos (0-59)
11 20
j
Día del mes (sin ceros a la izquierda
12 jueves
l ('L' inferior)
Día de la semana
13 1
L
Año bisiesto ('1' para sí, '0' para no)
14 1
metro
Mes del año (número - ceros iniciales)
15 ene
METRO
Mes del año (tres letras)
17 2
norte
Mes del año (número - sin ceros a la izquierda)
18 años 20
s
Segundos de hora
19 948372444
U
Sello de tiempo
20 06
y
Año (dos dígitos)
21 2006
Y
Año (cuatro dígitos)
22 206
z
Día del año (0 - 365)
23 +5
Z
Compensación en segundos de GMT
Ejemplo
Sintaxis
connection
mysql_connect(server,user,passwd,new_link,client_flag);
No Descripción de parámetros
Señor
1
servidor
Opcional: el nombre de host que ejecuta el servidor de base de datos. Si no se
especifica, el valor predeterminado es localhost: 3306 .
2
usuario
Opcional: el nombre de usuario que accede a la base de datos. Si no se especifica,
el valor predeterminado es el nombre del usuario propietario del proceso del
servidor.
3
passwd
Opcional: la contraseña del usuario que accede a la base de datos. Si no se
especifica, el valor predeterminado es una contraseña vacía.
44
nuevo_enlace
Opcional: si se realiza una segunda llamada a mysql_connect () con los mismos
argumentos, no se establecerá una nueva conexión; en su lugar, se devolverá el
identificador de la conexión ya abierta.
55
banderas_clientes
Opcional: una combinación de las siguientes constantes:
MYSQL_CLIENT_SSL - Usar cifrado SSL
MYSQL_CLIENT_COMPRESS - Usar protocolo de compresión
MYSQL_CLIENT_IGNORE_SPACE - Permitir espacio después de los
nombres de funciones
MYSQL_CLIENT_INTERACTIVE : permita un tiempo de espera interactivo
de segundos de inactividad antes de cerrar la conexión
Sintaxis
Ejemplo
Pruebe el siguiente ejemplo para abrir y cerrar una conexión de base de datos:
<?php
$dbhost = 'localhost:3036';
$dbuser = 'guest';
$dbpass = 'guest123';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
Sintaxis
1
sql
Obligatorio: consulta SQL para crear una base de datos
2
conexión
Opcional: si no se especifica, se utilizará la última conexión opend por
mysql_connect.
Ejemplo
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! $retval ) {
die('Could not create database: ' . mysql_error());
}
Sintaxis
1
db_name
Obligatorio: se debe seleccionar el nombre de la base de datos
2
conexión
Opcional: si no se especifica, se utilizará la última conexión opend por
mysql_connect.
Ejemplo
Aquí está el ejemplo que le muestra cómo seleccionar una base de datos.
<?php
$dbhost = 'localhost:3036';
$dbuser = 'guest';
$dbpass = 'guest123';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db( 'test_db' );
mysql_close($conn);
?>
Ejemplo
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! $retval ) {
die('Could not create table: ' . mysql_error());
}
mysql_close($conn);
?>
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$query_file = 'sql_query.txt';
if(! $retval ) {
die('Could not create table: ' . mysql_error());
}
Ejemplo
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! $retval ) {
die('Could not delete database db_test: ' .
mysql_error());
}
mysql_close($conn);
?>
ADVERTENCIA : es muy peligroso eliminar una base de datos y cualquier
tabla. Entonces, antes de eliminar cualquier tabla o base de datos, debe
asegurarse de que está haciendo todo intencionalmente.
Ejemplo
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! $retval ) {
die('Could not delete table employee: ' .
mysql_error());
}
mysql_close($conn);
?>
Ejemplo
Pruebe el siguiente ejemplo para insertar el registro en la tabla de empleados.
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'INSERT INTO employee '.
'(emp_name,emp_address, emp_salary, join_date) '.
'VALUES ( "guest", "XYZ", 2000, NOW() )';
mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not enter data: ' . mysql_error());
}
mysql_close($conn);
?>
En una aplicación real, todos los valores se tomarán usando un formulario
HTML y luego esos valores se capturarán usando un script PHP y finalmente
se insertarán en las tablas de MySQL.
Mientras hace los datos, inserte su mejor práctica para usar la
función get_magic_quotes_gpc () para verificar si la configuración actual
para la cita mágica está establecida o no. Si esta función devuelve falso, use
la función addlashes () para agregar barras inclinadas antes de las comillas.
Ejemplo
Pruebe este ejemplo colocando este código en add_employee.php, esto
tomará datos utilizando el formulario HTML y luego creará registros en la base
de datos.
<html>
<head>
<title>Add New Record in MySQL Database</title>
</head>
<body>
<?php
if(isset($_POST['add'])) {
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! get_magic_quotes_gpc() ) {
$emp_name = addslashes ($_POST['emp_name']);
$emp_address = addslashes
($_POST['emp_address']);
}else {
$emp_name = $_POST['emp_name'];
$emp_address = $_POST['emp_address'];
}
$emp_salary = $_POST['emp_salary'];
mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not enter data: ' . mysql_error());
}
mysql_close($conn);
}else {
?>
<tr>
<td width = "100">Employee Name</td>
<td><input name = "emp_name" type =
"text"
id = "emp_name"></td>
</tr>
<tr>
<td width = "100">Employee
Address</td>
<td><input name = "emp_address" type
= "text"
id = "emp_address"></td>
</tr>
<tr>
<td width = "100">Employee
Salary</td>
<td><input name = "emp_salary" type =
"text"
id = "emp_salary"></td>
</tr>
<tr>
<td width = "100"> </td>
<td> </td>
</tr>
<tr>
<td width = "100"> </td>
<td>
<input name = "add" type =
"submit" id = "add"
value = "Add Employee">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
Ejemplo
Pruebe el siguiente ejemplo para mostrar todos los registros de la tabla de
empleados.
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
mysql_close($conn);
?>
Ejemplo
Pruebe el siguiente ejemplo para mostrar todos los registros de la tabla de
empleados utilizando la función mysql_fetch_assoc ().
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_assoc($retval)) {
echo "EMP ID :{$row['emp_id']} <br> ".
"EMP NAME : {$row['emp_name']} <br> ".
"EMP SALARY : {$row['emp_salary']} <br> ".
"--------------------------------<br>";
}
mysql_close($conn);
?>
También puede usar la constante MYSQL_NUM , como el segundo argumento
de mysql_fetch_array (). Esto hará que la función devuelva una matriz con
índice numérico.
Ejemplo
Pruebe el siguiente ejemplo para mostrar todos los registros de la tabla de
empleados utilizando el argumento MYSQL_NUM.
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
mysql_close($conn);
?>
Todos los tres ejemplos anteriores producirán el mismo resultado.
Liberando memoria
Es una buena práctica liberar memoria del cursor al final de cada instrucción
SELECT. Esto se puede hacer usando la función PHP mysql_free_result
() . A continuación se muestra el ejemplo para mostrar cómo se debe usar.
Ejemplo
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
mysql_free_result($retval);
echo "Fetched data successfully\n";
mysql_close($conn);
?>
Mientras busca datos, puede escribir SQL tan complejo como desee. El
procedimiento seguirá siendo el mencionado anteriormente.
Ejemplo
Pruebe el siguiente ejemplo para mostrar 10 registros por página.
<html>
<head>
<title>Paging Using PHP</title>
</head>
<body>
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$rec_limit = 10;
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('test_db');
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
$row = mysql_fetch_array($retval, MYSQL_NUM );
$rec_count = $row[0];
if( isset($_GET{'page'} ) ) {
$page = $_GET{'page'} + 1;
$offset = $rec_limit * $page ;
}else {
$page = 0;
$offset = 0;
}
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval,
MYSQL_ASSOC)) {
echo "EMP ID :{$row['emp_id']} <br> ".
"EMP NAME : {$row['emp_name']} <br> ".
EMP SALARY : {$row['emp_salary']} <br> ".
"--------------------------------<br>";
}
mysql_close($conn);
?>
</body>
</html>
Ejemplo
Pruebe el siguiente ejemplo para comprender la operación de
actualización. Debe proporcionar una identificación de empleado para
actualizar el salario de un empleado.
<html>
<head>
<title>Update a Record in MySQL Database</title>
</head>
<body>
<?php
if(isset($_POST['update'])) {
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$emp_id = $_POST['emp_id'];
$emp_salary = $_POST['emp_salary'];
if(! $retval ) {
die('Could not update data: ' .
mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
}else {
?>
<form method = "post" action = "<?php
$_PHP_SELF ?>">
<table width = "400" border =" 0"
cellspacing = "1"
cellpadding = "2">
<tr>
<td width = "100">Employee ID</td>
<td><input name = "emp_id" type =
"text"
id = "emp_id"></td>
</tr>
<tr>
<td width = "100">Employee
Salary</td>
<td><input name = "emp_salary" type =
"text"
id = "emp_salary"></td>
</tr>
<tr>
<td width = "100"> </td>
<td> </td>
</tr>
<tr>
<td width = "100"> </td>
<td>
<input name = "update" type =
"submit"
id = "update" value = "Update">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
Ejemplo
Pruebe el siguiente ejemplo para comprender la operación de
eliminación. Debe proporcionar una identificación de empleado para eliminar
un registro de empleado de la tabla de empleados.
<html>
<head>
<title>Delete a Record from MySQL Database</title>
</head>
<body>
<?php
if(isset($_POST['delete'])) {
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$emp_id = $_POST['emp_id'];
if(! $retval ) {
die('Could not delete data: ' .
mysql_error());
}
mysql_close($conn);
}else {
?>
<form method = "post" action = "<?php
$_PHP_SELF ?>">
<table width = "400" border = "0"
cellspacing = "1"
cellpadding = "2">
<tr>
<td width = "100">Employee ID</td>
<td><input name = "emp_id" type =
"text"
id = "emp_id"></td>
</tr>
<tr>
<td width = "100"> </td>
<td> </td>
</tr>
<tr>
<td width = "100"> </td>
<td>
<input name = "delete" type =
"submit"
id = "delete" value = "Delete">
</td>
</tr>
</table>
</form>
<?php
}
?>
</body>
</html>
Ejemplo
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$table_name = "employee";
$backup_file = "/tmp/employee.sql";
$sql = "SELECT * INTO OUTFILE '$backup_file' FROM
$table_name";
mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not take data backup: ' . mysql_error());
}
mysql_close($conn);
?>
Puede haber casos en los que necesite restaurar datos que haya respaldado
hace algún tiempo. Para restaurar la copia de seguridad solo necesita ejecutar
la consulta LOAD DATA INFILE como esta:
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$table_name = "employee";
$backup_file = "/tmp/employee.sql";
$sql = "LOAD DATA INFILE '$backup_file' INTO TABLE
$table_name";
mysql_select_db('test_db');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not load data : ' . mysql_error());
}
echo "Loaded data successfully\n";
mysql_close($conn);
?>
Ejemplo
system($command);
?>
try {
// Opera 8.0+, Firefox, Safari
ajaxRequest = new XMLHttpRequest();
}catch (e) {
// Internet Explorer Browsers
try {
ajaxRequest = new
ActiveXObject("Msxml2.XMLHTTP");
}catch (e) {
try{
ajaxRequest = new
ActiveXObject("Microsoft.XMLHTTP");
}catch (e){
// Something went wrong
alert("Your browser broke!");
return false;
}
}
}
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
var ajaxDisplay =
document.getElementById('ajaxDiv');
ajaxDisplay.innerHTML =
ajaxRequest.responseText;
}
}
var age =
document.getElementById('age').value;
var wpm =
document.getElementById('wpm').value;
var sex =
document.getElementById('sex').value;
var queryString = "?age=" + age ;
</form>
Edad máxima:
WPM máx .:
Sexo:
Tu resultado se mostrará aquí
$dbhost = "localhost";
$dbuser = "dbusername";
$dbpass = "dbpassword";
$dbname = "dbname";
//Select Database
mysql_select_db($dbname) or die(mysql_error());
//build query
$query = "SELECT * FROM ajax_example WHERE sex = '$sex'";
if(is_numeric($age))
$query .= " AND age <= $age";
if(is_numeric($wpm))
$query .= " AND wpm <= $wpm";
//Execute query
$qry_result = mysql_query($query) or die(mysql_error());
$display_string .= "</table>";
echo $display_string;
?>
Ahora intente ingresando un valor válido en "Max Age" o cualquier otro cuadro
y luego haga clic en el botón Consultar MySQL.
Edad máxima:
WPM máx .:
Sexo:
Tu resultado se mostrará aquí
Si ha completado con éxito esta lección, entonces sabe cómo usar MySQL,
PHP, HTML y Javascript en conjunto para escribir aplicaciones Ajax.
PHP y XML
XML es un lenguaje de marcado que se parece mucho a HTML. Un
documento XML es texto sin formato y contiene etiquetas delimitadas por <y>.
Hay dos grandes diferencias entre XML y HTML:
Ejemplo
<?php
$note=<<<XML
<note>
<to>Gopal K Verma</to>
<from>Sairamkrishna</from>
<heading>Project submission</heading>
<body>Please see clearly </body>
</note>
XML;
$xml=simplexml_load_string($note);
print_r($xml);
?>
</body>
</html>
Producirá el siguiente resultado:
Ejemplo
print "<channel>\n";
print "</channel>";
?>
Ejemplo
/* Member functions */
function setPrice($par){
$this->price = $par;
}
function getPrice(){
echo $this->price ."<br/>";
}
function setTitle($par){
$this->title = $par;
}
function getTitle(){
echo $this->title ." <br/>";
}
}
?>
La variable $ this es una variable especial y se refiere al mismo objeto, es
decir. sí mismo.
$physics->setPrice( 10 );
$chemistry->setPrice( 15 );
$maths->setPrice( 7 );
Ahora llama a otras funciones miembro para obtener los valores establecidos
en el ejemplo anterior:
$physics->getTitle();
$chemistry->getTitle();
$maths->getTitle();
$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();
Esto producirá el siguiente resultado:
Physics for High School
Advanced Chemistry
Algebra
10
15
7
Funciones de constructor
Las funciones de constructor son tipos especiales de funciones que se llaman
automáticamente cada vez que se crea un objeto. Entonces aprovechamos al
máximo este comportamiento, inicializando muchas cosas a través de las
funciones de constructor.
PHP proporciona una función especial llamada __construct () para definir un
constructor. Puede pasar tantos argumentos como desee a la función
constructora.
El siguiente ejemplo creará un constructor para la clase Libros e inicializará el
precio y el título del libro en el momento de la creación del objeto.
function __construct( $par1, $par2 ) {
$this->title = $par1;
$this->price = $par2;
}
Ahora no necesitamos llamar a la función set por separado para establecer el
precio y el título. Podemos inicializar estas dos variables miembro solo en el
momento de la creación del objeto. Verifique el siguiente ejemplo a
continuación:
$physics = new Books( "Physics for High School", 10 );
$maths = new Books ( "Advanced Chemistry", 15 );
$chemistry = new Books ("Algebra", 7 );
$physics->getPrice();
$chemistry->getPrice();
$maths->getPrice();
Incinerador de basuras
Al igual que una función constructora, puede definir una función destructora
utilizando la función __destruct () . Puede liberar todos los recursos dentro de
un destructor.
Herencia
Las definiciones de clase PHP pueden heredar opcionalmente de una
definición de clase padre mediante el uso de la cláusula extend. La sintaxis es
la siguiente:
class Child extends Parent {
<definition body>
}
El efecto de la herencia es que la clase secundaria (o subclase o clase
derivada) tiene las siguientes características:
Tiene automáticamente todas las declaraciones de variables miembro de la clase
padre.
Tiene automáticamente las mismas funciones miembro que el padre, que (por
defecto) funcionará de la misma manera que esas funciones en el padre.
El siguiente ejemplo hereda la clase Libros y agrega más funcionalidad según
el requisito.
class Novel extends Books {
var $publisher;
function setPublisher($par){
$this->publisher = $par;
}
function getPublisher(){
echo $this->publisher. "<br />";
}
}
Anulación de funciones
Las definiciones de función en las clases secundarias anulan las definiciones
con el mismo nombre en las clases primarias. En una clase secundaria,
podemos modificar la definición de una función heredada de la clase primaria.
En el siguiente ejemplo, las funciones getPrice y getTitle se anulan para
devolver algunos valores.
function getPrice() {
echo $this->price . "<br/>";
return $this->price;
}
function getTitle(){
echo $this->title . "<br/>";
return $this->title;
}
Miembros públicos
A menos que especifique lo contrario, las propiedades y los métodos de una
clase son públicos. Es decir, se puede acceder a ellos en tres situaciones
posibles:
Desde fuera de la clase en la que se declara
Desde dentro de la clase en la que se declara
Desde dentro de otra clase que implementa la clase en la que se declara
Hasta ahora hemos visto a todos los miembros como miembros públicos. Si
desea limitar la accesibilidad de los miembros de una clase, defina los
miembros de la clase como privados o protegidos .
Miembros privados
Al designar un miembro privado, limita su accesibilidad a la clase en la que se
declara. No se puede hacer referencia al miembro privado desde las clases
que heredan la clase en la que se declara y no se puede acceder desde fuera
de la clase.
Un miembro de la clase puede hacerse privado mediante el uso de palabras
clave privadas delante del miembro.
class MyClass {
private $car = "skoda";
$driver = "SRK";
function __construct($par) {
// Statements here run every time
// an instance of the class
// is created.
}
function myPublicFunction() {
return("I'm visible!");
}
Miembros protegidos
Se puede acceder a una propiedad o método protegido en la clase en la que
se declara, así como en las clases que extienden esa clase. Los miembros
protegidos no están disponibles fuera de esos dos tipos de clases. Un
miembro de la clase se puede proteger mediante el uso de palabras
clave protegidas delante del miembro.
Aquí hay una versión diferente de MyClass:
class MyClass {
protected $car = "skoda";
$driver = "SRK";
function __construct($par) {
// Statements here run every time
// an instance of the class
// is created.
}
function myPublicFunction() {
return("I'm visible!");
}
Interfaces
Las interfaces se definen para proporcionar nombres de funciones comunes a
los implementadores. Los diferentes implementadores pueden implementar
esas interfaces de acuerdo con sus requisitos. Se puede decir que las
interfaces son esqueletos que implementan los desarrolladores.
A partir de PHP5, es posible definir una interfaz, como esta:
interface Mail {
public function sendMail();
}
Constantes
Una constante es algo así como una variable, ya que contiene un valor, pero
en realidad es más como una función porque una constante es inmutable. Una
vez que declaras una constante, no cambia.
Declarar una constante es fácil, como se hace en esta versión de MyClass:
class MyClass {
const requiredMargin = 1.7;
function __construct($incomingValue) {
// Statements here run every time
// an instance of the class
// is created.
}
}
En esta clase, requiredMargin es una constante. Se declara con la palabra
clave const, y bajo ninguna circunstancia se puede cambiar a otra cosa que no
sea 1.7. Tenga en cuenta que el nombre de la constante no tiene un $ inicial,
como lo hacen los nombres de variables.
Clases abstractas
Una clase abstracta es aquella que no puede ser instanciada, solo
heredada. Declaras una clase abstracta con la palabra clave abstract , así:
Al heredar de una clase abstracta, el niño debe definir todos los métodos
marcados como abstractos en la declaración de clase del padre; Además,
estos métodos deben definirse con la misma visibilidad.
abstract class MyAbstractClass {
abstract function myAbstractFunction() {
}
}
class BaseClass {
public function test() {
echo "BaseClass::test() called<br>";
}
function toString() {
return($this->_lastName .", " .$this->_firstName);
}
}
class NameSub1 extends Name {
var $_middleInitial;
function toString() {
return(Name::toString() . " " . $this->_middleInitial);
}
}
En este ejemplo, tenemos una clase padre (Nombre), que tiene un constructor
de dos argumentos, y una subclase (NameSub1), que tiene un constructor de
tres argumentos. El constructor de NameSub1 funciona llamando a su
constructor padre explícitamente usando la sintaxis :: (pasando dos de sus
argumentos) y luego configurando un campo adicional. Del mismo modo,
NameSub1 define su función no constructora toString () en términos de la
función principal que anula.
NOTA - Un constructor se puede definir con el mismo nombre que el nombre
de una clase. Se define en el ejemplo anterior.
¿Qué es el formulario?
Un documento que contiene campos negros, que el usuario puede completar los datos o
el usuario puede seleccionar los datos. Por lo general, los datos se almacenarán en la
base de datos
Ejemplo
<head>
<title>PHP Form Validation</title>
</head>
<body>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
$website = test_input($_POST["website"]);
$comment = test_input($_POST["comment"]);
$gender = test_input($_POST["gender"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<tr>
<td>E-mail:</td>
<td><input type = "text" name = "email"></td>
</tr>
<tr>
<td>Specific Time:</td>
<td><input type = "text" name =
"website"></td>
</tr>
<tr>
<td>Class details:</td>
<td><textarea name = "comment" rows = "5" cols
= "40"></textarea></td>
</tr>
<tr>
<td>Gender:</td>
<td>
<input type = "radio" name = "gender" value
= "female">Female
<input type = "radio" name = "gender" value
= "male">Male
</td>
</tr>
<tr>
<td>
<input type = "submit" name = "submit"
value = "Submit">
</td>
</tr>
</table>
</form>
<?php
echo "<h2>Your Given details are as :</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>
Producirá el siguiente resultado:
PHP - Ejemplo de validación
El campo requerido verificará si el campo está lleno o no de la manera
adecuada. La mayoría de los casos usaremos el símbolo * para el campo
requerido.
¿Qué es la validación?
Validación significa verificar la entrada enviada por el usuario. Hay dos tipos
de validación disponibles en PHP. Son los siguientes:
Validación del lado del cliente : la validación se realiza en los navegadores web
de la máquina cliente.
Validación del lado del servidor : después de enviar los datos, los datos se han
enviado a un servidor y realizan comprobaciones de validación en la máquina del
servidor.
URL válida
El siguiente código muestra la validación de la URL
$website = input($_POST["site"]);
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-
9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {
$websiteErr = "Invalid URL";
}
La sintaxis anterior verificará si una URL dada es válida o no. Debe permitir
algunas palabras clave como https, ftp, www, az, 0-9, .. etc.
Email valido
El siguiente código muestra la validación de la dirección de correo electrónico
$email = input($_POST["email"]);
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$emailErr = "Invalid format and please re-enter valid
email";
}
La sintaxis anterior verificará si la dirección de correo electrónico dada está
bien formada o no. Si no lo está, mostrará un mensaje de error.
Ejemplo
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr =
"";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
}else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) {
$emailErr = "Email is required";
}else {
$email = test_input($_POST["email"]);
if (empty($_POST["website"])) {
$website = "";
}else {
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) {
$comment = "";
}else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) {
$genderErr = "Gender is required";
}else {
$gender = test_input($_POST["gender"]);
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<tr>
<td>E-mail: </td>
<td><input type = "text" name = "email">
<span class = "error">* <?php echo
$emailErr;?></span>
</td>
</tr>
<tr>
<td>Time:</td>
<td> <input type = "text" name = "website">
<span class = "error"><?php echo
$websiteErr;?></span>
</td>
</tr>
<tr>
<td>Classes:</td>
<td> <textarea name = "comment" rows = "5"
cols = "40"></textarea></td>
</tr>
<tr>
<td>Gender:</td>
<td>
<input type = "radio" name = "gender" value
= "female">Female
<input type = "radio" name = "gender" value
= "male">Male
<span class = "error">* <?php echo
$genderErr;?></span>
</td>
</tr>
<td>
<input type = "submit" name = "submit" value =
"Submit">
</td>
</table>
</form>
<?php
echo "<h2>Your given values are as:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
echo $website;
echo "<br>";
echo $comment;
echo "<br>";
echo $gender;
?>
</body>
</html>
Producirá el siguiente resultado:
PHP - Formulario completo
Esta página explica en tiempo real el formulario en tiempo real con
acciones. El siguiente ejemplo tomará los campos de entrada como texto,
botón de opción, menú desplegable y casilla marcada.
Ejemplo
Demo en vivo
<html>
</table> </form>
<? php
echo "<h2> Sus valores dados son: </h2>" ;
echo ( "<p> Tu nombre es $ name </p>" );
echo ( "<p> su dirección de correo electrónico es $
email </p>" );
echo ( "<p> Su tiempo de clase en $ curso </p>" );
echo ( "<p> su información de clase $ class </p>" );
echo ( "<p> tu género es $ gender </p>" );
</body> </html>
<?
// error_reporting(E_ALL);
// ini_set("display_errors", 1);
?>
<head>
<title>Postparaprogramadores.com</title>
<link href = "css/bootstrap.min.css" rel =
"stylesheet">
<style>
body {
padding-top: 40px;
padding-bottom: 40px;
background-color: #ADABAB;
}
.form-signin {
max-width: 330px;
padding: 15px;
margin: 0 auto;
color: #017572;
}
.form-signin .form-signin-heading,
.form-signin .checkbox {
margin-bottom: 10px;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
position: relative;
height: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
font-size: 16px;
}
.form-signin .form-control:focus {
z-index: 2;
}
.form-signin input[type="email"] {
margin-bottom: -1px;
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
border-color:#017572;
}
.form-signin input[type="password"] {
margin-bottom: 10px;
border-top-left-radius: 0;
border-top-right-radius: 0;
border-color:#017572;
}
h2{
text-align: center;
color: #017572;
}
</style>
</head>
<body>
<?php
$msg = '';
if (isset($_POST['login']) &&
!empty($_POST['username'])
&& !empty($_POST['password'])) {
if ($_POST['username'] ==
'postparaprogramadores' &&
$_POST['password'] == '1234') {
$_SESSION['valid'] = true;
$_SESSION['timeout'] = time();
$_SESSION['username'] =
'postparaprogramadores';
</div>
</body>
</html>
Logout.php
Borrará los datos de la sesión.
<?php
session_start();
unset($_SESSION["username"]);
unset($_SESSION["password"]);
session_start();
// added in v4.0.0
require_once 'autoload.php';
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\Entities\AccessToken;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\HttpClients\FacebookHttpable;
try {
$session = $helper->getSessionFromRedirect();
}catch( FacebookRequestException $ex ) {
// When Facebook returns an error
}catch( Exception $ex ) {
// When validation fails or other local issues
}
// get response
$graphObject = $response->getGraphObject();
$fbid = $graphObject->getProperty('id'); //
To Get Facebook ID
$fbfullname = $graphObject->getProperty('name'); //
To Get Facebook full name
$femail = $graphObject->getProperty('email'); //
To Get Facebook email ID
$_SESSION['FBID'] = NULL;
$_SESSION['FULLNAME'] = NULL;
$_SESSION['EMAIL'] = NULL;
header("Location: index.php");
?>
Index.php
La página de índice se muestra a continuación.
<?php
session_start();
?>
<html xmlns:fb = "http://www.facebook.com/2008/fbml">
<head>
<title>Login with Facebook</title>
<link
href = "http://www.bootstrapcdn.com/twitter-
bootstrap/2.2.2/css/bootstrap-combined.min.css"
rel = "stylesheet">
</head>
<body>
<?php if ($_SESSION['FBID']): ?> <!-- After user
login -->
<li><img src =
"https://graph.facebook.com/<?php
echo $_SESSION['FBID'];
?>/picture"></li>
<div><a href="logout.php">Logout</a></div>
</ul>
</div>
</div>
<div>
<a href = "fbconfig.php">Login with
Facebook</a>
</div>
<div>
<a href =
"http://www.postparaprogramadores.com"
title = "Login with facebook">More
information about Postparaprogramadores</a>
</div>
</div>
</body>
</html>
$_SESSION['FBID'] = NULL;
$_SESSION['FULLNAME'] = NULL;
$_SESSION['EMAIL'] = NULL;
header("Location: index.php");
?>
PHP - Integración de PayPal
PayPal es un sistema de procesamiento de pagos. Podemos integrar PayPal
con sitios web mediante php.
Config.php
El archivo Config.php tiene información sobre la configuración de la base de
datos MySQL.
<?php
define('DB_SERVER', 'localhost:3036');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'rootpassword');
define('DB_DATABASE', 'database');
$db =
mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE)
;
?>
Login.php
Inicio de sesión PHP tiene información sobre el script php y el script HTML
para iniciar sesión.
<?php
include("config.php");
session_start();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// username and password sent from form
$myusername =
mysqli_real_escape_string($db,$_POST['username']);
$mypassword =
mysqli_real_escape_string($db,$_POST['password']);
if($count == 1) {
session_register("myusername");
$_SESSION['login_user'] = $myusername;
header("location: welcome.php");
}else {
$error = "Your Login Name or Password is invalid";
}
}
?>
<html>
<head>
<title>Login Page</title>
</head>
</div>
</div>
</div>
</body>
</html>
bienvenido.php
Después de iniciar sesión correctamente, se mostrará la página de bienvenida.
<?php
include('session.php');
?>
<html">
<head>
<title>Welcome </title>
</head>
<body>
<h1>Welcome <?php echo $login_session; ?></h1>
<h2><a href = "logout.php">Sign Out</a></h2>
</body>
</html>
if(session_destroy()) {
header("Location: login.php");
}
?>
session.php
Session.php verificará la sesión, si no hay sesión redirigirá a la página de
inicio de sesión.
<?php
include('config.php');
session_start();
$user_check = $_SESSION['login_user'];
$row = mysqli_fetch_array($ses_sql,MYSQLI_ASSOC);
$login_session = $row['username'];
if(!isset($_SESSION['login_user'])){
header("location:login.php");
die();
}
?>
PHP - Búsqueda Ajax
Ajax se utiliza para comunicarse con páginas web y servidores web. El
siguiente ejemplo muestra un campo de búsqueda con Ajax.
<html>
<head>
<style>
span {
color: green;
}
</style>
<script>
function showHint(str) {
if (str.length == 0) {
document.getElementById("txtHint").innerHTML =
"";
return;
}else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 &&
xmlhttp.status == 200) {
document.getElementById("txtHint").innerHTML =
xmlhttp.responseText;
}
}
xmlhttp.open("GET", "php_ajax.php?q=" + str,
true);
xmlhttp.send();
}
}
</script>
</head>
<body>
<form>
<input type = "text" onkeyup =
"showHint(this.value)">
</form>
php_ajax.php
Contenía una variedad de nombres de cursos y devuelve el valor al navegador
web.
<?php
// Array with names
$a[] = "Android";
$a[] = "B programming language";
$a[] = "C programming language";
$a[] = "D programming language";
$a[] = "euphoria";
$a[] = "F#";
$a[] = "GWT";
$a[] = "HTML5";
$a[] = "ibatis";
$a[] = "Java";
$a[] = "K programming language";
$a[] = "Lisp";
$a[] = "Microsoft technologies";
$a[] = "Networking";
$a[] = "Open Source";
$a[] = "Prototype";
$a[] = "QC";
$a[] = "Restful web services";
$a[] = "Scrum";
$a[] = "Testing";
$a[] = "UML";
$a[] = "VB Script";
$a[] = "Web Technologies";
$a[] = "Xerox Technology";
$a[] = "YQL";
$a[] = "ZOPL";
$q = $_REQUEST["q"];
$hint = "";
foreach($a as $name) {
<script>
function showCD(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML =
"";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera,
Safari
xmlhttp = new XMLHttpRequest();
}else {
// code for IE6, IE5
xmlhttp = new
ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status
== 200) {
document.getElementById("txtHint").innerHTML =
xmlhttp.responseText;
}
}
xmlhttp.open("GET","getcourse.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
Select a Course:
<select name = "cds" onchange =
"showCD(this.value)">
<option value = "">Select a course:</option>
<option value = "Android">Android </option>
<option value = "Html">HTML</option>
<option value = "Java">Java</option>
<option value = "Microsoft">MS
technologies</option>
</select>
</form>
</body>
</html>
El ejemplo anterior llamará a getcourse.php usando el método GET. El archivo
getcourse.php carga catalog.xml. getcourse.php es como se muestra a
continuación:
<?php
$q = $_GET["q"];
$x = $xmlDoc->getElementsByTagName('COURSE');
$cd = ($y->childNodes);
Catalog.xml
Archivo XML con una lista de cursos y detalles. Getcourse.php accede a este
archivo
<CATALOG>
<SUBJECT>
<COURSE>Android</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>Postparaprogramadores</COMPANY>
<PRICE>$10</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>
<SUBJECT>
<COURSE>Html</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>Postparaprogramadores</COMPANY>
<PRICE>$15</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>
<SUBJECT>
<COURSE>Java</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>Postparaprogramadores</COMPANY>
<PRICE>$20</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>
<SUBJECT>
<COURSE>Microsoft</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>Postparaprogramadores</COMPANY>
<PRICE>$25</PRICE>
<YEAR>2015</YEAR>
</SUBJECT>
</CATALOG>
Producirá el siguiente resultado:
PHP - Búsqueda automática completa de
Ajax
Página de inicio
La página de índice debe ser la siguiente:
<html>
<head>
<style>
div {
width:240px;
color:green;
}
</style>
<script>
function showResult(str) {
if (str.length == 0) {
document.getElementById("livesearch").innerHTML = "";
document.getElementById("livesearch").style.border = "0px";
return;
}
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new
ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
document.getElementById("livesearch").style.border = "1px
solid #A5ACB2";
}
}
xmlhttp.open("GET","livesearch.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form>
<h2>Enter Course Name</h2>
<input type = "text" size = "30" onkeyup =
"showResult(this.value)">
<div id = "livesearch"></div>
<a href =
"http://www.postparaprogramadores.com">More Details </a>
</form>
</body>
</html>
livesearch.php
Se utiliza para llamar los datos del archivo xml y enviará el resultado a los
navegadores web.
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("autocomplete.xml");
$x = $xmlDoc->getElementsByTagName('link');
$q = $_GET["q"];
if (strlen($q)>0) {
$hint = "";
if ($y->item(0)->nodeType == 1) {
if (stristr($y->item(0)->childNodes->item(0)-
>nodeValue,$q)) {
if ($hint == "") {
$hint = "<a href = '" . $z->item(0)-
>childNodes->item(0)->nodeValue . "' target='_blank'>" .
$y->item(0)->childNodes->item(0)->nodeValue
. "</a>";
}else {
$hint = $hint . "<br/><a href = '" .
$z->item(0)->childNodes->item(0)->nodeValue
. "' target='_blank'>" .
$y->item(0)->childNodes->item(0)->nodeValue
. "</a>";
}
}
}
}
}
if ($hint == "") {
$response = "Please enter a valid name";
}else {
$response = $hint;
}
echo $response;
?>
autocomplete.xml
Contenía datos de autocompletado y se accede por livesearch.php basado en
el campo de título y Url archivado
<pages>
<link>
<title>android</title>
<url>http://www.postparaprogramadores.com/android/index.htm</
url>
</link>
<link>
<title>Java</title>
<url>http://www.postparaprogramadores.com/java/index.htm</url
>
</link>
<link>
<title>CSS </title>
<url>http://www.postparaprogramadores.com/css/index.htm</url>
</link>
<link>
<title>angularjs</title>
<url>http://www.postparaprogramadores.com/angularjs/index.htm
</url>
</link>
<link>
<title>hadoop</title>
<url>http://www.postparaprogramadores.com/hadoop/index.htm
</url>
</link>
<link>
<title>swift</title>
<url>http://www.postparaprogramadores.com/swift/index.htm
</url>
</link>
<link>
<title>ruby</title>
<url>http://www.postparaprogramadores.com/ruby/index.htm
</url>
</link>
<link>
<title>nodejs</title>
<url>http://www.postparaprogramadores.com/nodejs/index.htm
</url>
</link>
</pages>
Producirá el siguiente resultado:
PHP - Ejemplo de fuente RSS de Ajax
RSS
Really Simple Syndication se utiliza para publicar información a menudo
actualizada del sitio web, como audio, video, imágenes, etc. Podemos integrar
las fuentes RSS en un sitio web mediante el uso de Ajax y php. Este código
muestra cómo mostrar canales RSS en nuestro sitio.
Index.html
La página de índice debe ser la siguiente:
<html>
<head>
<script>
function showRSS(str) {
if (str.length == 0) {
document.getElementById("output").innerHTML =
"";
return;
}
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new
ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status
== 200) {
document.getElementById("output").innerHTML
= xmlhttp.responseText;
}
}
xmlhttp.open("GET","rss.php?q="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<p>Please Select an option to get RSS:</p>
<form>
<select onchange = "showRSS(this.value)">
<option value = "">Select an RSS-feed:</option>
<option value = "cnn">CNN</option>
<option value = "bbc">BBC News</option>
<option value = "pc">PC World</option>
</select>
</form>
<br>
<div id = "output">RSS-feeds</div>
</body>
</html>
rss.php
rss.php contiene una sintaxis sobre cómo obtener acceso a los canales RSS y
devolver los canales RSS a las páginas web.
<?php
$q = $_GET["q"];
if($q == "cnn") {
$xml = ("http://rss.cnn.com/rss/cnn_topstories.rss");
}elseif($q == "bbc") {
$xml =
("http://newsrss.bbc.co.uk/rss/newsonline_world_edition/ameri
cas/rss.xml");
}elseif($q = "pcw"){
$xml = ("http://www.pcworld.com/index.rss");
}
$channel = $xmlDoc->getElementsByTagName('channel')-
>item(0);
$channel_title = $channel->getElementsByTagName('title')
->item(0)->childNodes->item(0)->nodeValue;
$channel_link = $channel->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
$channel_desc = $channel-
>getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue;
$x = $xmlDoc->getElementsByTagName('item');
$item_link = $x->item($i)->getElementsByTagName('link')
->item(0)->childNodes->item(0)->nodeValue;
$item_desc = $x->item($i)-
>getElementsByTagName('description')
->item(0)->childNodes->item(0)->nodeValue;
¿Qué es el XML?
XML es un lenguaje de marcado para compartir los datos a través de la web,
XML es tanto para lectura humana como para lectura mecánica. Ejemplo de
xmls compartibles son RSS Feeds. Los analizadores XML son útiles para leer
y actualizar los datos mediante navegadores web.
Tipos de XML
Basado en el árbol
Basado en eventos
Analizador DOM
DOM Parser también llamado como un analizador de nodo complejo, que se
utiliza para analizar archivos XML altamente complejos. Se utiliza como
interfaz para modificar el archivo XML. El analizador DOM ha codificado con
codificación de caracteres UTF-8.
Análisis XML
El análisis XML se basa en el análisis SAX. Es más rápido que todos los
analizadores anteriores. Creará el archivo XML y analizará el XML. El
analizador XML se ha codificado mediante la codificación de caracteres ISO-
8859-1, US-ASCII y UTF-8.
Lector XML
Analizador de lector XML también llamado análisis XML de extracción. Se
utiliza para leer el archivo XML de una manera más rápida. Funciona con
documentos XML de alta complejidad con validación XML.
PHP - XML simple
simplexml_load_file ()
Esta función acepta la ruta del archivo como primer parámetro y es obligatoria.
simplexml_load_file(($fileName,$class,$options,$ns,$is_prefix
)
simplexml_load_string ()
Esta función acepta la cadena en lugar de la referencia del archivo.
simplexml_load_string($XMLData,$class,$options,$ns,$is_prefix
)
simplexml_import_dom ()
Esta función acepta contenido XML con formato DOM y se convierte en XML
simple.
simplexml_load_string($DOMNode,$class)
El siguiente ejemplo muestra, Cómo analizar un archivo de datos xml.
<?php
$data = "<?xml version = '1.0' encoding = 'UTF-8'?>
<note>
<Course>Android</Course>
<Subject>Android</Subject>
<Company>Postparaprogramadores</Company>
<Price>$10</Price>
</note>";
<head>
<body>
<?php
print_r($xml);
?>
</body>
</head>
</html>
Producirá el siguiente resultado:
SimpleXMLElement Object ( [Course] => Android [Subject] =>
Android [Company] => Postparaprogramadores [Price] => $10 )
También podemos llamar a un archivo de datos xml como se muestra a
continuación y produce el mismo resultado que se muestra arriba:
<?php
$xml = simplexml_load_file("data") or die("Error: Cannot
create object");
print_r($xml);
?>
PHP - XML simple GET
XML Get ha utilizado para obtener los valores de nodo del archivo xml. El siguiente
ejemplo muestra, Cómo obtener los datos de xml.
Note.xml
Note.xml es un archivo xml, se puede acceder mediante un archivo php.
<SUBJECT>
<COURSE>Android</COURSE>
<COUNTRY>India</COUNTRY>
<COMPANY>Postparaprogramadores</COMPANY>
<PRICE>$10</PRICE>
</SUBJECT>
Index.htm
La página de índice tiene derechos para obtener acceso a los datos xml utilizando
implexml_load_file ().
<?php
$xml = simplexml_load_file("note.xml") or die("Error:
Object Creation failure");
?>
<html>
<head>
<body>
<?php
echo $xml->COURSE . "<br>";
echo $xml->COUNTRY . "<br>";
echo $xml->COMPANY . "<br>";
echo $xml->PRICE;
?>
</body>
</head>
</html>
Producirá el siguiente resultado:
</postparaprogramadores>
El código PHP debe ser el siguiente
<html>
<body>
<?php
$xml = simplexml_load_file("books.xml") or
die("Error: Cannot create object");
foreach($xml->children() as $books) {
echo $books->title . "<br> ";
echo $books->tutor . "<br> ";
echo $books->duration . "<br> ";
echo $books->price . "<hr>";
}
?>
</body>
</html>
Producirá el siguiente resultado:
PHP - Ejemplo de analizador SAX
El analizador SAX se ha utilizado para analizar el archivo xml y mejor para la
administración de la memoria que el analizador xml de muestra y DOM. No
guarda ningún dato en la memoria, por lo que puede usarse para archivos muy
grandes. El siguiente ejemplo mostrará cómo obtener datos de xml utilizando
la API SAX.
SAX.xml
XML debe ser el siguiente:
<?xml version = "1.0" encoding = "utf-8"?>
<tutors>
<course>
<name>Android</name>
<country>India</country>
<email>[email protected]</email>
<phone>123456789</phone>
</course>
<course>
<name>Java</name>
<country>India</country>
<email>[email protected]</email>
<phone>123456789</phone>
</course>
<course>
<name>HTML</name>
<country>India</country>
<email>[email protected]</email>
<phone>123456789</phone>
</course>
</tutors>
SAX.php
El archivo PHP debería ser el siguiente:
<?php
//Reading XML using the SAX(Simple API for XML) parser
$tutors = array();
$elements = null;
if(!empty($name)) {
if ($name == 'COURSE') {
// creating an array to store information
$tutors []= array();
}
$elements = $name;
}
}
if(!empty($name)) {
$elements = null;
}
}
if(!empty($data)) {
if ($elements == 'NAME' || $elements == 'COUNTRY' ||
$elements == 'EMAIL' || $elements == 'PHONE') {
$tutors[count($tutors)-1][$elements] =
trim($data);
}
}
}
xml_set_element_handler($parser, "startElements",
"endElements");
xml_set_character_data_handler($parser, "characterData");
foreach($tutors as $course) {
echo "course No - ".$i.'<br/>';
echo "course Name - ".$course['NAME'].'<br/>';
echo "Country - ".$course['COUNTRY'].'<br/>';
echo "Email - ".$course['EMAIL'].'<br/>';
echo "Phone - ".$course['PHONE'].'<hr/>';
$i++;
}
?>
Producirá el siguiente resultado:
<body>
<h2>Course details</h2>
<tr>
<td>Hadoop</td>
<td>Gopal</td>
<td>Satish</td>
</tr>
<tr>
<td>HTML</td>
<td>Gopal</td>
<td>Raju</td>
</tr>
<tr>
<td>Web technologies</td>
<td>Gopal</td>
<td>Javed</td>
</tr>
<tr>
<td>Graphic</td>
<td>Gopal</td>
<td>Satish</td>
</tr>
<tr>
<td>Writer</td>
<td>Kiran</td>
<td>Amith</td>
</tr>
<tr>
<td>Writer</td>
<td>Kiran</td>
<td>Vineeth</td>
</tr>
</tbody>
</table>
</body>
</html>
';
/*** a new dom object ***/
$dom = new domDocument;
CakePHP
Cake PHP es una gran fuente para crear aplicaciones web simples y geniales
de una manera fácil. Algunas características excelentes que están
incorporadas en php son la validación de entrada, la prevención de inyección
SQL que mantiene su aplicación segura y protegida.
Caracteristicas
Construir rápidamente
No es necesario configurar
Licencia MIT
Modelo MVC
Seguro
FlightPHP
Flight PHP es muy útil para hacer servicios web RESTful y está bajo licencia
MIT.
Symfony
Laravel
Zend es un marco moderno para realizar aplicaciones web de alta gama. Esto
funciona en base a herramientas de codificación criptográfica y segura.
Codeigniter
PHPixie
PHPixie funciona basado en MVC y está diseñado para desarrollar sitios web
de manera rápida y confiable.
Agavi
Marco de referencia
La mayoría de los marcos son confiabilidad, consistencia y ahorro de
tiempo. Algunos de los marcos innovadores tienen un amplio conjunto de
funcionalidades, por lo que el desarrollador no necesita escribir código
completo, los desarrolladores deben acceder al código utilizando el marco y
desarrollar una aplicación web PHP. Frameworks no ofrece soluciones para
escritores de códigos incorrectos, pero brinda confiabilidad al escribir código.
Proyectos mejorados
Todos quieren pasar a tecnologías sofisticadas. Si algún sitio web o
aplicaciones web se han desarrollado en Core PHP, es difícil mejorar los
componentes del sitio web, pero si el sitio web o las aplicaciones web se han
desarrollado en Frame Work PHP, es muy fácil mejorar las características.
Una clase tiene una instancia, le proporciona un punto de acceso global, el siguiente
código explicará el concepto de singleton.
<?php
class Singleton {
public static function getInstance() {
static $instance = null;
$obj = Singleton::getInstance();
var_dump($obj === Singleton::getInstance());
$anotherObj = SingletonChild::getInstance();
var_dump($anotherObj === Singleton::getInstance());
var_dump($anotherObj === SingletonChild::getInstance());
?>
El ejemplo anterior implementado en base a la creación del método estático es
getInstance ()
Fábrica
Una clase simple crea el objeto y desea utilizar ese objeto. El siguiente ejemplo
explicará el patrón de diseño de fábrica.
<?php
class Automobile {
private $bikeMake;
private $bikeModel;
class AutomobileFactory {
public static function create($make, $model) {
return new Automobile($make, $model);
}
}
class Automobile {
private $bikeMake;
private $bikeModel;
class AutomobileFactory {
public static function create($make, $model) {
return new Automobile($make, $model);
}
}
t$pulsar = AutomobileFactory::create('ktm', 'pulsar');
print_r($pulsar->getMakeAndModel());
?>
La principal dificultad con el patrón de fábrica es que aumentará la complejidad y no
es confiable para los buenos programadores.
Patrón de estrategia
$collection->setComparator(new IdComparator());
$collection->sort();
$collection->setComparator(new DateComparator());
$collection->sort();