Especialista Web J9 Php
-
Upload
moises-cid-deza -
Category
Technology
-
view
2.610 -
download
0
description
Transcript of Especialista Web J9 Php
PHP PHP Hipertext Preprocessor
Inicialmente en 1994: Personal Home Page
Lenguaje Open Source
Basado en C y C++
Multiplataforma (GNU/Linux, Windows, Mac)Independiente del Sistema Operativo Portable
Muy bien documentado http://www.php.net/
PHP Usado en mas de 20 millones de dominios
PHP Es un lenguaje de scripts que se ejecuta del lado
del servidor
Los scripts PHP están incrustados en los documentos html
El servidor los interpreta (procesa) y ejecuta antes de enviar las páginas al cliente
El cliente no ve el código PHP, sólo el código que produce
Estructura similar a ASP, JSP, CGI… Muy estandarizado en el uso con Apache y MySQL
PHP
PHP Primer ejemplo con php
<html>
<head>
<title>PHP – Hello World</title>
</head>
<body>
<?php
echo "Hello World!";
?>
</body>
</html>
PHP Los script php se colocan entre
<?php //apertura?> //cierre
La mayoría de las instrucciones finalizan con “;”
Sentencia básicaecho “texto a mostrar”;
Comentarios con// Una sola línea/* Varias líneas */
PHP Las variables se identifican con “$” Los nombres de las variables no pueden
comenzar con números ni con caracteres especiales//correcto //incorrecto
$mi_variable $_mivariable
$2variable
La variable toma el tipo de dato del valor que se le asigne
Tipos de datos: int, float, double, string, array, object
PHP Ejemplo
<?php $un_bool = TRUE; // un valor booleano $un_str = "foo"; // una cadena $un_int = 12; // un entero
echo gettype($un_bool); // imprime: boolean
// Si este valor es un entero, incrementarlo en cuatro
if (is_int($un_int)) $un_int += 4;?>
PHP Es posible concatenar variables (strings) con el operador “.”
<?php $mensaje1 = 'Hola'; $mensaje2 = 'mundo!'; echo $mensaje1.' '.$mensaje2; ?>
Con la función “unset()” podemos quitar el valor de una variable$var = "pepe"; unset($var); // Ahora no tiene valor (NULL)
La función “isset()” nos indica si una variable está inicializadaif (isset($var)){ echo 'Tiene valor';}
PHP Condicionales: IF
if (<condición>){código si se cumple la condición}
else{código si no se cumple la condición}
Ejemplo
<?php$i = 6;if ($i < 10){
echo "menor de 10"; }else {
echo "mayor de 10"; }
?>
PHP<HTML>
<HEAD><TITLE>Detector de Lengua</TITLE></HEAD><BODY>
<?//definimos variables$espanol="Hola";$ingles="Hello";
//Leemos del navegador su lengua oficial$idioma=substr($HTTP_ACCEPT_LANGUAGE,0,2);
//Formulamos las posibilidades que se pueden darif ($idioma == "es“) {
echo "$espanol";} else echo "$ingles“;?>
</BODY></HTML>
PHP Condicionales: SWITCH
switch (<expresión>){case <valor 1>: //código para valor 1
break;case <valor 2>: //código para valor 2
break;...
case <valor n>: //código para valor n break;
default: // código por defecto break;
}
PHP Ejemplo
<?php
$variable=2;
switch($variable) { case 1: echo '$Variable es igual a 1.';
break; case 2: echo '$Variable es igual a 2.';
break; case 3: echo '$Variable es igual a 3.';
break; default: echo '$Variable no igual ' . 'a 1, 2
o 3.'; } ?>
PHP Bucles: While
Se ejecuta al código mientras se cumpla una condición
while (<condicion>) {//Código a ejecutar
}
Ejemplo
$a = 1;
while ( $a < 10) {
echo "<p>El número actual es $a</p>";
$a++;
}
PHP Bucles: Do While
Se ejecuta al código mientras se cumpla una condición Al menos se ejecuta una vez
do {//Código a ejecutar
} while (<condicion>)
Ejemplo
$a = 0;do{ $a++; echo ('<p>El número es '.$a.'</p>');}while ( $a < 10);
PHP Bucles: For
Se ejecuta al código mientras se cumpla una condición
for (inicialización; condición; actualización) { //código
}
Ejemplo
for ($i=1;$i<=100;$i++) {echo “$i <br>”;}
PHP Bucles: Foreach
Se ejecuta un determinado código por cada uno de los elementos de una colección
Por ejemplo, si tenemos un array con n elementos:<?
$vector = array( "uno" => 1, "dos" => 2, "tres" => 3, "diecisiete" => 17 ); foreach($vector as $indice => $valor) { echo "$vector[$indice] => $valor.n"; } ?>
PHP Funciones importantes
include (“archivo”)Llama al archivo para incrustar el código en la página. Puede ejecutarse o no al estar
dentro de un condicional
require(“archivo”)Llama al archivo para incrustar el código en la página. Este código se ejecuta siempre
A partir de la versión PHP 4.0.2 y posteriores esto cambia y ambas construcciones se comportan exactamente de la misma manera, con la única diferencia:
include solo da una advertencia, y sigue ejecutando el código require produce un error y interrumpe la ejecución.
header(“Location: paginaweb”)Redirecciona dinámicamente las página webSe utiliza al comienzo de un fichero HTML
exitFinaliza la ejecución del código
PHP Ejemplo include
vars.php<?php
$color = 'verde';
$fruta = 'manzana';
?> test.php
<?php
echo "Una $fruta $color"; // Una
include 'vars.php';
echo "Una $fruta $color"; // Una manzana verde
?>
PHP Matrices/Arrays
Es un tipo de dato, que contiene un conjunto de valores referenciados con un índice. $sentido[1]="ver";$sentido[2]="tocar";$sentido[3]="oir";$sentido[4]="gustar";$sentido[5]="oler";
Acceso a una posiciónecho ($sentido[1]); //devuelve “ver”
Creación de una matriz$sentidos= array(‘ver‘,‘tocar‘,‘oír’);$sentidos= array(1=>‘ver‘,2=>‘tocar‘,3=>‘oír‘);
PHP Matrices/Arrays
Podemos crear elementos de una matriz sobre la marcha:
$matriz[7] = "Texto de la posición 7"; // si no especificamos un índice, se inserta en la siguiente posición
$matriz[] = "Esto iría en la posición 8";
Podemos eliminar elementos, o la matriz entera con "unset()“
$matriz = array(3 => 'Oso', 5 => 'Lagarto');
unset($matriz[3]); // No hay nada en la posición 3
unset($matriz); // No hay nada en la matriz
PHP Funciones
function <nombre_función> ($param1, $param2, ...)
{
//código función
return <resultado>;
} Ejemplos
function negrita($texto) {
return '<b>'.$texto.'</b>';
}
echo 'Quiero '.negrita(‘destacar').' lo '.negrita('importante');
function sumar($num1,$num2){ $ suma=$ num1 +$num2 echo $num1."+".$num2."=".$suma; }
sumar(5,6)
PHP Existen muchas bibliotecas de funciones en PHP Algunos ejemplos:
Funciones de manipulación de cadenas Funciones de fecha y hora Funciones de arrays Funciones de ficheros Funciones matemáticas Funciones de bases de datos Funciones de red
Algunas bibliotecas requieren la instalación de componentes adicionales
http://es2.php.net/manual/es/
PHP Manejo de cadenas
chop(cadena): Devuelve la cadena de caracteres con los caracteres de blanco y nueva línea eliminados
trim(cadena): Elimina los blancos que aparecen a izquierda y derecha de la cadena de caracteres
str_repeat(caracter,numero_veces): Repite un caracter el numero de veces indicado
strtolower(cadena): Pasa toda la cadena a letras minúsculas strtoupper(cadena): Pasa toda la cadena a letras mayúsculas ucfirst(cadena): Pasa a mayúscula el primer caracter de una cadena str_replace(subcadena1,subcadena2,cadena): Sustituye una
palabra por otra dentro de una cadena strtr(cadena,originales,traducidos): Traduce ciertos
caracteres .Ejemplo: $persona=strt($persona,"áéíóú","a,e,i,o,u"); de esta forma cambiaría todas las vocales con acento por vocales sin acento.
substr_replace(cadena,nueva,comienzo,longitud): Sustituye una porción del contenido de una cadena
PHP<?php echo strlen("12345"),"<br>";// devuelve 5 $palabras=split(" ","Esto es una prueba"); for($i=0;$palabras[$i];$i++) echo $palabras[$i],"<br>";// devuelve cada palabra en una fila echo substr("Devuelve una subcadena de otra",9,3),"<br><br>";// devuelve “una”
echo strpos("Busca la palabra en la frase", "palabra“);// devuelve 9
echo str_replace("verde","rojo","verde que te quiero verde .");// devuelve “rojo que te quiero rojo”; ?>
PHP Manejo de fecha y hora
date: permite dar formato a una hora/fecha getdate: devuelve un array con los elementos
“seconds” = segundos“minutes” = minutos“hours” = horas“mday” = día del mes“wday” = día del mes en número“mon” = número del mes“year” = año“yday” = número de día del año, por ejemplo “125”“weekday” = día de la semana en letra (ingles), por ejemplo “Monday”“month” = mes en letra (ingles), por ejemplo “November”
time: Devuelve la fecha actual en formato timestamp de UNIX. Este formato es un número (int) que indica el número de segundos transcurridos desde las 00:00:00 del día 1 de enero de 1970 GMT.
PHP<?php
$hora = time();echo ($hora);echo "<br>";// muestra “1241110230 "
$hora = getdate(time());echo( $hora["mday"] . "/" . $hora["mon"] . "/" . $hora["year"] ); echo "<br>";//muestra “30/4/2009”
echo($hora["hours"] .":”. $hora["minutes"] .":”. $hora["seconds"] ); //muestra 18:50:30
?>
PHP Manejo ficheros
fopen ( archivo, modo): abre un fichero o URL (lectura/escritura/añadir…)$fp = fopen(’info.txt’, ’r’);
fclose ( int): Cierra un fichero abiertofclose ($fp);
copy(‘archivo.txt',‘directorio'): Copiar un archivo
if(copy('datos.txt',‘copia/datos.bak' )) {
echo "el fichero se copio con éxito.<br>"; } else echo "el fichero no se copio .<br>";
Unlink: Borra un fichero
unlink('datos.txt');
mkdir: crea un directorio rmdir: borra un directorio is_dir: dice si es un directorio is_file: dice si es un fichero
PHP Manejo ficheros
<? //Abrimos el fichero en modo de escritura $DescriptorFichero = fopen("datos.txt","w");
//Escribimos la primera línea dentro de él $string1 = "Esta es la primera línea de texto"; fputs($DescriptorFichero,$string1);
//Escribimos la segunda línea de texto $string2 = "Y esta es la segunda línea de texto"; fputs($DescriptorFichero,$string2);
//Cerramos el fichero fclose($DescriptorFichero);?>
PHP Excepciones
Permiten el control de errores Ejemplo
function division($dividendo, $divisor) {
if($divisor==0)
throw new Exception(‘Division entre cero!',0);
return $dividendo/$divisor;
}
try {
echo division(15,0);
} catch(Exception $e) {
echo “se ha producido un error: “. $e->getMessage();
}
PHP Recuperar valores de formularios
Un formulario puede enviarse con el método "get" o "post" Se usa $_GET y $_POST Ejemplo: recuperar variables pasadas por URL
<html> <body> <?php foreach ($_GET as $nombre => $param) { ?> <p><?=$nombre.': '.$param?></p> <? } ?> </body> </html>
PHP Ejemplo
Formulario<html>
<head> <title>Ejemplo de PHP</title> </head> <body>
<FORM ACTION="procesa2.phtml" METHOD="POST/GET"> Introduzca su nombre:<INPUT TYPE="text" NAME="nombre"><BR> Introduzca sus apellidos:<INPUT TYPE="text"
NAME="apellidos"><BR> <INPUT TYPE="submit" VALUE="Enviar">
</FORM> </body>
</html>
Recuperar datos<html>
<head> <title>Ejemplo de PHP</title> </head> <body>
El nombre por GET: <?php echo $_GET['nombre']," ",$_GET['apellidos'] ?><br> El nombre por POST: <?php echo $_POST['nombre']," ",$_POST['apellidos'] ?> </body>
</html>
PHP Sesiones
Las sesiones básicamente son variables globales que nos permiten almacenar datos que necesiten volver a ser usados en otros accesos a la pagina
Usadas entre otras cosas en la validación de usuarios
1º.- Se crea el formulario de validación (login.php) 2º.- Se comprueba la validez del usuario (autenticacion.php) 3º.- Se crea la sesión y se da acceso al usuario o se deniega el mismo
PHP
PHP Sesiones (autenticacion.php)
<?php
//vemos si el usuario y contraseña son válidosif ($_POST["usuario"]=="usuario" && $_POST["contrasena"]=="123"){
//usuario y contraseña válidos
session_start();$_SESSION["autenticado"]= "SI";
// mayor seguridad almacenando ssesion_id()$_SESSION[“id_misesion"]= session_id();
header ("Location: aplicacion.php");
}else {
//si no existe se va a login.phpheader("Location: login.php?errorusuario=si");
}
?>
PHP Sesiones (seguridad.php)
<?php
//Inicio la sesiónsession_start();
//COMPRUEBA QUE EL USUARIO ESTA AUTENTICADOif ($_SESSION["autenticado"] != "SI") {
//si no existe, va a la página de autenticacionheader("Location: login.php");
//salimos de este scriptexit();}
?>
Este código lo incluimos en todas las páginas que requieran validación
PHP Conexión a BBDD
mysql_connect($hostname,$user,$password)
//cierre de conexión
mysql_close($conexion);
Ejemplo
<?php $servidor="localhost"; $login=“usuario": $password=“contraseña";
$db=“basededatos” $conexion=mysql_connect($servidor,$login,$password);
mysql_select_db($db, $conexion);
mysql_close($conexion);?>
PHP Sentencia BBDD
$result = mysql_query($query);
Ejemplo
$query="SELECT * FROM tabla";
$result=mysql_query($query,$conexion);
$numrows=mysql_num_rows($result);
while ($datos=mysql_fetch_array($result)){echo $datos["Nombre"], " - ", $datos["Direccion"] ,"<BR>" ;}echo "Numero de registros $numrows<br>";