Sei sulla pagina 1di 54

Introduccin a la programacin

en PHP
Diferencias entre ASP y PHP
Software propietario

Free Software

Plataformas Microsoft
Varios lenguajes
(VBScript, JavaScript)
Multiplataforma

Un solo lenguaje:
PHP

Market Share for Top Servers Across All Domains August 1995 - November 2005
Fuente: http://news.netcraft.com/archives/web_server_survey.html ( Citada:
15.11.2005)
Sitios importantes

Apache: www.apache.org


MySQL: www.mysql.com


PHP: www.php.net

Delimitadores de los scripts

<? 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; %>
<html>
<body>
<?php
if ( hour(time)>18 || hour(time)<6)
{ echo Buenas noches.;
}
else
{ echo Buenos das.;
}
?>
</body>
</html>
Delimitadores. Ejemplo.






<?php // Puede no llevar la palabra php
$mivar = "Hola Mundo. Este es mi primer script en PHP";
//Esto es un comentario
echo $mivar;
?>

Podemos usar:

print(cadena) o

printf("lista de formatos", lista de elementos de salida)

para la salida, en vez de echo.

Comentarios
/* Comentarios estilo C.
Pueden extenderse varias lneas.
*/

// Comentarios de una lnea al estilo de C++

# Comentarios de una lnea al estilo de Perl
Variables
No es necesario declararlas

El nombre de una variable comienza con el signo del dlar $.

Una variable puede tener como valor un nmero, un texto (cadena de
caracteres) o un arreglo.

El nombre de la variable es sensible a minsculas y maysculas.
$var_1 = 123;
$var_2 = hola;
$var_3 = $var_1 * 2;
Definicin de constantes
Para definir constantes se usa la funcin define.
<?php
define("CONSTANTE", Hola, mundo");
echo CONSTANTE;
?>

Note que la constante no lleva $.
Tipos de datos
Enteros
$MiVar = 123;

Punto flotante.
$MiVar = 1.34;

Arrays.
$MiVar[2] = 123;

Strings.
$MiVar = Cadena de texto\n;

Objetos:
$MiVar = new MiClase();

Conversiones automticas de tipos
PHP realiza conversiones automticas de tipo:
$mivar = 123;
echo $mivar; // Se convierte a string
$mivar = 3; // Se convierte a entero
$mivar = 2 + $mivar; // para realizar la suma
Conversiones explcitas de tipos
Operador cast:
$mivar = (string)123;
Cabiar el tipo de una variable:
$mivar = 12;
settype($mivar, "double");
mbito de variables
En el cuerpo de un fichero, las variables son
GLOBALES al fichero y ficheros incluidos.
En una funcin, son LOCALES a esa funcin.
Dentro de una clase, slo pueden ser
accedidas a travs del operador -> sobre el
nombre del objeto.

Nmeros
Un nmero entero se representa por una secuencia de dgitos, antecedidos o
no por signo menos. Por defecto se consideran en notacin decimal, por
ejemplo, 145, -17 .

Si el valor constante comienza por 0 se trata como un nmero octal (base 8).
Los nmeros en base 8 pueden contener nicamente dgitos del 0 al 7. Un
nmero octal vlido es 017 (15 en base 10).

Por otro lado un valor constante que comience por 0x se trata como un
nmero hexadecimal (base 16). Los nmeros en base 16 contienen los dgitos
del 0 al 9 y de la a hasta la f (o de la A hasta la F). Un nmero hexadecimal
vlido es 0x1FE (510 en base 10).

Los nmeros en punto flotante pueden escribirse en la forma de punto
decimal o notacin en punto fijo, como: 3.4 , 3.0 , .75 , 3.
o en notacin de punto flotante o notacin exponencial como
2.3e-14 , -4.6503e+24
Operadores aritmticos
Operacin Nombre Resultado
$a + $b Suma Suma de $a y $b.
$a - $b Resta Diferencia entre $a y $b.
$a * $b Multiplicacin Producto de $a y $b.
$a / $b Divisin Cociente de $a y $b.
$a % $b Mdulo Resto de la operacin $a/$b.

Operadores de incremento y
decremento


Operacin Nombre Resultado
++$a Pre-incremento
Incrementa $a en 1, y
devuelve $a (incrementado).
$a++ Post-incremento
Devuelve $a, y despus lo
incrementa en 1.
--$a Pre-decremento
Decrementa $a en 1, y
despus lo devuelve.
$a-- Post-decremento
Devuelve $a, y despus lo
incrementa en 1.

Operadores de bits
Operacin Nombre Resultado
$a & $b Y
Se ponen a 1 los bits que estn a
1 en $a y $b.
$a | $b O
Se ponen a 1 los bits que estn a
1 en $a o $b.
$a ^ $b O Exclusivo
Se ponen a 1 los bits que estn a
1 en $a o $b, pero no en ambos.
~ $a No
Se invierten los bits (se cambian 1
por 0 y viceversa.)
$a << $b Desp. Izq.
Desplaza $b posiciones a la
izquierda todos los bits de $a.
$a >> $b Desp. Drch.
Desplaza $b posiciones a la
derecha todos los bits de $a.

Cadenas de caracteres entre comillas dobles

Si se delimitan entre comillas dobles (), se expandir
cualquier variable que haya dentro de la cadena. Adems, se
pueden incluir ciertas secuencias de escape, al igual que en C:
Secuencia Significado
\n Nueva lnea
\r Retorno de carro
\t Tabulacin horizontal
\\ Barra invertida
\$ Smbolo del dlar
\" Dobles comillas
\[0-7]{1,3} Carcter en octal
\x[0-9A-Fa-f]{1,2} Carcter en hexadecimal

Cadenas de caracteres entre comillas simples
Si la cadena se delimita entre comillas simples (), las
variables contenidas dentro de ellas no se expanden.
Para concatenar cadenas se utiliza el operador .
Cadenas con sintaxis de documento incrustado
La cadena comienza con el delimitador
>>>Marca
y termina con el delimitador
Marca
Marca es un nombre que damos arbitrariamente.
Ejemplos con cadenas
<?php
// Asignando una cadena
$str = "Esto es una cadena";
// Concatenando un texto a la cadena
$str = $str . " con algo ms de texto";
// Cadena que contiene carcter de control de nueva lnea
$str .= " y un carcter de nueva lnea al final.\n";
// Cadena entre comillas
$num = 9;
$str = "Nmero: $num"; // La cadena es: Nmero: 9
// Cadena entre apstrofes
$num = 9;
$str = 'Nmero: $num'; // La cadena es: Nmero: $num
// Obtener el primer carcter de una cadena
$str = 'Esto es una prueba.';
$prim = $str[0]; // $prim toma como valor el carcter E.
?>
Otras operaciones con cadenas
strlen(cadena). Devuelve el nmero de caracteres de una
cadena.
split(separador,cadena). Divide una cadena en varias
usando un carcter separador.
sprintf(cadena de formato, var1, var2...). Formatea una
cadena de texto al igual que printf, pero el resultado es
devuelto como una cadena.
substr(cadena, inicio, longitud). Devuelve una subcadena
de otra, empezando por inicio y de longitud dada.
chop(cadena). Elimina los saltos de lnea y los espacios
finales de una cadena.
strpos(cadena1, cadena2). Busca la cadena2 dentro de
cadena1 indicndonos la posicin en la que se encuentra.
str_replace(cadena1, cadena2, texto). Reemplaza la
cadena1 por la cadena2 en el texto.
Operadores de comparacin

Operadores lgicos
Diferencias entre operadores:
asignacin, igualdad e identidad


Operacin Nombre Resultado
$a = $b Asignacin
Asigna el valor de una variable o
expresin del segundo trmino a la
variable del primer trmino.
$a == $b Igualdad
Compara si el valor de los dos
operandos es el mismo.
$a === $b Identidad
Compara si el valor es el mismo y,
adems, el tipo coincide.

Operadores de asignacin compuestos
Variable = Variable operador Expresin
Se puede escribir de forma resumida como:
Variable operador = Expresin
Algunos operadores de asignacin compuestos
+=
-=
*=
/=
%=
.=
Estructuras de alternativa if
if (condicin)
{
sentencia
}
if (condicin)
{
sentencia1
}
else
{
sentencia2
}
Si sentencia, sentencia1 o
sentencia2 se componen de una
sola instruccin, no es necesario
encerrarla entre llaves
while (expresin)
{
sentencia
}
for (inicializacin; finalizacin; incremento)
{
sentencia
}
Estructuras de ciclos
do
sentencia
while (expresin)
Seleccin por casos - switch
switch (variable)
{
case valor1:
comandos1
case valor2:
comandos2
...
case valorN:
comandosN
default:
comandosDefault
}
Funciones


function nombre ($arg_1, $arg_2, ..., $arg_n)
{
comandos
return $salida;
}
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
function media_aritmetica($a, $b)
{
$media=($a+$b)/2;
return $media;
}
// Ejemplo de llamada
printf("La media aritmtica es: %f", media_aritmetica(4,6));
?>
</body>
</html>
Funciones: ejemplo
<?php
function aux()
{
echo "Pasando por la funcin aux()<br>";
}
function bar ($arg ='')
{
echo " bar();El argumento ha sido '$arg'<br>";
}
$func = 'aux';
$func();
$func='bar';
$func('test');
?>
Funciones variables
Funciones. Valores por defecto.


function enlace($url = "www.php.net ")
{
echo '<a href= "' . $url . ' " >Pulsa aqu</a> ;
}
$a[0] = 1;
$a[1] = "def";

$b["otro"] = 13;
Arreglos unidimensionales
Aadir valores a un arreglo al final: se asigna un valor a una variable
arreglo usando corchetes vacos.

$a[] = "hola"; // $a[2] toma el valor "hola

$a[] = "mundo"; // $a[3] toma el valor "mundo"
Funcionan como vectores o tablas hash al mismo tiempo:
$a["nombre"] = " Homero";
echo $a[0]; // 1
echo $a["nombre"]; // " Homero"
// Ejemplo 1:
$a["color"] = "rojo";
$a["sabor"] = "dulce";
$a["forma"] = "redondeada";
$a["nombre"] = "manzana";
$a[3] = 4;


// Ejemplo 2:
$a = array(
"color" => "rojo",
"sabor" => "dulce",
"forma" => "redondeada",
"nombre" => "manzana",
3 => 4
);
Llenado de arreglos asociativos
Arreglos multidimensionales
Los arreglos pueden tener ms de una dimensin:
$Multi[1][pepe][4] = 3 dimensiones!;
Funciones para recorrido de un arreglo


$arr = array(1,'cosa',1.57,'gato'=>'raton','perro'=>'gato');

current($arr); // 1
next($arr); // cosa
current($arr); // cosa
prev($arr); // 1
end($arr); // gato
current($arr); // gato
key($arr); // perro
reset($arr); // 1
each($arr); // array(0,1)
each($arr); // array(1,'cosa')
each($arr); // array(2,1.57)
reset(), end(), next(), each(), current(), key()
Funciones para ordenar un arreglo
sort(): Ordena el arreglo 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.
Pginas dinmicas en PHP
<form method="POST" action="nacion.php" >
<p>Nombre: <input type="text" name="Nombre" size="20"></p>
<p>Nacionalidad: <input type="text" name="Nacionalidad" size="20"></p>
<p><input type="submit" value="Enviar" name="Enviar"></p>
</form>
Hola Sr/a <? =$Nombre ?> <br>
Usted es de nacionalidad <? =$Nacionalidad ?>
En nacion.htm
En nacion.php
Algunas variables de sistema
$PHP_SELF
Nos devuelve una cadena con la URL del script
que est siendo ejecutado. Muy interesante
para crear botones para recargar la pgina.
$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. Es idntico al arreglo asociativo $_GET
introducido a partir de la versin 4.1.0 de PHP
$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. Es idntico al arreglo
asociativo $_POST introducido a partir de la
versin 4.1.0 de PHP
<html> <head>
<title>Me llamo a mi mismo...</title>
</head>
<body>
<?
if (!$_POST){
?>
<form action="rentrante.php" method="post">
Nombre: <input type="text" name="nombre" size="30"> <br>
Telefono: <input type="text" name="telefono" size=14 value="+34 " >
<br>
<input type="submit" value="Enviar">
</form>
<?
}
else
{ echo "<br>Su nombre: " . $_POST["nombre"];
echo "<br>Su Telfono: " . $_POST["telefono"];
}
?>
</body> </html>
Instrucciones para el manejo de Bases de Datos
Funciones que brinda PHP para acceder a bases
de datos, las cuales permiten:

Abrir una conexin con el servidor.
Cerrar una conexion de BD.
Seleccionar la base de datos del servidor para
una conexin.
Ejecutar consultas SQL.
Recorrer el conjunto de resultados.
mysql_connect()
Abre una conexin con el servidor MySQL en el Host especificado (en este
caso la misma mquina en la que est alojada el servidor MySQL, localhost).
Su llamada es indispensable antes de cualquier transaccin en la base de
datos
Si la conexin ha tenido xito, la funcin mysql_connect() devuelve un
identificar de dicha conexin (un nmero), de lo contrario devuelve 0 (FALSE).
Sintaxis de llamada:
mysql_connect ("host", "login", "password");
Donde:
host es el nombre de la computadora donde est corriendo el servidor de base
de datos o su IP.
login es su login como usuario de la BD.
password es su password como usuario de la base de datos.

mysql_connect(), ejemplo

$link = mysql_connect("localhost", sa", sa");
if (!$link)
{ die ("No se pudo conectar");
}

print ("Conexin realizada");

mysql_close ($link);

mysql_close()
Cierra una conexin con MySQL.

Devuelve TRUE (valor diferente de cero) si se finaliza con xito,
FALSE(0) si se produce un error.

Sintaxis:

mysql_close (enlace_conexin)

Ejemplo:

mysql_close($link);

mysql_select_db()
Selecciona una base de datos MySQL asociada al identificador
de enlace especificado, sino se especifica un identificador se
asume el ltimo enlace.

Devuelve TRUE (valor diferente de cero) si se finaliza con xito,
FALSE(0) si se produce un error.

Sintaxis:
mysql_select_db (nombre_de_la_BD, conexion);
conexion es el valor retornado por la funcin mysql_connect

mysql_select_db(), ejemplo
mysql_select_db(ControlProyecto, $link);
if (!mysql_select_db("prueba", $link))
{ die (No existe la BD);
}

Equivalente a:

$base = mysql_select_db(ControlProyecto, $link);
if (!$base)
{ die (No existe la BD);
}
Enva una consulta SQL al servidor MySQL asociado al
identificador de enlace especificado. Si el identificador del
enlace no es especificado, se asume como abierto el ltimo
enlace.
Devuelve un identificado de resultado valido si no hay error, o
FALSE (0) en caso contrario.

Sintaxis:
mysql_query (cadena_consulta, conexion);
mysql_query()
$query = "SELECT NomProy, Ubicacion FROM Proyecto";
$result = mysql_query($query, $link);
if (!$result)
{ die (Error en la consulta);
}
mysql_query(), ejemplo
Retorna un arreglo con el resultado de la demanda SQL
realizada. Cada columna de resultados es almacenada en
una posicin del arreglo, comenzando en la posicin 0.

Sintaxis:
mysql_fetch_row (int result);

Siguientes llamadas a mysql_fetch_rows() devolveran las
filas siguientes del result set, o FALSE si no hay mas filas.

Ejemplo:
$row = mysql_fetch_array($result)
mssql_fetch_row()

mssql_data_seek

Mueve el puntero interno de la consulta MS SQL
asociada al result_identifier especificado, para que
apunte al nmero de fila especificada. La siguiente
llamada a mssql_fetch_row() devolver esa fila.
Devuelve TRUE si se ejecuta con xito, FALSE si falla.


int mssql_data_seek (int result_identifier,
int row_number)


mysql_num_fields() devuelve el nmero de campos de la consulta o
result set.

mysql_num_fields (int result)

mysql_num_rows() devuelve el nmero de filas de la consulta o result
set.

mysql_num_rows (valor_consulta);

Ejemplo:
$result = mysql_query("SELECT * FROM Proyecto WHERE
Presupuesto>100000");
$numfilas = mysql_num_rows($result);
mysql_num_fields() y mssql_num_rows()
Ejemplo-ver informacin de la BD
<html>
<body>
<?php
$link = mysql_connect("localhost", "jdiaz");
mysql_select_db("ControlProyecto", $link);
$result = mysql_query("SELECT * FROM Proyecto WHERE Presupuesto>100000");
echo "<table border = '1'>";
do
{ echo "<tr>";
echo "<td>".$row["CodProy"]."</td> \n";
echo "<td>".$row["NomProy"]."</td> \n";
echo "<td>".$row["Ubicacion"]."</td> \n";
echo "<td>".$row["Presupuesto"]."</td> \n";
echo "</tr> \n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
mysql_free_result($result);
mysql_close($link);
?>
</body>
</html>

Potrebbero piacerti anche