Académique Documents
Professionnel Documents
Culture Documents
1. INTRODUCCIN:
Diferencias entre ASP y PHP
c t i v e SPeH
r vPe: r HPyapgeer s
text Prepr
Software
propietario
Plataformas
Varios
Microsoft
lenguajes
(VBScript, JavaScript)
Free
Software
Multiplataforma
Un
solo lenguaje:
PHP
Caractersticas de PHP
Ms
Lenguaje
ms fcil y potente
Integracin
HTTP
Acceso a 20 tipos de Bases de Datos
Diseo
Licencia
abierta
Historia y Desarrolladores
Fechas
Inicio del desarrollo en otoo de 1994
PHP Versin 1 en primavera 1995
PHP Versin 2 1995-1997
PHP Versin 3 1997-2000
PHP Versin 4 en el segundo trimestre de 2000
Equipo de Desarrollo (195 personas con acceso al CVS)
Zeev Suraski y Andi Gutmans (Israel)
Shane Caraveo (Florida)
Stig Bakken (Norway)
Andrei Zmievski (Lincoln, Nebraska)
Sascha Schumann (Dortmund, Germany)
Thies C. Arntzen (Hamburg, Germany)
Jim Winstead (Los Angeles)
Sam Ruby (Raleigh, NC)
Rasmus Lerdorf (San Francisco)
Estadsticas de uso
Fuente: Netcraft
Agosto 2000
Fuente: SecuritySpace.com
Septiembre 2000
Informe sobre Mdulos Apache
Plataformas soportadas
Plataformas (actualidad):
UNIX (todas las variantes)
Win32
(NT/W95/W98/W2000)
QNX
Mac (WebTen)
OS/2
BeOS
Servidores:
Apache (UNIX,Win32)
CGI
fhttpd
ISAPI (IIS, Zeus)
NSAPI (Netscape iPlanet)
Java servlet
AOLServer
Roxen
2. El lenguaje PHP
2.2. Delimitadores
<? echo 'Primer mtodo de delimitar cdigo PHP'; ?>
<?php echo 'Segundo mtodo, el ms usado'; ?>
<script language="php">
echo 'Algunos editores (como el FrontPage) Slo
entienden este mtodo';
</script>
<% echo 'Mtodo de compatibilidad con ASP'; %>
2.4. Comentarios
/* Comentarios estilo C.
* Pueden extenderse durante varias lneas.
*/
// Comentarios estilo C++. Hasta fin de lnea.
# Comentarios estilo Perl. Hasta fin de lnea.
=
=
=
=
2.5.4. Referencias.
Se definen con el carcter &:
$alias = &$variable
Punto flotante.
$MiVar = 1.3e4;
Arrays.
$MiVar[2] = 123;
Strings.
Objetos:
$MiArray[0] = 1;
$MiArray[1] = hola!!;
$MiArray[] = 3;
echo $MiArray[2];
// 3
Significado
Nueva lnea
Retorno de carro
Tabulacin horizontal
Barra invertida
Smbolo del dlar
Dobles comillas
Carcter en octal
Carcter en hexadecimal
Si
2.7. Constantes.
Las constantes se definen con la funcin define():
define(SALUDO, Hola, mundo!);
echo La constante SALUDO vale . SALUDO;
Las constantes en PHP se diferencian de las variables en
que:
no llevan el smbolo del dlar delante.
puede accederse a ellas desde cualquier parte del
cdigo donde han sido definidas, sin restricciones de
mbito como en las variables.
no pueden ser redefinidas o borradas una vez
definidas.
slo pueden contener valores escalares, no vectores.
Operacin
$a + $b
$a - $b
$a * $b
$a / $b
$a % $b
Nombre
Suma
Resta
Multiplicacin
Divisin
Mdulo
Resultado
Suma de $a y $b.
Diferencia entre $a y $b.
Producto de $a y $b.
Cociente de $a y $b.
Resto de la operacin $a/$b.
2.9.2. Auto-incremento y
auto-decremento.
Operacin Nombre
++$a
$a++
--$a
$a--
Resultado
Incrementa $a en 1, y
Pre-incremento
devuelve $a (incrementado).
Devuelve $a, y despus lo
Post-incremento
incrementa en 1.
Decrementa $a en 1, y
Pre-decremento
despus lo devuelve.
Devuelve $a, y despus lo
Post-decremento
incrementa en 1.
Resultado
Se ponen a 1 los bits que estn a
Y
1 en $a y $b.
Se ponen a 1 los bits que estn a
O
1 en $a o $b.
Se ponen a 1 los bits que estn a
O Exclusivo
1 en $a o $b, pero no en ambos.
Se invierten los bits (se cambian 1
No
por 0 y viceversa.)
Desplaza $b posiciones a la
Desp. Izq.
izquierda todos los bits de $a.
Desplaza $b posiciones a la
Desp. Drch.
derecha todos los bits de $a.
Resultado
Cierto si $a
Cierto si $a
Cierto si $a
O Exclusivo.
ambos.
No
Cierto si $a
Y
Cierto si $a
O
Cierto si $a
y $b son ciertos.
o $b es cierto.
o $b es cierto, pero no
es falso.
y $b son ciertos.
o $b es cierto.
Operacin Nombre
Resultado
Asigna el valor de una variable o
$a = $b
Asignacin expresin del segundo trmino a la
variable del primer trmino.
Compara si el valor de los dos
$a == $b Igualdad
operandos es el mismo.
Compara si el valor es el mismo y,
$a === $b Identidad
adems, el tipo coincide.
$var1 = 1;
//
$var2 = 1;
$var3 = 1;
($var1 == $var2)
($var1 == $var3)
($var1 === $var2)
($var1 === $var3)
Asignacin
//
//
//
//
2.9.6. Comparaciones.
Operacin Nombre
Resultado
Cierto si el valor de $a no es
$a != $b
No igual
igual al de $b.
Cierto si $a no es igual a $b, o
$a !== $b No idntico
si no tienen el mismo tipo.
Cierto si $a es estrictamente
$a < $b
Menor que
menor que $b.
Cierto si $a es estrictamente
$a > $b
Mayor que
mayor que $b.
Cierto si $a es menor o igual
$a <= $b Menor o igual que
que $b.
Cierto si $a es mayor o igual
$a >= $b Mayor o igual que
que $b.
$a = 1;
$b = 2;
$c = El resultado de . $a . + . $b . es . $a + $b;
+=
-=
*=
/=
$var1 += 3;
$var2 /= 2;
$var3 >>= 1;
%=
&=
^=
.=
>>=
// $var1 = $var1 + 3;
// $var2 = $var2 / 2;
// $var3 = $var3 >> 1;
<<=
2.9.9. Precedencia.
,
or
xor
and
print
= += -= *= /= .= %= &=
|= ^= ~= <<= >>=
?:
||
&&
|
^
&
== != === !==
< <= > >=
<< >>
+-.
*/%
! ~ ++ -- (int) (double)
(string) (array) (object) @
[
new
while (expresin)
{
comandos
}
do
{
comandos
}
while (expresin);
2.10.4. for
for (expresin1; expresin2; expresin3)
{
comandos
}
$factorial5 = 1;
for ($i = 2; $i <= 5; $i++ )
{
$factorial5 *= $i;
}
2.10.5. foreach
foreach (array as variable)
{
comandos
}
$a = array (1, 2, 3, 17);
foreach ($a as $v)
{
print "Valor actual de \$a: $v.\n";
}
//
//
//
//
Valor
Valor
Valor
Valor
actual
actual
actual
actual
de
de
de
de
$a:
$a:
$a:
$a:
1
2
3
17
2.10.6. switch
switch (variable)
{
case valor1:
comandos1
case valor2:
comandos2
...
case valorN:
comandosN
default:
comandosDefault
}
$x = 1; // $x
if( $x ) // se evala a cierto
$x = 0; // $x definida como el entero 0
if( $x ) // se evala a falso
// cadena vaca
// evala a falso
$x = "0";
if( $x )
//
//
//
//
Excepcin:
cero en una cadena
evala a falso
(se convierte a entero)
$x = array();
if( $x )
// $x es un array vaco
// se evala como falso
Class Yod {}
// clase vaca
$x = new Yod();
if( $x )
// se evala a falso
Class Yod {
// clase no vaca
var $x = 1;
}
$x = new Yod();
if( $x )
// se evala a cierto
2.12. Funciones.
2.12.1. Funciones.
Argumentos por referencia.
function MiFuncion(&$var)
{
$var++;
}
$a = 5;
MiFuncion($a);
// Aqu $a == 6
2.12.2. Funciones.
Devolucin por referencia.
function &buscar_cliente($nombre)
{
// ... buscamos ...
return $registro;
}
$cliente = &buscar_cliente(Juan);
echo $cliente->dni;
require(cabecera.inc);
If ($incluir == TRUE)
{
$ficheros = array(uno, dos, tres);
foreach ($ficheros as $fichero)
{
include($fichero);
}
}
3. Programando en PHP
3.1.1. Forms.
Valores sencillos.
<form action="accion.php" method="POST">
Su nombre: <input type=text name=nombre><br>
Su edad: <input type=text name=edad><br>
<input type=submit>
</form>
Hola <?=$nombre?>.
Tiene <?=$edad?> aos.
3.1.2. Forms.
Valores mltiples.
<form action="accion.php" method="POST">
<select multiple name=menu
name=menu>
[]>
<option>Tortilla <option>Paella
<option>Fabada <option>Lentejas
</select><input type=submit></form>
<?php
echo "Su eleccin:<br>";
foreach($menu as $plato)
{
echo "$plato<br>\n";
}
?>
3.2. Cookies.
int setcookie (string nombre [, string valor
[, int fin [, string camino
[, string dominio
[, int seguro]]]]])
setcookie(PruebaCookie,
expirar dentro de una hora,
time() + 3600);
setcookie(PruebaCookie, , time());
3.3. Sesiones.
bool session_start(void);
bool session_register (mixed name [, mixed ...])
bool session_destroy(void);
// Ejemplo, un contador
session_start();
print($contador);
$contador++;
session_register("contador");
<A HREF="siguiente.php?<?=SID?>">Continuar</A>
$nombre = '/etc/shadow';
$fichero = @fopen ($nombre, 'r');
if( !$fichero )
{
die("No se pudo abrir el fichero ($nombre)");
}
=
=
=
=
substr('abcdef',
substr('abcdef',
substr('abcdef',
substr('abcdef',
2, 3);
-2);
-2, 1);
1, -2);
//
//
//
//
cde
ef
e
bcd
3.5.3. 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
3.5.3. Cadenas.
Imprimir y formatear. (2)
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);
$busca = DAlton;
// Habr que escapar el apstrofe
$sql = SELECT *
FROM usuarios
WHERE apellido = \ .
addslashes($busca) . \;
//
//
//
//
//
//
//
//
//
//
//
1
cosa
cosa
1
gato
gato
perro
1
array(0,1)
array(1,'foo')
array(2,1.57)
ksort():
rksort():
3.6.1. Ficheros.
Abrir y cerrar.
int fopen (string nombre, string modo
[, int include_path])
Modos:
r
Slo lectura. Puntero al inicio.
r+ Lectura/escritura. Puntero al inicio.
w
Slo escritura. Se trunca el fichero.
w+
Lectura/escritura. Se trunca el fichero.
a
Slo escritura. Puntero al final.
a+Lectura/escritura. Puntero al final.
3.6.2. Ficheros.
Leer y escribir.
string fgets (int identificador, int tamao)
mixed fscanf (int identificador, string formato
[, string var1...])
int feof (int identificador)
array file (string fichero
[, int include_path])
int fwrite (int identificador, string cadena
[, int tamao])
3.6.3. Ficheros.
Copiar / renombrar / borrar.
3.6.4. Directorios.
3.6.4. Directorio.
Listado de contenidos.
$direcotrio = opendir('.');
while (($fichero = readdir($directorio)) !== FALSE)
{
echo "$fichero\n";
}
closedir($directorio);
class NombreClase
{
var $variables;
function metodos ($parametros)
{
codigo
}
}
close() {}
select_db($base_datos) {}
query($query) {}
fetch_array($resultado) {}
free_result($resultado) {}
close() {}
select_db($base_datos) {}
query($query) {}
fetch_array($resultado) {}
free_result($resultado) {}