Diferencia entre revisiones de «Usuario:ManuelRomero/PHP/Resumen»
De WikiEducator
< Usuario:ManuelRomero | PHP
(→Cookies) |
|||
Línea 345: | Línea 345: | ||
*Lo escribe un servidor concreto en un cliente concreto (una ip de un navegador ) | *Lo escribe un servidor concreto en un cliente concreto (una ip de un navegador ) | ||
*Estos ficheros son parejas variable-valor | *Estos ficheros son parejas variable-valor | ||
+ | *Es importante tener claro | ||
+ | #quién escribe la cookie (el servidor) | ||
+ | #donde la escribe (en el cliente : una ip en un navegador) | ||
+ | #qué escribe (una pareja variable = valor p.e. nombre = "maria") | ||
+ | #cuando la tendré displible y como. En la superglobal $_COOKIE['nombre_variable'], el servidor la recibe la próxima vez que el cliente acceda a él. | ||
+ | Recuerda como operar con ellas | ||
+ | ;Escribir una coockie: esta acción escribirá una cookie en el cliente | ||
+ | <source lang=php> | ||
+ | ..... | ||
+ | setCookie("nombre", "maria",time()+3600); | ||
+ | //Escribo una cookie con la pareja nombre = maria y una duracción de 3600 segundos | ||
+ | //Recuerda que la duracción es a partir de este instante time() | ||
+ | //Si no establezco este parámetro o pongo 0, la cookie durará lo que dure la sesión. | ||
+ | </source> | ||
+ | |||
+ | ;Leer una coockie: | ||
+ | <source lang=php> | ||
+ | ..... | ||
+ | |||
+ | $nombre = $_COOKIE['nombre']; | ||
+ | //Esta acción almacenará en la variable $nombre el valor de la cookie, siguiendo con el ejemplo almacenará maría. | ||
+ | </source> | ||
+ | |||
+ | ;Borrar una cookie | ||
+ | *Tendré que escribirla con un tiempo negativo | ||
+ | <source lang=php> | ||
+ | ..... | ||
+ | setCookie("nombre", "maria",time()-1); | ||
+ | //Esta acción tendrá el efecto de borrar o anular la cookie | ||
+ | </source> | ||
===Sesiones=== | ===Sesiones=== |
Revisión de 21:22 13 mar 2015
Contenido
Instalación
- Apache
- php
- mysql
- netbeans
- java
- debug
Sintaxis básica
- Código embebido
<?php ..... ?>
- En un mismo fichero puedo abrir y cerrar etiquetas
- El comportamiento es como si todo es un fichero, que es lo que es
<?php $titulo= "El título de la página " $trozosCodigo =0; ?> <source lang=php> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Probando cosas con título <?php echo $titulo; $trozosCodigo++;?></title> </head> <body> <?php echo "Otro trozo de código php "; $trozosCodigo+; ?> </body> <?php $trozosCodigo+; echo "En total hay $trozosCodigo de código;"; ?> </html>
- Variables
- Identificadores que empiezan por $
<?php $variable = "valor"; ?>
- Lenguaje fuertemente tipado de declaración dinámica
- 5 tipos básicos
- Los tipos pueden cambiar en cualquier momento
<?php $a= 5; // $a de tipo entero $a="maria"; // $a de tipo string $a=true; // $a de tipo booleano $a=5.5; // $a de tipo float $a=null; // $a de tipo null ?>
Array
- Son estructuras o colecciones de alguna manera ordenadas de valores de cualquier tipo
- Existen muchas funciones para trabajar con ellas
- Definirlo
<?php $miArray = array();//Crea un array vacío $otroArray = array("Maria", "Luis", "Pedro", "Marta", "Carol"); $otroArrayVacio = []; $array4 = [1,5,4,3,2]; ?> <7source> ;Añadir elementos después del último que hubiera <source lang=php> <?php $miArray[] =10 ; $otroArray[] = "Marga"; $otroArrayVacio[] =8; $array4 []=15; ?>
- Añadir elementos en una posición concreta
<?php $miArray[5] =10 ; //El próximo elemento se añadirá en la posicón 6 aunque solo haya 2 elementos $otroArray[2] = "Marga"; //Si ya existiera la posición 2 se sustituiría $otroArrayVacio[10] =8; $array4 [1]=15; ?>
- Eliminar una posición del array
- Se usa la conocida función unset(...)
- Por ejemplo eliminar las posición previamente añadidas
- Añadir elementos en una posición concreta
<?php unset($miArray[5]); //Elimina el elemento de la posicón 6 Si fuera el último el siguiente que añadamos sin indexar cubrirá esa posición, si no se dejará un hueco unset($otroArray[2]); unset($otroArrayVacio[10]); unset($array4 [1]); ?>
- Funciones que más hemos usado con array
count($array) o size($array)
- Nos dice el número de elementos de un array, que no tiene porqué coincidir con el siguiente elemento a añadir.
- Tipos de array
- Es importante tener clara la diferencia entre array asociativo y array indexado
- Ambos casos son colección de elementos por que son array
- Se diferencian en la forma que voy a indicar cada posición de los diferentes elementos
- indexado
- La posición de cada elemento la especifico con un número
$misNotasIndexado =[6,7,8,7,6,7,8,7];
- Es igual que hacer
$misNotasIndexado =[0=>6,1=>7,2=>8,3=>7,4=>6,5=>7,6=>8,7=>7];
- asociativo
- La posición de cada elemento la especifico con una cadena de caracteres
- En este caso a la hora de insertar un array, hay que especificar obligatoriamente en valor del índice
$misNotasAsociativo =["maria"=>6,"ana"=>7,"nieves"=>8,"luis"=>7,"ester"=>6,"carlos"=>7,"pedro"=>8,"nieves"=>7];
- Recorrer un array foreach(....)
- Hay diferentes maneras de recorre un array, pero esta estructura es la más cómoda
- La forma de interpretarla narrativamente sería
para el array $misNotasIndexado coge cada elemento y almacénalo en $nota
foreach ($misNotasIndexado as $nota){ echo "Valor de la nota : $nota"; }
- También podría acceder a los índices
para el array $misNotasIndexado coge cada indice y guardalo en $indice y cada elemento de esa posición y almacénalo en $nota
foreach ($misNotasIndexado as $indice => $nota){ echo "Valor de la nota $indice : $nota"; }
- En el caso de arrays asociativo nos interesará la mayoría de las veces acceder al valor del índice y del elemento
para el array $misNotasAsociativo coge cada indice y guardalo en la variable $persona y cada elemento de esa posición y almacénalo en $nota
foreach ($misNotasAsociativo as $persona => $nota){ echo "Valor de la nota $persona : $nota"; }
- Es importante marcar que las variables $indice, $persona o $nota, son variables que creamos nosotros y pueden lógicamente tener cualquier nombre
Estructuras de control
- Ya sabemos que hay 3 tipos de estructuras de control
- selectivas
if (expresión_booleana) { instrucciones a ejecutar en el caso de que expresión_booleana retorne true Si solo hubiera una instrucción podemos omitir las llaves }else{ instrucciones a ejecutar en el caso de que expresión_booleana retorne false Esta parte no es obligatoria }
- Tenemos también el llamado selector múltiple
switch $variable{ case valor1 : //instrucciones break; case valor2 : //instrucciones break; // ....... default: //instrucciones_default break; }
- Recordad que si no ponemos el braek, se ejecutarán todos los case hasta encontrar un break o fin del switch
- La sección default es opcional y se entrará en ella si no hay coincidencia previa
- Lo que se hace en cada case es mirar a ver si el valor de la variable coincide
- bucle
- Como ya sabemos tenemos tres tipos
- El bucle clásico
- Recordemos las tres reglas de hora (inicializar, comparar correctamente, actualizar).
while (expresion_booleana){ //instrucciones }
- El bucle contador
- Ponemos un ejemplo que se va incrementando la variable de 11
- Podemos mocificar cada una de las tres partes del for
for ($var = valor_inicial; $var < valor_final; $var++){ //instrucciones }
- El bucle que ejecuta una iteración segurao
do{ //instrucciones }while (expresion_booleana);
- Observar que en este caso al final va un ; pues separamos de la siguiente instrucción
- Secuenciales
- Son instrucciones que van una detrás de otra
- Usamos el ; para separar una de otra
//instruccion de asignacion $variable = valor o expresion ; //instruccion de invocacion funcion del sistema o creada por nosotros mail ($destino, $submit, $mensaje, $from) ; //instruccion de escribir echo "hola valientes y entusiastas de la programacion"; //instruccion de lectura $variable = $_POST['variable']; //instruccion de inicio fin de bloque en este caso sin punto y coma { }
Leer valores
- Para leer valores necesitamos un formulario (no es la única forma pero si la más usada)
- Otras maneras leer de ficheros por ejemplo
- La idea es que al hacer una solicitud web vienen también todos los contenidos de los diferentes input de un formulario
- form
<form action="ficheroPhpAEjecutar.php" method="POST" <input type = "text|radio| ..." name="id_para_leer_en_php" value ="valor_por_defecto" <input type=submit value="enviar"> <form>
- Recordad los atributos importantes
- El name de los input es la forma de leer en servidor
- Cuando hacemos click en el submit es cuando invocamos al fichero especificado
- leer
$variable =$_POST["id_para_leer_en_php"] ; $variable =$_GET["id_para_leer_en_php"] ; $variable =$_REQUEST["id_para_leer_en_php"] ; $variable = intput_filter (INPUT_POST, "id_para_leer_en_php", FILTER.....) ; $variable = intput_filter (INPUT_GET, "id_para_leer_en_php", FILTER.....) ;
- Si pasamos un filtro, no podemos leer arrays.
- Siempre leeremos como una cadena de caracteres
Escribir mensajes
echo"texto ", "mas texto, " tercer parámetro mas texto"; print "solo puedo leer con un parámetro"; printf ("Este me permite escribir con formato usando \%);
Expresiones
- PHP es un lenguaje orientado a expresiones
- Esto quiere decir que en php todo se consideran expresiones
- una expresión es un conjunto de valores (operadorandos) y operadores
- Los operadores actúan sobre los operandos y obtengo un valor como resultado de evaluar y realizar los cálculos de la expresión
Expresiones de asignación
- Dan como resultado el valor que asigno
$a = 5; echo "Quiero ver el valor de esta expresion ".$a=5; //Veré que me imprime 5
Expresiones aritméticas
- Dan como resultado el cálculo obtenido
$b = ($a+5*$c-8 /5)%3// .... (+-*/%)
Expresiones booleanas
- Esta expresión da como resultado un valor true o false
- Puenden ser de dos tipos
comparación
- <, > <=, >=, !=, ==, ===, !==
- Hay qu tener cuidado con la igualdad de valor (==) y la igualdad de valor y tipo (===)
$a = 10; if ($a == true) echo "Esto es cierto porque $a se adapta a true"; if ($a === true) echo "Esto es false porque $a se adapta a true"; $a = "pedro" if ($a == true) echo "Esto es cierto porque $a no es nulo y al transformar en booleano se toma como true"; if ($a === true) echo "Esto no es cierto ya que $a no es true ya que es de tipo string y no booleano ";
- Ver la siguiente tabla para mas detalle
http://php.net/manual/es/types.comparisons.php
lógicas
- and && or || xor
Funciones
- Escribir con un nombre un conjunto de instrucciones
- Una vez descrita la puedo invocar donde quira
- Solo las variables internas definidas como global las puedo utilizar fuera de la función con el valor que ésta hubiera dejado
- parámetros: una función adminte parámetros que son los valores con los que la función puede operar
- Estos valores son pasados cuando invocamos a la función
.... function miFuncion ( $param_valor1, $param_valor2){ echo "valor de los parámetros : $param_valor1, $param_valor2"; } miFuncion(54, 86); //En este caso se imprimirá: '''''valor de los parámetros : 54, 86 '''''
- Pueden tener un valor por defecto, en cuyo caso si no paso valor cuando la invoque se toma ese valor
.... function miFuncion ( $param_valor1 = 1, $param_valor2 = 1){ echo "valor de los parámetros : $param_valor1, $param_valor2"; } miFuncion(54); //La invoco solo con un parámetro //En este caso se imprimirá: '''''valor de los parámetros : 54, 1 '''''
- return, en un momento dado la función puede devolver un valor
.... function calculaMayor ( $p1, $p2){ if ($p1> $p2) return $p1; else return $p2; } $mayor = calculaMayor(58, 45); echo "El mayor es $mayor);
Cookies
- son ficheros que se guardan el el cliente
- Lo escribe un servidor concreto en un cliente concreto (una ip de un navegador )
- Estos ficheros son parejas variable-valor
- Es importante tener claro
- quién escribe la cookie (el servidor)
- donde la escribe (en el cliente : una ip en un navegador)
- qué escribe (una pareja variable = valor p.e. nombre = "maria")
- cuando la tendré displible y como. En la superglobal $_COOKIE['nombre_variable'], el servidor la recibe la próxima vez que el cliente acceda a él.
Recuerda como operar con ellas
- Escribir una coockie
- esta acción escribirá una cookie en el cliente
..... setCookie("nombre", "maria",time()+3600); //Escribo una cookie con la pareja nombre = maria y una duracción de 3600 segundos //Recuerda que la duracción es a partir de este instante time() //Si no establezco este parámetro o pongo 0, la cookie durará lo que dure la sesión.
- Leer una coockie
..... $nombre = $_COOKIE['nombre']; //Esta acción almacenará en la variable $nombre el valor de la cookie, siguiendo con el ejemplo almacenará maría.
- Borrar una cookie
- Tendré que escribirla con un tiempo negativo
..... setCookie("nombre", "maria",time()-1); //Esta acción tendrá el efecto de borrar o anular la cookie