Vous êtes sur la page 1sur 98

PHP

Curso bsico
Eduardo Flores
edflores@uan.edu.mx

PHP Contenido
1. Introduccin

Qu es PHP? Qu se puede hacer con PHP? Cmo obtener el cdigo fuente y binarios Instalacin y configuracin Sintaxis bsica Tipos de datos Declaracin de variables Forzado de tipos Conceptos bsicos Variables predefinidas Ambito de las variables Variables variables Variables externas a PHP Constantes definidas por PHP

1.

El lenguaje

1.

Variables

1.

Constantes

PHP Contenido

Definicin de constantes

5. 6.

Expresiones Operadores

Operadores aritmticos Operadores de asignacin Operadores bit a bit Operadores de comparacin Operador de ejecucin Operadores de incremento/decremento Operadores lgicos Precedencia de operadores Operadores de cadena if, else, elseif while do...while for foreach

5.

Estructuras de control

PHP Contenido

break switch continue require() include()

8.

Incluir archivos

8.

Funciones

Funciones definidas por el usuario Parmetros de las funciones Devolver valores 8. PHP y bases de datos Conceptos bsicos. Funciones de PHP para bases de datos. Base de datos de ejemplo Obteniendo registros de una base de datos. Uso de arreglos asociativos. Llamada a un mismo archivo PHP PHP y formas HTML.

PHP Contenido

Insercin con una forma HTML. Actualizacin con una forma HTML. Eliminacin con una forma HTML.

11. Envo de archivos

PHP 1. Introduccin

Qu es PHP? Qu se puede hacer con PHP? Cmo obtener el cdigo fuente y binarios

PHP 1. Introduccin
1.1 Qu es PHP?

PHP (acrnimo de "PHP: Hypertext Preprocessor") es un lenguaje interpretado de alto nivel embebido en pginas HTML y ejecutado en el servidor. Funcionamiento de HTTP (Protocolo de servidores y clientes de WWW):

2. Peticin del cliente de Web (Navegado r) 4. El servidor enva el documento

5. El navegador interpreta el documento

1. El autor escribe documento s en HTML

3. El servidor localiza el document o

PHP 1. Introduccin
1.1 Qu es PHP?

PHP permite la creacin dinmica de documentos de Web:

2. Peticin del cliente de Web (Navegador)

3. El servidor localiza el document o 4. El servidor procesa el contenido de PHP en el documento

6. El navegador interpreta el documento

5. El servidor enva el documento como HTML

1. El autor escribe documentos en HTML y PHP

PHP 1. Introduccin,

1.2 Qu se puede hacer con PHP?

PHP puede hacer cualquier cosa que se pueda hacer con un script CGI, como procesar la informacin de formularios, generar pginas con contenidos dinmicos, o mandar y recibir cookies. PHP tiene soporte para una gran cantidad de bases de datos. Escribir un interfaz va web para una base de datos es una tarea simple con PHP. Las siguientes bases de datos estn soportadas actualmente (entre otras):

Adabas D dBase Empress FilePro IBM DB2 Informix

Ingres InterBase FrontBase mSQL MySQL ODBC

Oracle (OCI7 and OCI8) PostgreSQL Solid Sybase Sybase Unix dbm

PHP 1. Introduccin

1.3 Cmo obtener el cdigo fuente y binarios

El cdigo fuente y las distribuciones binarias para algunas plataformas (incluido Windows) se pueden encontrar en http://www.php.net/.

PHP 1. Introduccin

1.4 Instalacin y configuracin

Para hacer una instalacin en un sistema Unix se tienen los siguientes requisitos:

Habilidades bsicas en UNIX (ser capaz de manejar el "make" y un compilador de C) Un compilador ANSI de C Un servidor web (puede ser Apache)

PHP 1. Introduccin

1.4 Instalacin y configuracin

Instrucciones Rpidas de Instalacin (Mdulo de apache):

1. gunzip apache_1.3.x.tar.gz 2. tar xvf apache_1.3.x.tar 3. gunzip php-3.0.x.tar.gz 4. tar xvf php-3.0.x.tar 5. cd apache_1.3.x 6. ./configure --prefix=/www 7. cd ../php-3.0.x 8. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars 9. make 10. make install 11. cd ../apache_1.3.x 12. ./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a 13. make 14. make install En lugar de este paso quizs prefiera simplemente copiar el binario httpd encima del binario existente. Si lo hace, asegrese antes de cerrar su servidor. 15. cd ../php-3.0.x 16. cp php3.ini-dist /usr/local/lib/php3.ini Puede editar el archivo /usr/local/lib/php3.ini para ajustar opciones del PHP. Si prefiere tenerlo en otro sitio, utilice --with-config-file-path=/path en el paso 8. 17. Edite su archivo httpd.conf o srm.conf y aada: AddType application/x-httpd-php3 .php3 Puede elegir la extensin que desee aqu. .php3 es simplemente nuestra sugerencia. 18. Utilice su mtodo habitual para iniciar el servidor Apache (debe detener y reiniciar el servidor, no solamente hacerlo recargarse usando una seal HUP o USR1.)

PHP 1. Introduccin

1.4 Instalacin y configuracin

Para hacer una instalacin en un sistema Windows NT/9x se necesita alguno de los siguientes servidores de Web: IIS (Microsoft Internet Information Server) PWS (Microsoft Personal Web Server) Apache

PHP 1. Introduccin

1.4 Instalacin y configuracin

Instalando PHP en un Windows:

Extraiga el archivo de distribucin a un directorio de su eleccin. "C:\PHP3\" es un buen comienzo. Copie el archivo 'php3.ini-dist' a su directorio '%WINDOWS%' y renmbrelo a 'php3.ini'. Su directorio '%WINDOWS%' es tpicamente: c:\windows para Windows 95/98 c:\winnt o c:\winnt40 para servidores NT Edite su archivo 'php3.ini': Necesita cambiar la opcin 'extension_dir' para que apunte a su phpinstall-dir, o a donde quiera que haya puesto sus archivos 'php3_*.dll'. P.ej.: c:\php3

PHP 1. Introduccin

1.4 Instalacin y configuracin

Instalando PHP en un Windows (continuacin):

Elija qu mdulos deseara cargar cuando comience el PHP. Puede descomentar las lneas: 'extension=php3_*.dll' para cargar estos mdulos. Algunos mdulos requieren que tenga instaladas en sus sistema libreras adicionales para que el mdulo funcione correctamente. En el PWS y el IIS puede fijar el browscap.ini para que apunte a: 'c:\windows\system\inetsrv\browscap.ini' bajo Windows 95/98 y a 'c:\winnt\system32\inetsrv\browscap.ini' bajo NT Server. Elija el botn "fuente" para verlo en accin. Las DLL para las extensiones del PHP van precedidas de 'php3_'. Esto evita confusiones entre las extensiones del PHP y sus libreras de soporte.

PHP 1. Introduccin

1.4 Instalacin y configuracin

Windows NT/9x con Apache:

Debe editar sus archivos srm.conf o httpd.conf para configurar el Apache para que trabaje con el ejecutable CGI del PHP. Aunque puede haber algunas variaciones al configurar PHP bajo Apache, esta es lo suficientemente simple para ser usada por el novato. Agregar a los archivos correspondientes (en las ltimas versiones de Apache slo en httpd.conf): ScriptAlias /php3/ "c:/ruta-al-dir-del-php/" AddType application/x-httpd-php3 .php3 AddType application/x-httpd-php3 .phtml Action application/x-httpd-php3 "/php3/php.exe"

PHP 2. El lenguaje

Sintaxis bsica Tipos de datos Declaracin de variables Forzado de tipos

PHP 2. El lenguaje
2.1 Sintaxis bsica

Hay cuatro formas de salir de HTML y entrar en modo de cdigo de PHP:


1. 2. 3. <? echo ("esta es la ms simple\n"); ?> <?php echo("si quiere servir documentos XML, haga esto\n"); ?> <script language="php"> echo ("a algunos editores (como FrontPage) no les gustan las instrucciones de procesado"); </script> <% echo ("Puedes tambin usar etiquetas tipo ASP"); %> <%= $variable; # Esto es una forma abreviada de "<%echo .." %>

4.

La primera forma slo est disponible si se han habilitado las etiquetas cortas con la funcin short_tags(), con la opcin de configuracin short_open_tag en el archivo de configuracin de PHP, o compilando PHP con la opcin --enableshort-tags en configure. La cuarta manera est disponible slo si se han habilitado las etiquetas tipo ASP

PHP 2. El lenguaje
2.1 Sintaxis bsica

Separacin de instrucciones: Las instrucciones se separan igual que en C o perl, con un punto y coma al final. La etiqueta de cierre (?>) tambin implica el fin de la sentencia, as lo siguiente es equivalente:

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

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

PHP 2. El lenguaje
2.1 Sintaxis bsica

Comentarios PHP soporta comentarios tipo C, C++ y shell de Unix. Por ejemplo:
<?php echo "Esto es una prueba"; // Comentario tipo c+ + para una lnea /* Esto es un comentario multilnea otra lnea ms de comentario*/ echo "Esto es an otra prueba"; echo "Una Prueba Final"; # Este es un comentario tipo shell ?>

PHP 2. El lenguaje
2.2 Tipos de datos

PHP soporta los siguientes tipos de datos: Enteros Nmeros en punto flotante Cadenas Arrays Objetos

PHP 2. El lenguaje
2.2 Tipos de datos

Enteros Los enteros se puede especificar usando una de las siguientes sintaxis:
$a = 1234; # nmero en decimal $a = -123; # un nmero negativo $a = 0123; # nmero octal (equivalente al 83 decimal) $a = 0x12; # nmero hexadecimal (equivalente al 18 decimal)

PHP 2. El lenguaje
2.2 Tipos de datos

Nmeros en punto flotante Los nmeros en punto flotante ("double") se pueden especificar utilizando cualquiera de las siguientes sintaxis:
$a = 1.234; $a = 1.2e3;

PHP 2. El lenguaje
2.2 Tipos de datos

Cadenas Las cadenas de caracteres se pueden especificar usando uno de dos tipos de delimitadores. Si la cadena est encerrada entre dobles comillas ("), las variables que estn dentro de la cadena sern expandidas (sujetas a ciertas limitaciones de interpretacin). Como en C y en Perl, el carcter de barra invertida ("\") se puede usar para especificar caracteres especiales:

PHP 2. El lenguaje
2.2 Tipos de datos

Cadenas Caracteres especiales:


Secuencia Significado
Nueva lnea Retorno de carro Tabulacin horizontal Barra invertida Signo de dlar Comillas dobles La secuencia de caracteres que coincida con la expresin regular es un carcter en notacin octal.

\n \r \t \\ \$ \ \[0-7]{1,3}

\x[0-9A-Fa-f]{1,2} La secuencia de caracteres que coincida con la expresin regular es un carcter en notacin hexadecimal

PHP 2. El lenguaje
2.2 Tipos de datos

Cadenas Otra forma de delimitar una cadena de caracteres usa el carcter de comilla simple ('). En este caso los nicos caracteres de escape que sern comprendidos son \\ y \'. Esto es por convenio, as que se pueden tener comillas simples y barras invertidas en una cadena entre comillas simples. Las variables no se expandirn dentro de una cadena entre comillas simples. Otra forma de delimitar cadenas es usando la sintaxis de documento incrustado (">>>"). Se debe proporcionar un identificador despus de >>>, despus la cadena, y despus el mismo identificador para cerrar el entrecomillado.

PHP 2. El lenguaje
2.2 Tipos de datos

Cadenas, ejemplos

<?php /* Asignando una cadena. */ $str = "Esto es una cadena";

/* Aadiendo a la cadena. */ $str = $str . " con algo ms de texto";

/* Otra forma de aadir, incluye un carcter de nueva lnea protegido. */ $str .= " Y un carcter de nueva lnea al final.\n"; ?>

PHP 2. El lenguaje
2.2 Tipos de datos

Cadenas, ejemplos

php Esta cadena terminar siendo '<p>Nmero: 9</p>' */

um = 9;

tr = "<p>Nmero: $num</p>";

Esta ser '<p>Nmero: $num</p>' */

um = 9;

tr = '<p>Nmero: $num</p>';

PHP 2. El lenguaje
2.2 Tipos de datos

Cadenas, ejemplos

?php */

* Obtener el primer carcter de una cadena

str = 'Esto es una prueba.';

first = $str[0];

* Obtener el ltimo carcter de una cadena. */

str = 'Esto es an una prueba.';

last = $str[strlen($str)-1];

>

PHP 2. El lenguaje
2.2 Tipos de datos

Cadenas, ejemplos

$str = >>>EOD

Ejemplo de cadena

Expandiendo mltiples lneas

usando sintaxis de documento incrustado.

EOD;

PHP 2. El lenguaje
2.2 Tipos de datos

Arrays Los arrays actualmente actan tanto como tablas hash (arrays asociativos) o como arrays indexados (vectores).

$a[0] = "abc"; $a[1] = "def"; $b["foo"] = 13;

Los arrays se pueden ordenar usando las funciones asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), y uksort() dependiendo del tipo de ordenacin que se quiera.

PHP 2. El lenguaje
2.2 Tipos de datos

Arrays, multidimensionales Los arrays multidimensionales son bastante simples. Para cada dimensin del array, se puede aadir otro valor [clave] al final:

$a[1] $a["foo"]

= $f; = $f;

# ejemplos de una sola dimensin

$a[1][0]

= $f;

# bidimensional

$a["foo"][2] = $f; # (se pueden mezclar ndices numricos y asociativos) $a[3]["bar"] = $f; # (se pueden mezclar ndices numricos y asociativos) $a["foo"][4]["bar"][0] = $f; # tetradimensional!

PHP 2. El lenguaje
2.2 Tipos de datos

Objetos Para inicializar un objeto, se usa la sentencia new para instanciar el objeto a una variable.
class foo { function do_foo () { echo "Doing foo."; } } class suma { function do_suma( $x , $y ) { $sumar = $x + $y; echo "$sumar"; $bar = new foo; $bar->do_foo(); } $s = new suma; $s -> do_suma($x = 2,$y =4); }

PHP 2. El lenguaje

2.3 Declaracin de variables

PHP no requiere (o soporta) la declaracin explcita del tipo en la declaracin de variables. El tipo de una variable se determina por el contexto en el que se usa esa variable.

$foo = "0"; $foo++; $foo += 1;

// $foo es una cadena (ASCII 48) // $foo es la cadena "1" (ASCII 49) // $foo ahora es un entero (2) // $foo ahora es un doble

$foo = $foo + 1.3; (3.3)

$foo = 5 + "10 Cerditos Pequeitos"; // $foo es entero (15) $foo = 5 + "10 Cerditos"; (15) // $foo es entero

PHP 2. El lenguaje
2.4 Forzado de tipos

El forzado de tipos en PHP funciona como en C: el nombre del tipo deseado se escribe entre parntesis antes de la variable a la que se pretende forzar.
$foo = 10; // $foo es un entero // $bar es un doble

$bar = (double) $foo;

PHP 2. El lenguaje
2.4 Forzado de tipos

Los forzados de tipo permitidos son:


(int), (integer) - fuerza a entero (integer) (int), (integer) - fuerza a entero (integer) (real), (double), (float) - fuerza a doble (double) (string) - fuerza a cadena (string) (array) - fuerza a array (array) (object) - fuerza a objeto (object)

$foo = (int) $bar; $foo = ( int ) $bar; $var = 'ciao'; $arr = (array) $var; echo $arr[0]; // produce la salida 'ciao'

PHP 3. Variables

Conceptos bsicos Variables predefinidas Ambito de las variables Variables variables Variables externas a PHP

PHP 3. Variables

3.1 Conceptos bsicos

En PHP las variables se representan como un signo de dlar seguido por el nombre de la variable. En PHP las variables se representan como un signo de dlar seguido por el nombre de la variable. El nombre de la variable es sensible a minsculas y maysculas.
$var = "Bob"; $Var = "Joe"; echo "$var, $Var"; // produce la salida "Bob, Joe

Se puede utilizar los siguientes caracteres: A-B, a-b, 0-9, _. La longitud del nombre de una variable no tiene lmite. PHP ofrece otra forma de asignar valores a las variables: asignar por referencia (como

PHP 3. Variables

3.2 Variables predefinidas

PHP proporciona una gran cantidad de variables predefinidas a cualquier script que se ejecute. Algunas de estas variables no pueden estar completamente documentadas ya que dependen de sobre qu servidor se est ejecutando. Para una lista de variables predefinidas (y muchas ms informacin til), por favor, vea (y use) phpinfo(). Algunas de estas variables (por ejemplo, con el servidor Apache) son:
SERVER_NAME REQUEST_METHOD QUERY_STRING DOCUMENT_ROOT HTTP_USER_AGENT HTTP_REFERER REMOTE_ADDR SCRIPT_NAME REQUEST_URI REMOTE_USER

PHP 3. Variables

3.2 Variables predefinidas

Algunas variables creadas por PHP:


argv. Array de argumentos pasados al script argc. Nmero de parmetros de la lnea de comandos pasados al script PHP_SELF. El nombre del archivo que contiene el script que se esta ejecutando.

PHP 3. Variables

3.3 Ambito de las variables

El mbito de una variable es el contexto dentro del que la variable est definida. La mayor parte de las variables PHP slo tienen un mbito simple. Este mbito simple tambin abarca los ficheros incluidos y los requeridos. Cualquier variables que se use dentro de una funcin est, por defecto, limitada al mbito local de la funcin. Por ejemplo:
$a = 1; /* mbito global */ function Test() { echo $a; /* referencia a una variable de mbito local */ } Test();

PHP 3. Variables

3.3 Ambito de las variables

En PHP, las variables globales deben ser declaradas globales dentro de la funcin si van a ser utilizadas dentro de dicha funcin. Veamos un ejemplo:
$a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum (); echo $b; // produce 3 como salida

PHP 3. Variables

3.3 Ambito de las variables

Las variables declaradas como static, permiten que una variable local en una funcin, conserver su valor en llamadas sucecivas:
function Test() { static $a = 0; echo $a; $a++; }

PHP 3. Variables

3.4 Variables variables

Las variables variables son nombres de variables que se pueden establecer y usar dinmicamente.
$a = "hello"; $$a = "world"; // se crea una variable con el nombre hello echo "$a\n" // produce hello como salida

echo "$hello\n"; // produce world como salida

PHP 3. Variables

3.5 Variables externas a PHP

Cuando se enva un formulario a un script PHP, las variables de dicho formulario pasan a estar automticamente disponibles en el script gracias a PHP. Por ejemplo, consideremos el siguiente formulario:
<form action="foo.php3" method="post"> Name: <input type="text" name="nombre"><br> <input type="submit"> </form>

Cuando es enviado, PHP crear la variable $nombre, que contendr lo que se introdujo en el campo nombre: del formulario.

PHP 3. Variables

3.5 Variables externas a PHP

PHP tambin maneja arrays en el contexto de variables de formularios, pero slo en una dimensin:
<form action="array.php" method="post"> Name: <input type="text" name="personal[name]"><br> Email: <input type="text" name="personal[email]"><br> Beer: <br> <select multiple name="beer[]"> <option value="warthog">Warthog <option value="guinness">Guinness <option value="stuttgarter">Stuttgarter Schwabenbru </select> <input type="submit"> </form>

PHP 4. Constantes

Constantes definidas por PHP Definicin de constantes

PHP 4. Constantes

4.1 Constantes definidas por PHP

PHP define varias constantes y proporciona un mecanismo para definir ms en tiempo de ejecucin. Algunas constantes definidas por PHP son:

__FILE__. Nombre del archivo de comandos que est siendo interpretado actualmente. __LINE__. Nmero de lnea dentro del archivo que est siendo interpretado en la actualidad. PHP_VERSION. cadena que representa la versin del analizador de PHP en uso . PHP_OS. Nombre del sistema operativo en el cul se ejecuta el analizador PHP. TRUE. Valor verdadero FALSE. Valor falso.

PHP 4. Constantes

4.1 Definicin de constantes

Para definir constantes en PHP se utiliza la funcin define():


<?php define("CONSTANTE", "Hola mundo."); echo CONSTANTE; // muestra "Hola mundo." ?>

PHP 5. Expresiones

Las expresiones son la piedra angular de PHP. En PHP, casi cualquier cosa que escribes es una expresin La forma ms simple y ajustada de definir una expresin es "cualquier cosa que tiene un valor". Las formas ms bsicas de expresiones son las constantes y las variables. Cuando se escribe "$a = 5", se est asignando '5' a $a. '5', obviamente, tiene el valor 5 o, en otras palabras '5' es una expresin con el valor 5 (en este caso, '5' es una constante entera). En el ejemplo anterior, se esperar que el valor de $a sea 5 tambin, de manera que si se escribe $b = $a, se espera que se comporte igual que si se escribiese $b = 5.

PHP 5. Expresiones

Las funciones son un ejemplo algo ms complejo de expresiones. Por ejemplo, considera la siguiente funcin:
function foo () { return 5; } $c = foo() // es equivalente a $c = 5

Un tipo muy comn de expresiones son las expresiones de comparacin. Estas expresiones se evalan a 0 o 1, significando FALSO (FALSE) o CIERTO (TRUE).

PHP 5. Expresiones

Ms ejemplos de expresiones:
/* asignar el valor cinco a las variables

function double($i) { return $i*2; } $b = $a = 5; $a y $b */

$c = $a++; /* postincremento, asignar el valor original de $a (5) a $c */ $e = $d = ++$b; /* preincremento, asignar el valor incrementado de $b (6) a $d y a $e */ /* en este punto, tanto $d como $e son iguales a 6 */ $f = double($d++); /* asignar el doble del valor de $d antes del incremento, 2*6 = 12 a $f */ $g = double(++$e); despus /* asignar el doble del valor de $e del incremento, 2*7 = 14 a $g */ $h = $g += 10; /* primero, $g es incrementado en 10 y termina valiendo 24. despus el valor de la asignacin (24) se asigna a $h, y $h tambin acaba valiendo 24. */

PHP 6. Operadores

Operadores aritmticos Operadores de asignacin Operadores bit a bit Operadores de comparacin Operador de ejecucin Operadores de incremento/decremento Operadores lgicos Precedencia de operadores Operadores de cadena

PHP 6. Operadores
Ejemplo
$a + $b $a - $b $a * $b $a / $b $a % $b

6.1 Operadores aritmticos

Nombre
Adicin Substraccin

Resultado
Suma de $a y $b Difrerencia entre $a y $b

Multiplicacin Producto de $a y $b Divisin Mdulo Cociente de $a y $b Resto de $a dividido entre $b

PHP 6. Operadores

6.2 Operadores de asignacin

El operador bsico de asignacin es "=". Significa que el operando de la izquierda toma el valor de la expresin a la derecha, (esto es, "toma el valor de"). El valor de una expresin de asignacin es el propio valor asignado. Esto es, el valor de "$a = 3" es 3. Esto permite hacer cosas curiosas como:
$a = ($b = 4) + 5; // ahora $a es igual a 9, y $b vale 4.

PHP 6. Operadores

6.2 Operadores de asignacin

Adems del operador bsico de asignacin, existen los "operadores combinados" para todas las operaciones aritmticas y de cadenas que sean binarias. Este operador combinado te permite, de una sola vez, usar una variable en una expresin y luego establecer el valor de esa variable al resultado de la expresin:
$a = 3; $a += 5; // establece $a a 8, como: $a = $a + 5; $b = "Hola "; $b .= "Ah!"; // $b igual a "Hola Ah!", igual que $b = $b . "Ah!";

PHP 6. Operadores
6.3 Operadores bit a bit

Ejemplo
$a & $b $a | $b $a ^ $b

Los operadores bit a bit te permiten activar o desactivar bits individuales de un entero:
Nombre Resultado
Y O XOR Se activan los bits que estn activos tanto en $a como $b. Se activan los bits que estn activos en $a o que lo estn en $b. Se activan los bits que estn activos en $a o en $b pero no en ambos a la vez. Se activan los bits que no estn activos en $a.

~$a $a << $b

NOT

Desp. a la izq. Desplaza los bits de $a, $b posiciones hacia la izquierda (multiplica por dos el valor de $a). Desp. a la der. Desplaza los bits de $a, $b posiciones hacia la derecha (divide entre dos el valor de $a).

$a >> $b

PHP 6. Operadores

6.4 Operadores de comparacin

Los operadores de comparacin, como su nombre indica, permiten comparar dos valores:
Nombre
Igualdad

Ejemplo
$a == $b

Resultado
Cierto si $a es igual a $b. Cierto si $a es igual a $b y si son del mismo tipo (slo PHP4).

$a === $b Identidad $a != $b $a < $b $a > $b $a <= $b $a >= $b

Desigualdad Cierto si $a no es igual a $b. Menor que Mayor que Menor o igual que Mayor o igual que Cierto si $a es estrictamente menor que $b. Cierto si $a es estrictamente mayor que $b. Cierto si $a es menor o igual que $b. Cierto si $a es mayor o igual que $b.

PHP 6. Operadores

6.5 Operador de ejecucin

PHP soporta un operador de ejecucin: el apstrofe invertido (``). No son apostrofes normales. PHP intentar ejecutar la instruccin contenida dentro de los apstrofes invertidos como si fuera un comando del shell. Su salida es devuelta como el valor de esta expresin:
$output = `ls -al`; echo "<pre>$output</pre>";

PHP 6. Operadores

6.6 Operador de incremento/decremento

PHP soporta los operadores de predecremento y postincremento al estilo de C:


Nombre
Preincremento

Ejemplo
++$a $a++ --$a $a--

Efecto
Incrementa $a en uno y despus devuelve $a.

Postincremento Devuelve $a y despus incrementa $a en uno. Predecremento Decrementa $a en uno y despus devuelve $a Postdecremento Devuelve $a y despus decrementa $a en uno.

PHP 6. Operadores
6.7 Operadores lgicos

Operadores lgicos en PHP:


Resultado
Cierto si tanto $a como $b son ciertos. Cierto si $a o $b son ciertos. Cierto si $a es cierto o $b es cierto, pero no ambos a la vez. Cierto si $a no es cierto Cierto si tanto $a como $b son ciertos Cierto si $a o $b son ciertos

Ejemplo Nombre
$a and $b Y $a or $b $a xor $b !$a $a && $b $a || $b O XOR NOT Y O

PHP 6. Operadores

6.8 Precedencia de operadores La precedencia de operadores especifica cmo se agrupan las expresiones. La siguiente tabla lista la precedencia de operadores, indicndose primero los de menor precedencia:
Operadores Asociatividad Operadores
^ & Izquierda Izquierda Izquierda or Izquierda xor Izquierda and Derecha print

Asociatividad

Izquierda ,

No asociativo == != === No asociativo < <= > >= Izquierda Izquierda Derecha +-. */% ! ~ ++ -- (int) (double) (string) (array) (object) @ [

Izquierda = += -= *= /= .= %= &= |= ^= ~= <<= >>= Izquierda ? : Izquierda ||

Derecha

No asociativo new

PHP 6. Operadores

6.9 Operadores de cadena

$a = "Hola ";

Hay dos operadores de cadenas. El primero es el operador de concatenacin ('.'). El segundo es el operador de concatenacin y asignacin ('.='):

$b = $a . "Mundo!"; // ahora $b contiene "Hola Mundo!"

$a = "Hola "; $a .= "Mundo!"; // ahora $a contiene "Hola Mundo!"

PHP 7. Estructuras de control


if, else, elseif while do...while for foreach break continue switch

PHP 7. Estructuras de control


7.1 if, else, elseif

if Permite la ejecucin condicional de fragmentos de cdigo PHP caracteriza una estructura if que es similar a la de C:
if (expr) sentencia

if ($a > $b) print "a es mayor que b";

PHP 7. Estructuras de control


7.1 if, else, elseif

else extiende una sentencia if para ejecutar una sentencia en caso de que la expresin en la sentencia if se evale como FALSE.

if ($a > $b) { print "a es mayor que b"; } else { print "a NO es mayor que b"; }

PHP 7. Estructuras de control


7.1 if, else, elseif

elseif, como su nombre sugiere, es una combinacin de if y else. extiende una sentencia if para ejecutar una sentencia diferente en caso de que la expresin if original se evala como FALSE.
if ($a > $b) { print "a es mayor que b"; } elseif ($a == $b) { print "a es igual que b"; } else { print "a es mayor que b"; }

PHP 7. Estructuras de control


7.2 while

Los bucles while son los tipos de bucle ms simples en PHP. Se comportan como su contrapartida en C. La forma bsica de una sentencia while es:

while (expr) sentencia

$i = 1; while ($i <= 10) { print $i++; /* el valor impreso sera $i antes del incremento (post-incremento) */ }

PHP 7. Estructuras de control


7.3 do...while

Los bucles do..while son muy similares a los bucles while, excepto que las condiciones se comprueban al final de cada iteracin en vez de al principio. La principal diferencia frente a los bucles regulares while es que se garantiza la ejecucin de la primera iteracin de un bucle do..while.
$i = 0; do { print $i; } while ($i>0);

PHP 7. Estructuras de control


7.4 for

Se comportan como su contrapartida en C. La sintaxis de un bucle for es:


for (expr1; expr2; expr3) sentencia

La primera expresin (expr1) se evala (ejecuta) incondicionalmente una vez al principio del bucle. Al comienzo de cada iteracin, se evala expr2 . Si se evala como TRUE, el bucle contina y las sentencias anidadas se ejecutan. Si se evala como FALSE, la ejecucin del bucle finaliza. Al final de cada iteracin, se evala (ejecuta) expr3. Cada una de las expresiones puede estar vaca. Que expr2 est vaca significa que el bucle debera correr indefinidamente.

PHP 7. Estructuras de control


7.5 foreach

PHP4 (PHP3 no) incluye una construccin foreach, tal como perl y algunos otros lenguajes. Da un modo fcil de iterar sobre arrays Hay dos sintaxis; la segunda es una extensin menor.
foreach(expresion_array as $value) sentencia foreach(expresion_array as $key => $value) sentencia

La primera forma recorre el array dado por expresion_array. En cada iteracin, el valor del elemento actual se asigna a $value y el puntero interno del array se avanza en una unidad La segunda manera hace lo mismo, salvo que la clave del elemento actual ser asignada a la variable $key en cada iteracin.

PHP 7. Estructuras de control


7.5 foreach

Ejemplos:
/* foreach ejemplo 1: slo valor*/ $a = array(1, 2, 3, 17); foreach($a as $v) { print "Valor actual de \$a: $v.\n"; } /* foreach ejemplo 2: valor (con clave impresa para ilustrar) */ $a = array(1, 2, 3, 17); $i = 0; /* slo para propsitos demostrativos */ foreach($a as $v) { print "\$a[$i] => $v.\n"; }

PHP 7. Estructuras de control


7.6 break

break escapa de la estructuras de control iterante (bucle) actuales for, while, o switch. break acepta un parmetro opcional, el cual determina cuantas estructuras de control hay que escapar.
$arr = array ('one', 'two', 'three', 'four', 'stop', 'five'); while (list (, $val) = each ($arr)) { if ($val == 'stop') { break; 1;' here. */ } echo "$val<br>\n"; } /* You could also write 'break

PHP 7. Estructuras de control


7.7 break

continue se usa dentro de la estructura del bucle para saltar el resto de la iteracin actual del bucle y continuar la ejecucin al comienzo de la siguiente iteracin. continue acepta un parmetro opcional, el cual determina cuantos niveles (bucles) hay que saltar antes de continuar con la ejecucin.
while (list($key,$value) = each($arr)) { if ($key % 2) { // salta los miembros impares continue; } do_something_odd ($value); }

PHP 7. Estructuras de control


7.8 switch

La sentencia switch es similar a una serie de sentencias IF en la misma expresin. Los siguientes dos ejemplos son dos modos distintos de escribir la misma cosa, uno usa una serie de sentencias if, y el otro usa la sentencia switch:

if ($i == 0) { print "i es igual a 0"; } if ($i == 1) { print "i es igual a 1"; } switch ($i) { case 0: print "i es igual a 0"; break; case 1: print "i es igual a 1"; break; }

PHP 8. Incluir archivos


require() include()

PHP 8. Incluir archivos


8.1 require()

La sentencia require() se sustituye a s misma con el archivo especificado, tal y como funciona la directiva #include de C. El intrprete sale del modo PHP y entra en modo HTML al principio del archivo referenciado, y vuelve de nuevo al modo PHP al final. A diferencia de include(), require() siempre leer el archivo referenciado, incluso si la lnea en que est no se ejecuta nunca.
require( 'header.inc' );

PHP 8. Incluir archivos


8.2 include()

La sentencia include() incluye y evala el archivo especificado. include() difiere de require() en que la sentencia include se reevala cada vez que se encuentra (y slo cuando est siendo ejecutada), mientras que la sentencia require() se reemplaza por el archivo referenciado cuando se encuentra por primera vez. Se puede usar una sentencia include() dentro de una estructura de bucle para incluir un nmero de archivos diferentes.
$archivos = array ('primero.inc', 'segundo.inc', 'tercero.inc'); for ($i = 0; $i < count($archivos); $i++) { include $archivos[$i]; }

Ver tambin require_once() e include_once()

PHP 9. Funciones

Funciones definidas por el usuario Parmetros de las funciones Devolver valores

PHP 9. Funciones

9.1 Funciones definidas por el usuario

Una funcin se define con la siguiente sintaxis:


function foo ($arg_1, $arg_2, ..., $arg_n) { echo "Funcin de ejemplo.\n"; return $retval; }

Cualquier instruccin vlida de PHP puede aparecer en el cuerpo de la funcin. En PHP3, las funciones deben definirse antes de que se haga referencia a ellas. En PHP4 no existe tal requerimiento. PHP no soporta la sobrecarga de funciones. PHP3 no soporta un nmero variable de parmetros, aunque s soporta parmetros por defecto.

PHP 9. Funciones

9.2 Parmetros de las funciones

La informacin puede suministrarse a las funciones mediante la lista de parmetros, una lista de variables y/o constantes separadas por comas. PHP soporta pasar parmetros por valor (el comportamiento por defecto), por referencia, y parmetros por defecto. Ejemplo de paso por referencia:
function add_some_extra(&$string) { $string .= ' y algo ms.'; } $str = 'Esto es una cadena, '; add_some_extra($str); echo $str; // Saca 'Esto es una cadena, y algo ms.'

PHP 9. Funciones

9.2 Parmetros de las funciones

Ejemplo de parmetros por defecto:


function makecoffee ($type = "cappucino") { return "Hacer una taza de $type.\n"; } echo makecoffee (); cappucino. // Hacer una taza de

echo makecoffee ("espresso"); // Hacer una taza de espresso.

PHP 9. Funciones
9.3 Devolver valores

Los valores se retornan usando la instruccin opcional return. Puede devolverse cualquier tipo de valor, incluyendo listas y objetos.
function square ($num) { return $num * $num; } echo square (4); // saca '16'.

No puedes devolver mltiples valores desde una funcin, pero un efecto similar se puede conseguir devolviendo una lista.
function small_numbers() { return array (0, 1, 2); } list ($zero, $one, $two) = small_numbers();

PHP 10. PHP y bases de datos


Conceptos bsicos. Funciones de PHP para bases de datos. Formas HTML y los mtodos GET y POST. Base de datos de ejemplo Obteniendo registros de una base de datos. Uso de arreglos asociativos. Llamada a un mismo archivo PHP PHP y formas HTML. Insercin con una forma HTML. Actualizacin con una forma HTML. Eliminacin con una forma HTML.

PHP 10. PHP y bases de datos


10.1 Conceptos bsicos

Una base de datos es una coleccin de datos organizada de tal forma que su contenido sea fcilmente accesado, administrado y actualizado. Se componen de archivos (tablas) que son una coleccin de registros compuestos por campos que pueden contener datos de distinto tipo

Base de datos

Tabla (archivo 1)Tabla (archivo 2)

Tabla (archivo n)

...

PHP 10. PHP y bases de datos


10.1 Conceptos bsicos

PHP tiene soporte para una gran cantidad de bases de datos. Escribir un interfaz va web para una base de datos es una tarea simple con PHP.
3. El servidor localiza el document o 4. El servidor procesa el contenido de PHP en el documento

2. Peticin del cliente de Web (Navegador)

6. El navegador interpreta el documento

5. El servidor enva el documento como HTML

1. El autor escribe documentos en HTML y PHP

PHP 10. PHP y bases de datos


10.2 Funciones de PHP para bases de datos

PHP cuenta con funciones para el acceso y manipulacin de base de datos. Las funciones pueden: Establecer una sesin con el servidor de base de datos (connect). Seleccionar una base de datos del servidor (select db). Ejecutar una consulta sobre las tablas de una base de datos (query). Manipular la informacin devuelta por la consulta. La utilizacin de estas funciones y las caractersticas de PHP (estructuras de control, tipos de datos, funciones definidas por el usuario, etc.), hacen de PHP una herramienta que facilita la creacin de interfaces para bases de datos a travs de pginas Web.

PHP 10. PHP y bases de datos

10.3 Formas HTML y los mtodos GET y POST

Las formas en HTML cuentan con dos mtodos para enviar datos al servidor: GET y POST.

El Mtodo GET

El mtodo GET produce una cadena de consulta que se une a la accin del URL al pulsar el botn submit. Una cadena tpica del mtodo GET se vera as:
GET /cgi-bin/process-form.php?campo1=valor1&campo2=valor2 HTTP/1.1

Tambin se puede producir al usar links:


<A HREF="/cgi-bin/script.php?campo1=valor1">enviar</A>

La cadena puede tener un mximo de 256. Es til cuando se envan pocos datos. La cadena es recibida como si fuera un parmetro del script.

PHP 10. PHP y bases de datos

10.3 Formas HTML y los mtodos GET y POST

El Mtodo POST Es conceptualmente similar a GET. El mtodo POST es formateado y enviado al servidor como un flujo de datos de longitud variable. El flujo de datos lo recibe el programa como si fuera tecleado en el script (a travs de su entrada estndar) por lo que no forma parte del URL.

PHP 10. PHP y bases de datos


10.4 Base de datos de ejemplo

Crear una base de datos llamada empleados, con una tabla llamada directorio que tenga las siguientes caractersticas:

empleados
directorio
Campo
id nombre puesto

Tipo
smalint(5) char(50) char(30)

Atributos
UNSIGNED

Null
No No No No

Extra
auto_increment

direccon char(50)

PHP 10. PHP y bases de datos


<HTML> <BODY> <?php $db = mysql_connect("localhost", "root"); mysql_select_db("empleados",$db); $resultado = mysql_query("SELECT * FROM directorio",$db); echo "<TABLE BORDER=1>\n"; echo "<TR><TD>Nombre</TD><TD>Puesto</TD></TR>\n"; while ($reg = mysql_fetch_row($resultado)) { print "<TR><TD>$reg[1]</TD><TD>$reg[2]</TD>"; } echo "</TABLE>\n"; ?> </BODY> </HTML>

10.5 Obteniendo registros de una base de datos

PHP 10. PHP y bases de datos


10.6 Uso de arreglos asociativos
<HTML> <BODY> <?php $db = mysql_connect("localhost", "root"); mysql_select_db("empleados",$db); $resultado = mysql_query("SELECT * FROM directorio",$db); echo "<TABLE BORDER=1>\n"; echo "<TR><TD>Nombre</TD><TD>Puesto</TD></TR>\n"; while ($reg = mysql_fetch_array($resultado)) { print "<TR><TD>$reg[nombre]</TD><TD>$reg[puesto]</TD>"; } echo "</TABLE>\n"; ?> </BODY> </HTML>

PHP 10. PHP y bases de datos


10.7 Llamada a un mismo archivo PHP
<HTML><BODY> <?php $db = mysql_connect("localhost", "root"); mysql_select_db("empleados",$db); if(!$id) { $resultado = mysql_query("SELECT * FROM directorio",$db); echo "<TABLE BORDER=1>\n"; echo "<TR><TD>Nombre</TD><TD>Puesto</TD><TD>Puesto</TD></TR>\n"; while ($reg = mysql_fetch_array($resultado)) { print "<TR><TD><A HREF=\"$PHP_SELF?id=$reg[id]\">"; print "$reg[nombre]</A></TD>"; print "<TD>$reg[puesto]</TD>"; print "<TD>$reg[direccion]</TD></TR>\n"; } echo "</TABLE>\n"; } else { // $id tiene un valor $resultado=mysql_query("SELECT * FROM directorio WHERE id=$id",$db); $reg = mysql_fetch_array($resultado); print "Nombre: ".$reg[nombre]."<BR>\n"; print "Puesto: ".$reg[puesto]."<BR>\n"; print "Direccin: ".$reg[direccion]."<BR>\n"; } ?> </BODY></HTML>

PHP 10. PHP y bases de datos


10.8 PHP y formas HTML
<HTML><BODY> <?php if($submit) { while (list($name, $value) = each($HTTP_POST_VARS)) { echo "$name = $value<BR>\n"; } } else { ?> <FORM METHOD=POST ACTION="<?php echo $PHP_SELF?>"> Nombre:<INPUT TYPE=TEXT NAME="nombre"><BR> Puesto:<INPUT TYPE=TEXT NAME="puesto"><BR> Dirccin:<INPUT TYPE=TEXT NAME="direccion"><BR> <INPUT TYPE=SUBMIT NAME="submit" VALUE="Enviar informacin"> </FORM> <?php } ?> </BODY></HTML>

PHP 10. PHP y bases de datos


10.9 Insercin con una forma HTML
<HTML><BODY> <?php if($submit) { $db = mysql_connect("localhost", "root"); mysql_select_db("empleados",$db); $sql= "INSERT INTO directorio(nombre,puesto,direccion)"; $sql.=" VALUES ('$nombre','$puesto','$direccion')"; $resultado=mysql_query($sql); echo "Gracias!, su informacin ha sido agregada.\n"; } else { ?> <FORM METHOD=POST ACTION="<?php echo $PHP_SELF?>"> Nombre:<INPUT TYPE=TEXT NAME="nombre"><BR> Puesto:<INPUT TYPE=TEXT NAME="puesto"><BR> Dirccin:<INPUT TYPE=TEXT NAME="direccion"><BR> <INPUT TYPE=SUBMIT NAME="submit" VALUE="Enviar informacin"> </FORM> <?php } ?> </BODY></HTML>

PHP 10. PHP y bases de datos


10.10 Actualizacin con una forma HTML
<HTML><BODY> <?php $db = mysql_connect("localhost", "root"); mysql_select_db("empleados",$db); if(!$submit) { $resultado = mysql_query("SELECT * FROM directorio",$db); while ($reg = mysql_fetch_array($resultado)) { ?> <FORM METHOD=POST ACTION="<?php echo $PHP_SELF; ?>"> Nombre:<INPUT TYPE=TEXT NAME=nombre VALUE="<?php echo $reg[nombre]?>"><BR> Puesto:<INPUT TYPE=TEXT NAME=puesto VALUE="<?php echo $reg[puesto]?>"><BR>

Dir.:<INPUT TYPE=TEXT NAME=direccion VALUE="<?php echo $reg[direccion]?>"><BR> <INPUT TYPE=HIDDEN NAME=id VALUE=<?php echo $reg[id]?>> <INPUT TYPE=SUBMIT NAME=submit VALUE="Actualizar"> </FORM><P> <?php } } else { $sql="UPDATE directorio SET nombre='$nombre',puesto='$puesto',"; $sql.="direccion='$direccion' WHERE id=$id"; $resultado=mysql_query($sql,$db); echo "Gracias! Informacin actualizada.\n"; } ?> </BODY></HTML>

PHP 10. PHP y bases de datos


10.11 Eliminacin con una forma HTML
<HTML><BODY> <?php $db = mysql_connect("localhost", "root"); mysql_select_db("empleados",$db); if(!$submit) { $resultado = mysql_query("SELECT * FROM directorio",$db); while ($reg = mysql_fetch_array($resultado)) { ?> <FORM METHOD=POST ACTION="<?php echo $PHP_SELF; ?>"> Nombre:<INPUT TYPE=TEXT NAME=nombre VALUE="<?php echo $reg[nombre]?>"><BR> Puesto:<INPUT TYPE=TEXT NAME=puesto VALUE="<?php echo $reg[puesto]?>"><BR> Dir.:<INPUT TYPE=TEXT NAME=direccion VALUE="<?php echo $reg[direccion]?>"><BR> <INPUT TYPE=HIDDEN NAME=id VALUE=<?php echo $reg[id]?>> <INPUT TYPE=SUBMIT NAME=submit VALUE="Eliminar"> </FORM><P> <?php } } else { $sql="DELETE FROM directorio WHERE id=$id"; $resultado=mysql_query($sql,$db); echo "Gracias! Informacin eliminada.\n"; } ?> </BODY></HTML>

PHP 11. Ejemplos de funciones


11.1 Envo de archivos y tamao de imagen
<HTML><BODY> <?php $base="C:\\Archivos de programa\\apache group\\apache\\htdocs\\curso\\"; if(!$submit){ ?> <FORM ENCTYPE="multipart/form-data" ACTION="<?php echo $PHP_SELF; ?>" METHOD=POST> <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=200000> <INPUT NAME="userfile" TYPE=FILE><BR> <INPUT TYPE=HIDDEN NAME=ruta VALUE="<?php echo $base; ?>"><BR> <INPUT TYPE=SUBMIT NAME="submit"VALUE="Enviar archivo"> </FORM> <?php } elseif(is_uploaded_file($userfile)) { print "Datos recibidos:<P>\n"; print "Archivo temporal: $userfile<BR>\n";

print "Archivo original: $userfile_name<BR>\n"; print "Tamao: $userfile_size<BR>\n"; print "Tipo de archivo: $userfile_type bytes<BR>\n"; $archivo=$base.$userfile_name; copy($userfile, $archivo); print "Archivo copiado a: $archivo<P>\n"; $image = GetImageSize($base.$userfile_name); // $image array con info echo "<IMG SRC=\"/curso/$userfile_name\" WIDTH=$image[0] HEIGHT=$image[1]>\n"; } ?> </BODY></HTML>

Vous aimerez peut-être aussi