Manual PHP
PHP (case sensitive -> SIEMPRE EN MINUSCULAS)
---
HOLA MUNDO EN PHP
<html> <head></head><body>
<?php echo "Hola"; ?>
</body>
</html>
COMENTARIOS
//, # -> una linea
/* */ -> varias lineas
SOBRE LAS VARIABLES
Llevan un "$" delante (al declararlas y a lo largo del programa).
A pesar de que se pueden mezclar variables de distinto tipo, conviene saber que se pueden pasar de un tipo a otro con
la funcion:
setType($variable, "nuevo_tipo");
donde "nuevo_tipo" puede ser "integer", "double", "string", "array" y "object".
Tambien se puede forzar una varible en un momento puntual con:
CREACION DE VARIABLES
$variable = "23";
$variable = (int) $variable;
$a=3; // crea una variable de tipo entero
$cadenita="oeoeoeoeoe"; // crea una variable de string.
Un array:
$sentido[1]="ver" // crea un array.
$sentido[2]="tocar";
$sentido[3]="oir";
$sentido[4]="gusto";
$sentido[5]="oler";
VARIABLES ASIGNADAS ( "PASADAS" :) ) POR REFERENCIA
Se antepone el simbolo "&" a la variable.
$foo = 'Bob'; // Asigna el valor 'Bob' a $foo
$bar = &$foo; // Referencia $foo vía $bar.
$bar = "Mi nombre es $bar"; // Modifica $bar... (OJO A ESTA LINEA, una variable dentro de una cadena!!!!!!!)
echo $foo; // $foo también se modifica.
echo $bar;
VARIABLES DE SISTEMA EN PHP (OJO: son simples "VARIABLES")
Son una serie de variables que nos informan sobre el cliente o sobre el servidor donde se ejecuta el codigo.
$HTTP_USER_AGENT
nos informa principalmente sobre el SISTEMA OPERATIVO y el NAVEGADOR (cual y version) utilizado por el
internauta. Su principal utilidad radica en que, a partir de esta información, podemos REDIRECCIONAR A NUESTROS USUARIOS
HACIA PAGINAS OPTIMIZADAS PARA SU NAVEGADOR.
$HTTP_ACCEPT_LANGUAGE -> info sobre la lengua principal del navegador -> enviar al usuario a paginas escritas en su lengua
nos devuelve la/s abreviacion/es de la lengua considerada como principal por el navegador. Esta lengua o lenguas
principales pueden ser elegidas en el menú de opciones del navegador. Esta variable resulta también extremadamente útil
para enviar al internauta a las páginas escritas en su lengua, si es que existen.
$HTTP_REFERER -> nos indica la URL desde la cual el internauta ha tenido acceso a la página. Muy interesante para
generar botones de "Atrás" dinámicos o para crear nuestros propios sistemas de estadísticas de visitas.
$PHP_SELF -> nos devuelve una cadena con la URL del script que está siendo ejecutado. Muy interesante para crear botones
para recargar la página.
$HTTP_GET_VARS -> se trata de un ARRAY que almacena los NOMBRES y CONTENIDOS de las variables enviadas al script por
URL o por formularios GET.
$HTTP_POST_VARS -> se trata de un ARRAY que almacena los NOMBRES y CONTENIDOS de las variables enviadas al script por
medio de un formulario POST.
$HTTP_COOKIE_VARS -> Se trata de un ARRAY que almacena los NOMBRES y CONTENIDOS de las cookies. Veremos qué son más
adelante.
$PHP_AUTH_USER y $PHP_AUTH_PW -> almacenan la variable password y la variable usuario cuando se efectúa la entrada
a páginas de acceso restringido. Combinado con $PHP_AUTH_USER resulta ideal para controlar el acceso a las páginas
internas del sitio.
$REMOTE_ADDR -> muestra la dirección IP del visitante.
$DOCUMENT_ROOT -> nos devuelve el path físico en el que se encuentra alojada la página en el servidor.
$PHPSESSID -> guarda el identificador de sesión del usuario. Veremos más adelante en qué consisten las sesiones.
VARIABLES SUPERGLOBALES (tambien son "variables del sistema", como las anteriores)
Son unas variables de tipo array, que mantienen informacion del sistema. Se llaman "superglobales" porque se definen
automaticamente en un ambito global.
Son las siguientes (SON TODOS ARRAYS!!!):
$GLOBALS -> contiene una referencia a cada variable disponible en el espectro de las variables del script. Las
llaves de esta matriz son los nombres de las variables globales. $GLOBALS existe dese PHP 3.
$_SERVER -> Variables definidas por el servidor web ó directamente relacionadas con el entorno en don el script
se esta ejecutando. Análoga a la antigua matriz $HTTP_SERVER_VARS (la cual está todavía disponible, aunque no se use).
$_GET -> Variables proporcionadas al script por medio de HTTP GET. Análoga a la antigua matriz $HTTP_GET_VARS (la cual está
todavía disponible, aunque no se use).
$_POST -> Variables proporcionadas al script por medio de HTTP POST. Análoga a la antigua matriz $HTTP_POST_VARS
(la cual está todavía disponible, aunque no se use).
$_COOKIE -> Variables proporcionadas al script por medio de HTTP cookies. Análoga a la antigua matriz
$HTTP_COOKIE_VARS (la cual está todavía disponible, aunque no se use).
$_FILES -> variables proporcionadas al script por medio de la subida de ficheros via HTTP . Análoga a la antigua
matriz $HTTP_POST_FILES (la cual está todavía disponible, aunque no se use). Vea también Subiendo ficheros por método
POST para más información.
$_ENV -> Variables proporcionadas al script por medio del entorno. Análoga a la antigua matriz $HTTP_ENV_VARS (la
cual está todavía disponible, aunque no se use).
$_REQUEST -> Variables proporcionadas al script por medio de cuaquier mecanismo de entrada del usuario y por lo tanto
no se puede confiar en ellas. La presencia y el orden en que aparecen las variables en esta matriz es definido por la
directiva de configuración variables_order. Esta matriz no tiene un análogo en versiones anteriores a PHP 4.1.0. Vea
también import_request_variables().
$_SESSION -> Variables registradas en la sesión del script. Análoga a la antigua matriz $HTTP_SESSION_VARS (la cual
está todavía disponible, aunque no se use). Vea también la sección Funciones para el manejo de sessiones para más
información.
AMBITO DE LAS VARIABLES (variables locales y globales)
Hay dos tipos de variables: locales y globales.
- Las locales tiene como ambito exclusivo el interior de una funcion.
- Las globales no se pueden usar dentro de las funciones salvo que usemos un par de truquillos:
A) A traves del array $GLOBALS.
Supongamos esta variable declarada de manera global:
$variable="juan"
Para llamarla dentro de una funcion hay que hacer esto:
function mifuncion(){
echo $GLOBALS["variable"] // muestra el contenido de "variable" por pantalla.
}
B) Poniendo la palabra "global" antes de las variables globales. Esto es:
function mifuncion(){
global $mivariable,
echo $mivariable;
}
CREACION DE TABLAS (o sea "arrays multidimensionales" o un "array de arrays") POR MEDIO DE VARIABLES TIPO ARRAY
(tema 14 de http://www.desarrolloweb.com/manuales/12/ )
Esto son arrays unidimensionales ("sentidos" y "monedas"):
$sentido[0]="oido"; $moneda["espana"]="Peseta";
$sentidos[1]="gusto"; $moneda["EEUU"]="Dolar";
... ...
Otra forma de definir el array unidimensional de la derecha ( ARRAY ASOCIATIVO) es esta:
$moneda=array("españa"=>"Peseta", "EEUU"=> "Dolar"); // los ARRAYS ASOCIATIVOS son los que utilizan
// cadena de caracteres como indices.
Para crear una TABLA ( se llamará "pais" y contendrá el nombre, la moneda y la lengua hablada ) :
<?
$pais=array
(
"espana" =>array
(
"nombre"=>"España",
"lengua"=>"Castellano",
"moneda"=>"Peseta"
), //OJO con la coma de esta linea.
"francia" =>array
(
"nombre"=>"Francia",
"lengua"=>"Francés",
"moneda"=>"Franco"
)
);
echo $pais["espana"]["moneda"] //Imprime "Peseta".
?>
FUNCIONES PARA EL MANEJO DE ARRAYS O TABLAS? (tema 14 de http://www.desarrolloweb.com/manuales/12/ )
array_values(mi_array) -> lista los valores contenidos en "mi_array".
asort(mi_array) / arsort(mi_array) -> ordena por orden alfabetico directo o inverso EN FUNCION DE LOS VALORES.
count(mi_array) -> devulve el numero de elementos de "mi_array".
ksort(mi_array) / krsort(mi_array) -> ordena por orden alfabetico directo o inverso EN FUNCION DE LAS CLAVES.
list($variable1, $variable2...) = mi_array -> asigna cada una de las variables a cada uno de los valores del array.
next(mi_array) / prev(mi_array) / reset(mi_array) / end(mi_array) -> nos permite movernos por dentro del array con un
puntero hacia delante, atras, al principio y al
final.
each(mi_array) -> nos da el valor y la clave del elemento en el que nos encontramos y mueve al puntero al siguiente elemento.
foreach -> recorre el array de principio a fin. El ejemplo de aqui abajo imprime los elementos del array "entrada".
$entrada = array ("Miguel", "Pepe", "Juan", "Julio", "Pablo");
foreach ($entrada as $actual)
echo $actual . "<br>";
MAS FUNCIONES PARA EL MANEJO DE ARRAYS ( tema 15 de http://www.desarrolloweb.com/manuales/12/)
array_slice( mi_array, elemento a partir del que se borrarán elementos, nº de elementos que se borrarán)
Elimina elementos de un array, si no ponemos el ultimo parametro, se borraran todos los elementos hasta el final
del array.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
array_shift( $mi_array ) -> devuelve el primer elemento del array y lo elimina del array.
$mi_array=("Espana", "Korea", "Francia");
$array_salida=array_shift($mi_array);
echo "El primer elemento de mi_array era: " . $array_salida . "<br>";
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
unset( ) -> se usa para destruir una variable dada. En el caso de los arreglos, se puede utilizar para eliminar una
casilla de un ARRAY ASOCIATIVO (vemos un ejemplo de como crear una aqui abajo, pero vamos que son los que no tienen
indices numericos sino que su indice es una cadena de caracteres).
$ estadios_futbol = array( "Barcelona"=>"Nou Camp" , "Real Madrid"=>"Santiago Bernabeu" );
unset( $estadios_futbol["Real Madrid"] );
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
array_push( $mi_array, "elemento1", "elemento2", ...) -> permite añadir elementos al final de un array.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
array_merge( $mi_array1, $mi_array2, ...) -> une dos o mas arrays.
$mi_array1 = array( "Perro", "Gato");
$mi_array2 = array( "Vaca, Buey");
$resultado = array_merge ($mi_array1 , $mi_array2);
CADENAS (http://www.desarrolloweb.com/articulos/311.php)
$cadena = "Esto es una cadena";
$cadena1="Perro";
$cadena2=" muerde";
$cadena3=$cadena1.$cadena2; // El "." concatena cadenas.
$a=55;
$mensaje="Tengo $a años"; // Se puede introducir variables dentro de una cadena.