Anda di halaman 1dari 43

PHP

Intermedio
Instituto Tecnolgico de Zacatecas

Ing. Nstor Alejandro Carrillo Lpez


Basada en Sistemas
Bajo plataforma
Linux

Noviembre 2012

QU ES PHP?
PHP acronimo de Hypertext
Processor es un lenguaje
interpretado de alto nivel
embebido en pginas HTML.

INTRODUCCIN:
Diferencias entre ASP y PHP

Software
propietario

Free Software

Plataformas Microsoft

Multiplataforma

Varios lenguajes
(VBScript, JavaScript)

Un

solo lenguaje:
PHP

Caractersticas de PHP

Ms rpido que ASP

Lenguaje ms fcil y potente

Integracin perfecta con 8 servidores


HTTP
Acceso a 20 tipos de Bases de Datos

Diseo modular de fcil ampliacin

Licencia abierta

HISTORIA BREVE DE PHP

PHP fue concebido en


otoo de 1994 por
Rasmus Lerdof.

Las primeras
versiones no
distribuidas al plico
fueron usadas en sus
pginas web para
mantener un control
sobre quien
consultaba su
curriculum.

La primera versin
disponible al pblico
sali a principios de
1995 y fue conocida
como Personal
HomePages Tools o
PHPTools

Hoy da PHP se
distribuye en un gran
nmero de productos
comerciales como el
servidor web C2s
StrongHold y Red Hat
Linux

Plataformas soportadas
Plataformas (actualidad):
UNIX (todas las variantes)
Win32
(NT/W95/W98/W2000/vista/7)
QNX
Mac (WebTen)
OS/2
BeOS

Plataformas (en perparacin):


OS/390
AS/400

Servidores:
Apache (UNIX,Win32)
CGI
fhttpd
ISAPI (IIS, Zeus)
NSAPI (Netscape iPlanet)
Java servlet
AOLServer
Roxen

Servidores (en preparacin):


Apache 2.0
WSAPI (O'Reilly WebSite)
phttpd
thttpd

QU PUEDO HACER CON


PHP?

Puede hacer cualquier cosa que se


pueda hacer con un script CGI,
como procesar la informacin de
formularios, generar pginas con
contenido dinmico, mandar o
recibir cookies.

Bases de datos soportadas


SQL

Adabas D
Empress
IBM DB2
Informix
Ingres
Interbase
Frontbase
mSQL
Direct MS-SQL
MySQL
ODBC
Oracle (OCI7,OCI8)
PostgreSQL
Raima Velocis
Solid
Sybase

Otros
dBase
filePro (slo lectura)
dbm (ndbm, gdbm, Berkeley db)

PRIMER PROGRAMA
<HTML>
<HEAD>
<TITLE>Primer Ejemplo de PHP</TITLE>
</HEAD>
<BODY>
<?php
echo Hola mundo desde PHP;
?>
</BODY>
</HTML>

Guarde el archivo con el nombre de primer.php

PRIMER PROGRAMA

Todo script PHP empieza con <?php que le indica


al browser que se trata de una pgina con
cdigo php embebido y termina con ?>
La mayora de las instrucciones php terminan
con ;
La instruccin echo sirve para desplegar texto en
la pgina web, tambin se puede substituir por
print.
As la instruccin echo Hola mundo, php;
indica que dentro de la pgina web se incrustar
este mensaje.

VARIABLES Y CONSTANTES

Todos los nombres de


las variables
empiezan con el
carcter $
Los nombres de las
variables no pueden
empezar con nmeros
ni caracteres
especiales.
La forma de declarar
una variable es as

$MiVariable

Aunque no se le
asigna tipo de dato, la
variable tomar el
tipo de dato que
contenga el valor que
se le asigne.
Tipos de Datos

int
float
double
string
array
object

VARIABLES Y CONSTANTES

Por otro lado, para crear constantes se utiliza la


funcin:

Ejemplo:

defined(constante);

Por ejemplo:

define(PI,3.1415926);

Para comprobar si la constante existe o esta


definida, se utiliza la funcin:

define(nombre constante, valor);

defined(PI);

devuelve verdadero si la constante PI existe

Tipos de datos.
Enteros, en decimal, octal o hexadecimal.
$MiVar = 123;

Punto flotante.

$MiVar = 1.3e4;

Arrays.

$MiVar[2] = 123;

Strings.

$MiVar = Cadena de texto\n;

Objetos:

$MiVar = new MiClase();

Tipos de datos. Strings.


Comillas dobles.
Si sedelim
itanentrecom
illas dobles (), seexpandir
cualquier variablequehayadentrodelacadena. Adem
s, se
puedenincluir ciertas secuencias deescape, al igual queenC:
Secuencia
Significado
\n
Nuevalnea
\r
Retornodecarro
\t
Tabulacinhorizontal
\\
Barrainvertida
\$
Sm
bolodel dlar
\"
Dobles com
illas
\[0-7]{1,3}
Carcter enoctal
\x[0-9A-Fa-f]{1,2}Carcter enhexadecim
al

OPERADORES

Aritmticos

= (asignacin)
+ (suma)
- (resta)
* (multiplicacin)
/ (divisin)
% (resto de la divisin
entera)
Operador= por ejemplo
$a+=$b es equivalente a
$a=$a+$b
Variable++ (incremento)
Variable-- (decremento)

Comparativos

Lgicos

== (igualdad)
< (menor que)
> (mayorque)
<= (menoro igual que)
>= (mayor o igual que)
!= (distinto de)
=== (comparacin de valor y
tipo)
! (negacin)
&& (and)
|| (or)

Cadenas

(concatenacin)

SENTENCIA IF - ELSE

En PHP la sentencia IF se utiliza como sigue:


If (condicin)
{ cdigo si se cumple la condicin }
else
{ cdigo sino se cumple la condicin }
Ejemplo:
<?php
$x=3;
$y=2;
if ($x == $y)
{
print ( tanto y como x son iguales);
}
else
{
print (son diferentes);
}
?>

SENTENCIA SWITCH

Como ya sabemos el switch sirve para conmutar entre


varias opciones, en php seutiliza como sigue:
switch(variable)
{
case opcin1:cdigo para opcin1;
break ;
case opcin2:cdigo para opcin2;
break;
......
case opcinN:cdigo para opcinN;
break;
default: cdigo para la opcin por defecto;

EJEMPLO

SWITCH

<?php
$a=3;
switch($a)
{
case 1:
print(estamos en la opcin uno);
break;
case 2:
print(estamos en laopcin dos);
break;
case 3:
print(estamosen la opcin tres);
$a--;
break;
default:print(No hay opciones);
}
print(<BR>);
print(Valor de a es: . $a);
?>

CICLO
FOR
Igual que el lenguaje C, el ciclo for se implementa
as:
for (valor de inicio;condicin;incremento
/decremento)
{ cdigo a repetir }
Ejemplo:
<?php
print(iniciando cuenta atrs...);
$a=10;
for($a; $a>=0; $a--)
{
print(\$a =$a<br>);
}
?>

BUCLE WHILE
La implementacin del bucle while en php es as:
while (condicin)
{ cdigo a repetir }
Ejemplo:
<?php
$a=0;
print(Cuenta hacia delante...);
while($a<=10)
{
print(\$a =$a<br>);
$a++;
}
?>

BUCLE DO - WHILE
Igual que C, php tambin cuenta con un bucle do while
do
{ cdigo a repetir}
while (condicin);
Ejemplo:
<?php
$valor1=3;
$valor2=0;
do
{
print ($valor1. x . $valor2 . = .$valor1*$valor2);
$valor2++;
}while($valor2<=10);
?>

Cadenas. Comparacin.
int strcmp (string str1, string str2)
int strcasecmp (string str1, string str2)

// Ejemplo:

<?php
$a="hola";
$b="Hola";
if (strcmp($a, $b) == 0)
echo "iguales";
else
echo "diferentes";
?>

Cadenas. Subcadenas.
string substr (string cadena, int inicio

[, int tamao])

$str = substr('abcdef', 2, 3);


$str = substr('abcdef', -2);
$str = substr('abcdef', -2, 1);

// cde
// ef
// e

Cadenas. Subcadenas. (2)


int strpos (string cadena, string referencia [, int inicio])

int strrpos (string cadena, char referencia)


string strstr (string cadena, string referencia)

$i
//
$i
//
$s
//
$s
//

= strpos('cadena de prueba', 'de');


$i = 2
= strpos('cadena de prueba', 'de', 5);
$i = 7
= strrpos('cadena de prueba', 'de');
$s = 7
= strstr('cadena de prueba', 'de');
$s = dena de prueba

Cadenas. Imprimir y formatear.


int printf (string formato [, mixed args...])
string sprintf (string formato [, mixed args...])
1.
2.
3.
4.
5.

Relleno
Alineacin
Nmero de caracteres
Precisin
Tipo
%
b
c
d
f
o
s
x
X

Secuencias de formato

El carcter de tanto por ciento.


Entero en binario.
Entero como carcter ASCII.
Entero en decimal.
Double en punto flotante.
Entero en octal.
Cadena.
Entero en hexadecimal (minsculas).
Entero en hexadecimal (maysculas).

Cadenas.

Imprimir y formatear. (2)

<?php

printf("%b",17);

//<-convierte el 17 a binario

echo "<BR>";

$dia=12;$mes=10;$year=6;
printf("%02d/%02d/%02d",$dia,$mes,$year); //<-formato fech
$pago1=68.75;
$pago2=54.35;
$pago=$pago1+$pago2;
echo "<BR>";

echo $pago;

//<-resultado pago sin formato

echo "<BR>";
printf("%01.2f",$pago); //<-resultado pago con formato
?>

Cadenas.

Imprimir y formatear. (3)

printf(%02d/%02d/%04d, $dia, $mes, $ao);


$pago1 = 68.75;
$pago2 = 54.35;
$pago = $pago1 + $pago2;
// echo $pago mostrara "123.1"
// Mostrar al menos un dgito entero y exactamente
// dos decimales, rellenando con ceros
printf ("%01.2f", $pago);

Tipos de datos. Arrays.

$MiArray[0] = 1;
$MiArray[1] = hola!!;
$MiArray[] = 3;
echo $MiArray[2];

// 3

Tipos de datos. Arrays (2).


Funcionan como vectores o tablas hash al mismo tiempo:
$MiArray[nombre] = Homer;
echo $MiArray[0];
// 1
echo $MiArray[nombre]; // Homer
Y pueden tener ms de una dimensin:
$MiOtroArray[1][pepe][4] = 3 dimensiones!;

Tipos de datos. Arrays (3).


Tambin se pueden definir con el constructor array() :
$OtroArrayMas = array( 1, hola, 5);
$YOtroArray = array(
0 => 1,
1 => hola,
2 => 5,
3 => 8,
nombre => Homer
);

foreach
foreach (array as variable)
{
comandos
}

<?php
$a = array (1, 2, 3, 17);
foreach ($a as $v)
{
print "Valor actual de \$a: $v.\n";
}
?>

Recorrer un array.
reset(), end(), next(), each(), current(), key()

$arr = array(1,'cosa',1.57,'gato'=>'raton','perro'=>'gato');
current($arr);
next($arr);
current($arr);
prev($arr);
end($arr);
current($arr);
key($arr);
reset($arr);
each($arr);
each($arr);
each($arr);

//
//
//
//
//
//
//
//
//
//
//

1
cosa
cosa
1
gato
gato
perro
1
array(0,1)
array(1,cosa')
array(2,1.57)

Ordenar un array.
sort():
Ordena el array por contenido en orden
ascendente.

rsort():
Ordena por contenido en orden
descendente.
ksort(): Ordena por el ndice en orden
ascendente.

rksort(): Ordena por el ndice en orden


descendente.

Extraer campos.
array explode (string delimitador, string cadena
[, int lmite])
<?php
//las cadenas delimitadas por el ':'
//las separa en un arreglo

$cadena1 = 'campo1:campo2:campo3';
$MiArreglo1 = explode(':', $cadena1);
foreach($MiArreglo1 as $v)
{
echo $v;
echo "<BR>";
}
?>

Extraer campos.(2)
string implode (string delimitador, array campos)

<?php
// las cadenas contenidas en un arreglo
// las junta en una cadena delimitadas por el ':'

$MiArreglo2= array("Hola","Bye","ITZ");
$cadena2 = implode(':', $MiArreglo2);
echo $cadena2;
?>

Extraer campos.
Expresiones regulares.
array split (string delimitador, string cadena
[, int lmite])
$fecha = "12/4 2000";
$campos = split ('[ /.-]', $fecha);

Extraer campos.
Expresiones regulares.(2)
<?php
$fecha = "12/4 2000";

$campos = split ('[ /.-]', $fecha);


foreach($campos as $v)
{
print "valor de \$cadena: $v <br>";
}
?>

Funciones.

function nombre ($arg_1, $arg_2, ..., $arg_n)


{
comandos
return $salida;
}

Funciones. (2)

Ejemplo.

function factorial ($valor) {


if ($valor < 0)
return 1; // Error
if ($valor == 0 )
return 1;

if ($valor == 1 || $valor == 2)
return $valor;
$temp = 1;
for ($i = 2; $i <= $valor; $i++) {
$temp = $temp * $i;
}
return $temp;
}//function factorial
$n=3;
$resultado = factorial($n);
echo El factorial de $n es.$resultado;

Funciones. (3) Valores por default.


<?php
function enlace($url = http://www.php.net)
{
echo <a href= . $url . >Pulsa aqu</a>;

}//function enlace

enlace();

//<-llamada a funcin con param. default

$sitio=http://www.google.com;
enlace($sitio); //<-llamada a func.
?>

Param. definido

Funciones.
Argumentos por referencia.
function MiFuncion(&$var)
{
$var++;
}//function MiFuncion

$a = 5;
MiFuncion($a);
// Aqu $a == 6

Nota: argumentos por referencia hacen


referencia a la misma direccin de memoria.

Otras funciones.
Eliminar espacios en blanco:
string trim (string cadena)
string ltrim (string cadena)
string rtrim (string cadena)

Maysculas y minsculas:
string strtoupper (string cadena)
string strtolower (string cadena)

include y require
require(cabecera.inc);
If ($incluir == TRUE)
{
$ficheros = array(uno, dos, tres);
foreach ($ficheros as $fichero)
{
include($fichero);
}
}

http://www.ignside.net/man/php/include.php