Professional Documents
Culture Documents
Historia Fue originalmente diseado en Perl, con base en la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador dans-canadiense Rasmus Lerdorf en el ao 1994 para mostrar su currculum vtae y guardar ciertos datos, como la cantidad de trfico que su pgina web reciba. El 8 de junio de 1995 fue publicado "Personal Home Page Tools" despus de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI. Dos programadores israeles del Technion, Zeev Suraski y Andi Gutmans, reescribieron el analizador sintctico (parser en ingls) en el ao 1997 y crearon la base del PHP3, cambiando el nombre del lenguaje a la forma actual. Inmediatamente comenzaron experimentaciones pblicas de PHP3 y fue publicado oficialmente en junio de 1998. Para 1999, Suraski y Gutmans reescribieron el cdigo de PHP, produciendo lo que hoy se conoce como motor Zend. Tambin fundaron Zend Technologies en Ramat Gan, Israel. En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine 1.0. El da 13 de julio de 2007 se anunci la suspensin del soporte y desarrollo de la versin 4 de PHP, a pesar de lo anunciado se ha liberado una nueva versin con mejoras de seguridad, la 4.4.8 publicada el 13 de enero del 2008 y posteriormente la versin 4.4.9 publicada el 7 de agosto de 2008. Segn esta noticia se le di soporte a fallos crticos hasta el 9 de agosto de 2008. El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine 2.0 (o Zend Engine 2). Incluye todas las ventajas que provee el nuevo Zend Engine 2 como: Mejor soporte para la programacin orientada a objetos, que en versiones anteriores era extremadamente rudimentario. Mejoras de rendimiento. Mejor soporte para MySQL con extensin completamente reescrita. Mejor soporte a XML (XPath, DOM, etc.). Soporte nativo para SQLite. Soporte integrado para SOAP. Iteradores de datos. Manejo de excepciones. Mejoras con la implementacin con Oracle.
QUE ES PHP?
PHP es un lenguaje de programacin interpretado o framework para HTML, diseado originalmente para la creacin de pginas web dinmicas. Se usa principalmente para la interpretacin del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de lnea de comandos o en la creacin de otros tipos de programas incluyendo aplicaciones con interfaz grfica usando las bibliotecas Qt o GTK+.
COMENTARIOS EN PHP
PHP soporta comentarios 'C', 'C++' y etilo consola Unix (estilo Perl). Por ejemplo: <?php echo 'Esto es una prueba'; // Esto es un comentario estilo c++ de una sola lnea /* Esto es un comentario multi-lnea y otra lna de comentarios */ echo 'Esto es otra pruba';
echo 'Una prueba final'; # Esto es un comentario estilo consola de una sola lnea ?> Los comentarios del estilo "una sola lnea" solo comentan hasta el final de la lnea o del bloque actual de cdigo de PHP, lo primero que suceda. Esto implica que el cdigo HTML despus de // ... ?> o # ... ?> SER impreso: ?> sale del modo PHP y vuelve al modo HTML, por lo que // o # no pueden influir en eso. Si la directiva de configuracin asp_tags est activada, acta igual que // %> y # %>. Sin embargo, la etiqueta </script> no sale del modo PHP en un comentario de una sola lnea. <h1>Esto es un <?php # echo 'simple';?> ejemplo</h1> <p>El encabezado anterior dir 'Esto es un ejemplo'.</p> Los comentarios al estilo 'C' finalizan con el primer */ que se encuentre. Asegrese de no anidar comentarios al estilo 'C'. Es muy fcil cometer este error cuando se intenta comentar un bloque grande de cdigo. <?php /* echo 'Esto es una prueba'; /* Este comentario causar un problema*/ */ ?>
alarma, es decir, el carcter BEL (07 hex) \cx "control-x", donde x es cualquier carcter \e escape (1B hex) \f salto de pgina (0C hex) \n nueva lnea (0A hex) \p{xx} un carcter con la propiedad xx, vase propiedades unicode para ms informacin \P{xx} un carcter sin la propiedad xx, vase propiedades unicode para ms informacin \r retorno de carro (0D hex) \t tabulador (09 hex) \xhh carcter con el cdigo hexadecimal hh \ddd
Booleanos Este es el tipo ms simple. Un boolean expresa un valor de verdad. Puede ser TRUE or FALSE. Sintaxis Para especificar un literal boolean, use alguna de las palabras clave TRUE o FALSE. Ambas son insensibles a maysculas y minsculas. <?php $foo = True; // asigna el valor TRUE a $foo ?> Usualmente, el resultado de un operador que devuelve un valor boolean es pasado a una estructura de control. <?php // == es un operador que prueba por // igualdad y devuelve un booleano if ($accion == "mostrar_version") { echo "La versin es 1.23"; } // esto no es necesario... if ($mostrar_separadores == TRUE) { echo "<hr>\n"; } // ...porque se puede escribir simplemente: if ($mostrar_separadores) { echo "<hr>\n"; } ?> Enteros Un entero o integer es un nmero del conjunto = {..., -2, -1, 0, 1, 2, ...}. Consulte tambien: Entero de longitud arbitraria / GMP Nmeros de punto flotante BCMath matemticas de precisin arbitraria Sintaxis Los integer pueden ser especificados mediante notacin decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2), opcionalmente precedidos por un signo (- o +). Los literales integer binarios estn disponibles desde PHP 5.4.0. Para usar la notacin octal, se antepone al nmero un 0 (cero). Para usar la notacin hexadecimal, se antepone al nmero un 0x. Para usar la notacin binaria, se antepone al nmero un 0b. Ejemplo #1 Enteros literales <?php $a = 1234; // nmero decimal
$a = -123; // un nmero negativo $a = 0123; // nmero octal (equivalente a 83 decimal) $a = 0x1A; // nmero hexadecimal (equivalente a 26 decimal) ?> Formalmente, la estructura de integer literales es: decimal : [1-9][0-9]* |0 hexadecimal : 0[xX][0-9a-fA-F]+ octal binario : 0[0-7]+ : 0b[01]+
Nmeros de punto flotante Los nmeros de punto flotante (tambin conocidos como "flotantes", "dobles" o "nmeros reales") pueden ser especificados usando cualquiera de las siguientes sintaxis: <?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?> Formalmente: LNUM [0-9]+ DNUM ([0-9]*[\.]{LNUM}) | ({LNUM}[\.][0-9]*) EXPONENT_DNUM [+-]?(({LNUM} | {DNUM}) [eE][+-]? {LNUM}) El tamao de un flotante depende de la plataforma, aunque un valor comn consiste en un mximo de ~1.8e308 con una precisin de aproximadamente 14 dgitos decimales (lo que es un valor de 64 bits en formato IEEE). Cadenas Un string es una serie de caracteres donde un caracter es lo mismo que un byte. Esto significa que PHP solo soporta el conjunto de 256 caracteres y por lo tanto no tiene soporte nativo Unicode. Ver detalles del tipo de dato string. Nota: string puede llegar a alcanzar 2GB de tamao. Sintaxis Un string literal puede ser especificado de cuatro formas diferentes: comillas simples comillas dobles sintaxis heredoc
sintaxis nowdoc (desde PHP 5.3.0) Comillas simples La manera ms sencilla de especificar un string es encerrarlo entre comillas simples (el caracter '). Para especificar una comilla simple literal, se escapa con una barra invertida ( \). Para especificar una barra invertida literal, se duplica (\\). Todas las otras instancias de barras invertidas sern tratadas como una barra invertida literal: esto significa que otras secuencias de escape que se puedan utilizar, tales como \r or \n, sern mostradas literalmente como se especifican en lugar de tener cualquier significado especial Nota: A diferencia de las sintaxis de comillas dobles y heredoc, las variables y las sentencias de escape para caracteres especiales no se expandirn cuando estn incluidas dentro de un string con comillas simples. <?php echo 'Esto es una cadena sencilla'; echo 'Tambien puede incluir nuevas lneas en cadenas de esta forma ya que es correcto hacerlo as'; // Resultado: Arnold una vez dijo: "I'll be back" echo 'Arnold una vez dijo: "I\'ll be back"'; // Resultado: Ha borrado C:\*.*? echo 'Ha borrado C:\\*.*?'; // Resultado: Ha borrado C:\*.*? echo 'Ha borrado C:\*.*?'; // Resultado: Esto no se expandir: \n una nueva lnea echo 'Esto no se expandir: \n una nueva lnea'; // Resultado: Las variables $tampoco se $expandiran echo 'Las variables $tampoco se $expandiran'; ?> Comillas dobles Si un string est encerrado entre comillas dobles ("), PHP interpretar ms sentencias de escape como caracteres especiales: Caracteres escapados Sentencia Significado \n avance de lnea (LF o 0x0A (10) en ASCII) \r retorno de carro (CR o 0x0D (13) en ASCII) \t tabulador horizontal (HT o 0x09 (9) en ASCII) \v tabulador vertical (VT o 0x0B (11) en ASCII) (desde PHP 5.2.5) \e escape (ESC o 0x1B (27) en ASCII) (desde PHP 5.4.0) \f avance de pgina (FF o 0x0C (12) en ASCII) (desde PHP 5.2.5)
Caracteres escapados Sentencia Significado \\ barra invertida \$ signo del dlar \" comillas dobles la secuencia de caracteres que coincida con la expresin regular es un \[0-7]{1,3} caracter en notacin octal \x[0-9A-Fala secuencia de caracteres que coincida con la expresin regular es un f]{1,2} caracter en notacin hexadecimal Al igual que en la delimitacin de un string mediante comillas simples, escapar cualquier otro caracter puede dar lugar a que se muestre tambien la barra invertida. Antes de PHP 5.1.1, la barra invertida en \{$var} no se mostraba. La caracterstica ms importante de entrecomillar un string mediante comillas dobles es el hecho que los nombres de las variables son expandidas. Consulte string parsing para ms detalles. Arrays Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado como una matriz real, una lista (vector), una tabla asociativa (una implementacin de un mapa), diccionario, coleccin, pila, cola, y posiblemente ms. Ya que los valores de un array pueden ser otros arrays, rboles y tambin son posibles arrays multidimensionales. Una explicacin sobre tales estructuras de datos est fuera del alcance de este manual, pero encontrar al menos un ejemplo de cada uno de ellos. Para ms informacin, consulte la extensa literatura que existe sobre este amplio tema. Objetos Inicializacin de Objetos Para crear un nuevo object, utilice la declaracin new para instanciar una clase: <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> Para una descripcin completa, vea el captulo Clases y Objetos. Conversin a un objeto Si un object se convierte en un object, ste no se ve modificado. Si un valor de cualquier otro tipo se convierte en un object, se crea una nueva instancia de la clase stdClass incorporada. Si el valor es NULL, la nueva instancia estar vaca. Los Arrays se
convierten en un object con propiedades nombradas por claves con sus correspondientes valores. Para cualquier otro valor, una variable miembro denominada scalar contendr el valor. <?php $obj = (object) 'ciao'; echo $obj->scalar; // muestra 'ciao' ?>
Recursos Un valor tipo resource es una variable especial, que contiene una referencia a un recurso externo. Los recursos son creados y usados por funciones especiales. Vea el apndice para un listado de todas estas funciones y los tipos resource correspondientes. Vea tambin la funcin get_resource_type(). Conversin a recurso Dado que las variables resource contienen gestores especiales a archivos abiertos, conexiones con bases de datos, reas de pintura de imgenes y cosas por el estilo, la conversin a tipo resource carece de sentido. Liberacin de recursos Gracias al sistema de conteo de referencias introducido con el Motor Zend de PHP 4, un recurso que ya no es referenciado es detectado automticamente, y es liberado por el recolector de basura. Por esta razn, rara vez se necesita liberar la memoria manualmente. <?php while($row = mysql_fetch_row($resource)){ echo $row[0] ; } ?> It's possible to fake this treatment. <?php class fakewhile{ public $arrayCount; public $arrayCounter; function setArrValues(){ $this->arrValues = array(0 =>array("apple","artichoke","apricot"),1 => array("bears","dogs","cats")); $this->arrayCounter = 0; $this->arrayCount = count($this->arrValues); }
function outputValues(){ /* * Anything until the if statement is evaluted one more * time then the array count value */ $arrayInfo = $this->arrValues; $arrCounter = $this->arrayCounter; if($arrCounter > $this->arrayCount){ return false; } $endCounter = $arrCounter+1; $this->arrayCounter = $endCounter; return $arrayInfo[$arrCounter]; } } $fw = new fakewhile(); $fw->setArrValues(); while($row = $fw->outputValues()){ print_r($row); } ?> NULO El valor especial NULL representa una variable sin valor. NULL es el nico valor posible del tipo null. Una variable es considerada null si: se le ha asignado la constante NULL. no se le ha asignado un valor todava. se ha destruido con unset(). Sintaxis No hay ms que un valor de tipo null, y es la constante NULL insensible a maysculas/minsculas. <?php $var = NULL; ?>
Llamadas de retorno Las llamadas de retorno se pueden indicar con el tipo callable a partir de PHP 5.4. Esta documentacin utiliz la informacin del tipo callback con el mismo propsito. Algunas funciones como call_user_func() o usort() aceptan como parmetro funciones de llamada de retorno definidas por el usuario. Las funciones de llamadas de retorno no slo pueden ser funciones simples, sino tambin mtodos de un object, incluyendo mtodos de clase estticos. Pasar una funcin de llamada de retorno Una funcin de PHP se pasa por su nombre como un string. Se puede utilizar cualquier funcin nativa o definida por el usuario, exceptuando contrucciones del lenguaje, tales como: array(), echo, empty(), eval(), exit(), isset(), list(), print o unset(). Un mtodo de un object instanciado se pasa como un array que contiene un object en el ndice 0 y el nombre del mtodo en el ndice 1.
Los mtodos de clase estticos tambin se pueden pasar sin instanciar un object de dicha clase, pasando el nombre de la clase en lugar de un object en el ndice 0. A partir de PHP 5.2.3, tambin es posible pasar 'NombreDeClase::nombreDeMetodo'. Adems de las funciones definidas por el usuario normales, tambin se puede utilizar la funcin create_function() para crear funciones de llamadas de retorno annimas. A partir de PHP 5.3.0 tambin es posible pasar una clausura a un parmetro de una llamada de retorno. Ejemplo #1 Ejemplos de funciones de llamadas de retorno <?php // Un ejemplo de funcin de llamada de retorno function mi_funcin_de_llamada_de_retorno() { echo 'hola mundo!';} // Un ejemplo de mtodo de llamada de retorno class MiClase { static function miMtodoDeLlamadaDeRetorno() { echo 'Hola Mundo!'; }} // Tipo 1: Llamada de retorno simple call_user_func('mi_funcin_de_llamada_de_retorno'); // Tipo 2: Llamada a un mtodo de clase esttico call_user_func(array('MiClase', 'miMtodoDeLlamadaDeRetorno')); // Tipo 3: Llamada al mtodo de un objeto $obj = new MiClase(); call_user_func(array($obj, 'miMtodoDeLlamadaDeRetorno')); // Tipo 4: Llamada a un mtodo de clase esttico (A partir de PHP 5.2.3) call_user_func('MiClase::miMtodoDeLlamadaDeRetorno'); // Tipo 5: Llamada a un mtodo de clase esttico relativo (A partir de PHP 5.3.0) class A { public static function quin() { echo "A\n"; } } class B extends A { public static function quin() { echo "B\n"; } }
call_user_func(array('B', 'parent::quin')); // A ?> mixed mixed indica que un parmetro puede aceptar mltiples tipos (pero no necesariamente todos). gettype(), por ejemplo, puede aceptar todos los tipos PHP, mientras que str_replace() slo acepta strings y arrays. number number indica que un parmetro puede ser tanto un integer como un float. Llamada de retorno Los pseudo-tipos callback fueron usados en est documentacin antes de que la sugerencia de tipo callable fuera introducida en PHP 5.4. Significan exactamente lo mismo. void void como un tipo de variable de retorno significa que el valor de retorno no es til. void en una lista de parmetros significa que la funcin no acepta ningn parmetro. ... $... en el prototipo de funciones significa and so on. Este nombre de variable se usa cuando una funcin puede tomar un nmero infinito de argumentos.
Para usar variables variables con matrices, hay que resolver un problema de ambigedad. Si se escribe $$a[1] el intrprete necesita saber si nos referimos a utilizar $a[1] como una variable, o si se pretenda utilizar $$a como variable y el ndice [1] como ndice de dicha variable. La sintaxis para resolver esta ambigedad es: ${$a[1]} para el primer caso y ${$a}[1] para el segundo. Tambin se puede acceder a las propiedades de la clase usando el nombre de la variable de la propiedad. El nombre de la propiedad ser resuelto segn donde se hizo la llamada. Por ejemplo, en esta expresin $foo->$bar, de forma local en la clase se buscar por $bar y su valor ser usado como el nombre de la propiedad de $foo. Esto tambin es cierto si $bar es un acceso a un array. Tambin se pueden usar llaves para delimitar de forma clara el nombre de la propiedad. Son muy tiles al acceder a valores dentro una propiedad que contiene un array, cuando el nombre de la propiedad est compuesto de mltiples partes, o cuando el nombre de la propiedad contiene caracteres que de otro modo no son vlidos (p.ej. desde json_decode() o SimpleXML). Ejemplo #1 Ejemplo de propiedad variable <?php class foo { var $bar = 'Soy bar.'; var $arr = array('Soy A.', 'Soy B.', 'Soy C.'); var $r = 'Soy r.'; } $foo = new foo(); $bar = 'bar'; $baz = array('foo', 'bar', 'baz', 'quux'); echo $foo->$bar . "\n"; echo $foo->$baz[1] . "\n"; $start = 'b'; $end = 'ar'; echo $foo->{$start . $end} . "\n"; $arr = 'arr'; echo $foo->$arr[1] . "\n"; echo $foo->{$arr}[1] . "\n"; ?> El resultado del ejemplo sera: Soy bar. Soy bar. Soy bar. Soy r. Soy B.
Arrays
Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Este tipo es optimizado para varios usos diferentes; puede
ser usado como una matriz real, una lista (vector), una tabla asociativa (una implementacin de un mapa), diccionario, coleccin, pila, cola, y posiblemente ms. Ya que los valores de un array pueden ser otros arrays, rboles y tambin son posibles arrays multidimensionales. Una explicacin sobre tales estructuras de datos est fuera del alcance de este manual, pero encontrar al menos un ejemplo de cada uno de ellos. Para ms informacin, consulte la extensa literatura que existe sobre este amplio tema. Sintaxis Especificacin con array() Un array puede ser creado usando el constructor del lenguaje array(). ste toma un cierto nmero de parejas clave => valor como argumentos. array( clave => valor, clave2 => valor2, clave3 => valor3, ... ) La coma despus del elemento del array es opcional y se puede omitir. Esto normalmente se hace para arrays de una sola lnea, esto es, es preferible array(1, 2) que array(1, 2, ). Por otra parte, para arrays multilnea, la coma final se usa comnmente, ya que permite la adicin sencilla de nuevos elementos al final. A partir de PHP 5.4 tambin se puede usar la sintaxis de array corta, que reemplaza array() con []. Ejemplo #1 Un array simple <?php $array = array( "foo" => "bar", "bar" => "foo", ); // a partir de PHP 5.4 $array = [ "foo" => "bar", "bar" => "foo", ]; ?> La clave puede ser un integer o un string. El valor puede ser de cualquier tipo. VARIABLES PREDEFINIDAS EN PHP.. Variables predefinidas PHP proporciona una gran cantidad de variables predefinidas para todos los scripts. Las variables representan de todo, desde variables externas hasta variables de entorno incorporadas, desde los ltimos mensajes de error hasta los ltimos encabezados recuperados. Vase tambin la pregunta frecuente titulada "Cmo me afecta register_globals?" Superglobals Superglobals son variables internas que estn disponibles siempre en todos los mbitos
$GLOBALS Hace referencia a todas las variables disponibles en el mbito global $_SERVER Informacin del entorno del servidor y de ejecucin $_GET Variables HTTP GET $_POST Variables HTTP POST $_FILES Variables de Carga de Archivos HTTP $_REQUEST Variables HTTP Request $_SESSION Variables de sesin $_ENV Variables de entorno $_COOKIE Cookies HTTP $php_errormsg El ltimo mensaje de error $HTTP_RAW_POST_DATA Datos POST sin tratar $http_response_header Encabezados de respuesta HTTP $argc El nmero de argumentos pasados a un script $argv Array de argumentos pasados a un script
FORMULARIOS EN PHP
Otra de las caractersticas ms importantes de PHP es que gestiona formularios HTML. El concepto bsico que es importante entender es que cualquier elemento de los formularios estar disponible automticamente en su cdigo PHP. Por favor lea la seccin del manual titulada Variables fuera de PHP para ms informacin y ejemplos sobre cmo usar formularios HTML con PHP. Observemos un ejemplo: Ejemplo #1 Un formulario HTML simple <form action="accion.php" method="post"> <p>Su nombre: <input type="text" name="nombre" /></p> <p>Su edad: <input type="text" name="edad" /></p> <p><input type="submit" /></p> </form> No hay nada especial en este formularo, es solamente HTML sin ninguna clase de etiquetas especiales de ningn tipo. Cuando el usuario rellena ste formulario y oprime el botn Submit, una pgina titulada accion.php es llamada. En este archivo encontrar algo as: Ejemplo #2 Imprimir informacin desde nuestro formulario Hola <?php echo htmlspecialchars($_POST['nombre']); ?>. Tu tienes <?php echo (int)$_POST['edad']; ?> aos. Un ejemplo del resultado de esta secuencia de comandos puede ser: Hola Prez . Tu tienes 55 aos.
Por lo tanto las variables son definidas al mismo tiempo que las mandamos. Veamos un ejemplo: <a href="bienvenida.php?var1=Hola, &var2=Bienvenido a esta pgina."> pgina de bienvenida</a> Este es un enlace hacia la pgina "bienvenida.php" que est en la misma carpeta que la pgina de envio. En este enlace mandamos dos variables, la variable $var1="Hola " y la variable $var2="Bienvenido a esta pgina.". Recoger datos en pgina de destino La segunda parte consiste en recoger las variables en la pgina de destino. Estas son traspasadas mediante el mtodo GET por lo que para recogerlas utilizaremos la variable del tipo $_GET['variable1']. En el ejemplo anterior, en la pgina "bienvenida.php" (pgina de destino) pondremos el siguiente cdigo para que aparezcan en pantalla: <?php $v1=$_GET['var1']; $v2=$_GET['var2']; echo $v1.$v2; ?> Mediante este mtodo creamos la variable a la vez que el enlace, por lo que no podemos pasar variables que tenamos creadas anteriormente, ya que el valor de stas no es reconocido en el valor que ponemos en el enlace. veamos cual es la solucin: Pasar variables ya definidas. Supongamos que en una pgina definimos una variable: $saludo="Hola a todos."; Una vez que est definida queremos mandarla a otra pgina mediante un enlace. No podemos escribir el enlace directamente con la expresin: <a href="destino,php?saludo=$saludo">Recibir saludo</a> Lo que recibiremos en la pgina de destino es una variable cuyo valor ser la palabra "$saludo", y no el contenido de la variable. para solucionar esto, debemos mandar el enlace dentro del cdigo PHP, como una instruccin hecho; es decir en la pgina de envo para mandar el enlace escribiremos: <?php echo "<a href='destino,php?saludo=$saludo'>Recibir saludo</a>"; ?> Ahora el valor de la variable que mandamos ser en la pgina de destino el mismo que el de la pgina de origen, por lo que si lo cambiamos en la pgina de origen, cambiar tambin en la de destino. Ejemplo de paso de variables Veamos cmo queda el ejemplo anterior: En la pgina de envo : "envio.php", escribimos las variables y las mandamos mediante un enlace. Esta es la pgina de envo; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html>
<head> <title>Pgina de envo</title> </head> <body> <h1>Envo de variables a otra pgina.</h1> <?php $a="Hola, "; $b="bienvenido a mi pgina"; echo "Enviar las siguientes variables:<br/>"; echo "\$a = $a <br/>"; echo "\$b = $b <br/>"; ?> <p>Pulsar el siguiente enlace</p> <?php echo "<a href='destino.php?a=$a&b=$b'>Enviar variables</a>"; ?> </body> </html> En la pgina de destino recibiremos las variables mediante el mtodo GET y las sacamos en pantalla: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title>pgina de destino</title> </head> <body> <h1>Al abrir esta pgina se han pasado las siguientes variables:</h1> <?php $a=$_GET['a']; $b=$_GET['b']; echo "<p>variable \$a : $a"; echo "<p>variable \$b : $b"; ?> </body> </html>