Descubriendo PHP
Taller de PHP CaFeCONF 2005
Sergio Cayuqueo
[email protected]
Que es PHP y por que conviene
PHP: Hipertext Preprocessor
Creación de sitios web dinámicos.
Muy rápidamente.
Desarrollo de proyectos grandes y complejos.
Muy documentado
Fácil de aprender.
Soporte de múltiples servidores y sistemas de archivos
Soporte de mas de 10 servidores de bases de datos
Libre.
Instalar PHP
Ubuntu / debian y derivados
apt-get install php5 php5-mysql libapache2-mod-
php5 apache2
Mandriva
urpmi php5-mysql apache2-mod_php5
Fedora
yum install php php-devel php-pear php-mysql
Configurar Apache
/etc/apache2/httpd.conf
LoadModule php5_module lib/apache/libphp5.so
DirectoryIndex index.html index.php index.html.var
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
phpinfo.php
<?php
phpinfo();
?>
PHP y HTML
<HTML>
<HEAD>
<TITLE>Este es mi primer script en PHP</TITLE>
</HEAD>
<BODY>
<? print ("Hola mundo");?>
</BODY>
</HTML>
Sintaxis Básica : Variables
variables.php
<?php
$variable = "Hola mundo\n";
$Variable ="Chau\n";
// Esto es un comentario
/* Esto es un comentario
mas grande*/
?>
Sintaxis Básica : Variables II
Caracteres especiales
\” Comillas
\\ Barra invertida
\n Nueva linea
\t Tabulador
Concatenar Variables
$variable . $otravariable;
Sintaxis Básica - Funciones
Función($parametro1, $paramentro2,
CONSTANTE)
Funciones matemáticas
Funciones de texto
Funciones de base de datos
Funciones de sistema de archivos
Funciones cíclicas
Funciones de sesiones o cookies
Funciones encriptación
Funciones sockets
Nuestras funciones :-)
etc etc etc .........
phpinfo();
Sintaxis Básica : Salida
salida.php
<html>
<body>
<?php
echo “Hola Mundo\n”;
echo “Este es mi texto de salida, esto es una nueva linea\n”;
echo “Esta es una tabulación\t ”;
?>
</body>
</html>
Sintaxis Básica : Constantes
constantes.php
<html>
<body>
<?php
define ("CONSTANTE", "Hola Mundo");
printf (CONSTANTE);
?>
</body>
</html>
Sintaxis Básica : Operadores
operadores.php
<?
$a = 20;
$b = 30;
echo $a + $b;
echo $a - $b;
echo $a * $b;
echo $a / $b;
?>
50
-10
600
0.666666666667
Sintaxis Básica : Control
control.php
<?php
$a = 50;
$b = 30;
if ($a > $b) {
echo “a es mayor que b”;
}else{
echo “a es menor que b”;
}
?>
Sintaxis Básica - Control
control2.php
<?php
switch ($dia) {
case "Lunes":
echo "Hoy es Lunes";
break;
case "Martes":
echo "Hoy es Martes";
break;
case "Domingo":
echo "Hoy es Domingo";
break;
default:
echo "Esa cadena no corresponde a ningún día de la semana";
}
?>
Sintaxis Básica - Ciclos
while (expr) sentencia
cicloswhile.php
<?php
/* ejemplo 1 */
$i = 1;
while ($i <=10) {
print $i++; /* El valor impreso seria $i antes del incremento
(postincremento) */
}
/* ejemplo 2 */
$i = 1;
while ($i <=10):
print $i;
$i++;
endwhile;
?>
Sintaxis Básica – Ciclos II
ciclosdowhile.php
<?php
$i = 0;
do {
print $i;
} while ($i>0);
?>
Sintaxis Básica – Ciclos III
for (expr1; expr2; expr3) sentencia
ciclosfor.php
<?php
/* ejemplo 1 */
for ($ = 1; $i <=10; $i++) {
print $i;
}
/* ejemplo 2 */
for ($ = 1; $i <=10; print $i, $i++) ;
?>
Sintaxis Básica – Tablas (array)
Tabla usando indices
tablas.php
<?php
$ciudad[] = “Capital Federal”;
$ciudad[] = “La Plata”;
$ciudad[] = “Florencio Varela”;
$ciudad[] = “Quilmes”;
print (“Yo Vivo en “ . $ciudad[0] . ” \n”);
print (“Yo Vivo en “ . $ciudad[1] . ” \n”);
print (“Yo Vivo en “ . $ciudad[2] . ” \n”);
print (“Yo Vivo en “ . $ciudad[3] . ” \n”);
?>
Sintaxis Básica – Tablas II
Tabla usando la función array( string, string)
tabla2.php
<?php
$ciudad = array(“Capital Federal”, “La Plata”, “Florencio Varela”,
“Quilmes”);
// Conteo de los elementos de la tabla
$numerodelementos = count ($ciudad);
// Imprimimos todos los elementos de la tabla
for ($i = 0; $i < $numerodelementos; $i++) {
print(“la ciudad $i es la $ciudad[$i] \n”);
}
?>
Especificar el primer índice diferente de 0
$ciudad = array(1=>“Capital Federal”, “La Plata”, “Florencio
Varela”, “Quilmes”);
Sintaxis Básica – Tablas III
Tablas asociativas
$visitas[0] = 200;
$visitas[1] = 186;
...
$visitas[“lunes”] = 200;
tablas3.php
<?php
$visitas = array("lunes"=>200,"martes"=>186);
echo $visitas["lunes"]."\n";
echo $visitas["martes"]."\n";
?>
Sintaxis Básica – Tablas IV
Tablas multidimensionales
Cada elemento dentro de la tabla es a su vez otra tabla
<?php
$cfg['usuario']['nombre'] = "sergio";
$cfg['usuario']['password'] = "dificildeadivinar";
$cfg['usuario']['privilegios'] = "administrador";
?>
Sintaxis Básica - Tablas V
foreach.php
<?php
$arr = array("one", "two", "three");
foreach ($arr as $value) {
echo "Value: $value<br>\n";
}
?>
Funciones de usuario
Funcion ( argumento1, argumento2, argumento3) {
Bloque de codigo;
}
suma.php
<?php
function suma ($x, $y)
{
$x = $x + 1;
return $x+$y;
}
$a = 1;
$b = 2;
//parámetros por valor
echo suma ($a, $b); // imprimirá 4
echo $a; // imprimirá 1
?>
Funciones para funciones
<?php
if (function_exists('imagecreate')) {
echo "GD Library is enabled <br>\r\n<pre>";
var_dump(gd_info());
echo "</pre>";
} else { echo 'Sorry, you need to enable GD library first'; }
?>
call_user_func -- Llamar una función de usuario dada por el primer
parámetro
call_user_func(array('Clase', 'miMetodoDeRetorno'));
global – Accede a una variable global de la aplicacion
Funciones
<?php
function myrow($id, $data)
{
return "
<tr>
<th>$id</th>
<td>$data</td>
</tr>\n";
}
$arr = get_defined_functions();
print_r($arr);
?>
Array
(
[internal] => Array
(
[0] => zend_version
[1] => func_num_args
[2] => func_get_arg
...
[751] => bccomp
)
[user] => Array
(
[0] => myrow
)
)
Include
Include Require Include_once Require_once
footer.inc
<html>
<body>
feader.inc
</body>
</html>
config.inc
$cadena = "Hola Mundo";
index.php
require ("config.inc");
include ("header.inc");
echo $cadena;
include ("footer.inc");
Formularios
formulario.html
<FORM ACTION=”dos.php” METHOD=”POST”>
Edad: <INPUT TYPE=”text” NAME=”edad”>
<INPUT TYPE=”submit” VALUE=”aceptar”>
</FORM>
formulario.php
<?php
$edad = $_REQUEST[‘edad’];
print (“La edad es: $edad”);
?>
Formularios
Acceso a los diferentes tipos de elementos de entrada de
formulario
Elementos de tipo INPUT
TEXT
RADIO
CHECKBOX
BUTTON
HIDDEN
PASSWORD
SUBMIT
Elemento SELECT
Simple / múltiple
Elemento TEXTAREA
Input - Text
Introduzca la cadena a buscar:
<INPUT TYPE="text" NAME="cadena" VALUE="valor
por defecto" SIZE="20">
<?php
print ($_REQUEST [‘cadena’]);
?>
Input - Radio
<INPUT TYPE="radio" NAME="titulacion"
VALUE=“II“ CHECKED>I.Informática
<INPUT TYPE="radio" NAME="titulacion"
VALUE="ITIG">I.T.I. Gestión
<INPUT TYPE="radio" NAME="titulacion"
VALUE="ITIS">I.T.I. Sistemas
<?php
print ($_REQUEST [‘titulacion’]);
?>
Input - Checkbox
<INPUT TYPE="checkbox" NAME="extras[]"
VALUE="garaje" CHECKED>Garaje
<INPUT TYPE="checkbox" NAME="extras[]"
VALUE="piscina">Piscina
<INPUT TYPE="checkbox" NAME="extras[]"
VALUE="jardin">Jardín
<?php
foreach ($_REQUEST[‘extras’] as $extra)
print (“$extra<BR>\n”);
?>
Input - Button
<INPUT TYPE="button" NAME="nueva"
VALUE="Añadir una más">
<?php
if ($_REQUEST [‘nueva’])
print ("Se va a añadir una nueva");
?>
Input - Hidden
<?php
print(“<INPUT TYPE=’hidden’ NAME=’username’
VALUE=’$usuario’>\n”);
?>
<?php
print ($_REQUEST [‘username’]);
?>
Input - Password
Contraseña: <INPUT TYPE="password"
NAME="clave">
<?PHP
print ($_REQUEST [‘clave’]);
?>
Input - Submit
<INPUT TYPE="submit" NAME="enviar"
VALUE="Enviar datos">
<?php
if ($_REQUEST [‘enviar’])
print ("Se ha pulsado el botón de enviar");
?>
Input – Select Simple
<SELECT NAME="titulacion">
<OPTION VALUE="II" SELECTED>Ingeniería
Informática
<OPTION VALUE="ITIG">Ingeniería Técnica en
Informática de Gestión
<OPTION VALUE="ITIS">Ingeniería Técnica en
Informática de Sistemas
</SELECT>
<?php
print ($_REQUEST [‘titulacion’]);
?>
Input – Select múltiple
<SELECT MULTIPLE SIZE="3" NAME="idiomas[]">
<OPTION VALUE="ingles" SELECTED>Inglés
<OPTION VALUE="frances">Francés
<OPTION VALUE="aleman">Alemán
<OPTION VALUE="holandes">Holandés
</SELECT>
<?php
foreach ($_REQUEST[‘idiomas’] as $idioma)
print (“$idioma<BR>\n”);
?>
Input - Textarea
<TEXTAREA COLS=“30" ROWS=“4"
NAME="comentario">
Este libro me parece ...
</TEXTAREA>
<?php
print ($_REQUEST [‘comentario’]);
?>
Manejo de Archivos
Fopen( path, modo)
modos R W
Fread (variable_fopen, buffer)
archivos.php
<?php
$archivos = fopen("archivos.texto",'r');
echo fread($archivos, 4096);
?>
Manejo de Archivos II
Fputs( indicador_archivo, cadena )
archivos2.php
<?php
//abre un archivo y escribe en él
$archivo = fopen("archivos.texto" , "w");
if ($archivo) {
fputs ($archivo, "Hola Mundo");
}
fclose ($archivo);
?>
Fclose ( indicador_archivo )
Manejo de Archivos III
File_exists (archivo)
archivos3.php
<?php
if (file_exists("data.txt")) {
echo "El fichero existe";
} else {
echo "El fichero NO existe";
}
?>
Manejo de Archivos IV
Copy (origen , destino)
archivos4.php
<?php
if (copy("archivos.texto", "/tmp/data.txt")) {
echo "El fichero ha sido copiado con éxito";
} else {
echo "El fichero NO se higo";
echo "El fichero NO se ha podido copiar";
}
?>
Funciones de texto
Algunas funciones para procesar texto
texto.php
<?php
if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {
echo "Usted usa Explorer :-(";
} else {
echo "Usted no usa Explorer :-)";
}
?>
strtoupper(string) vuelve todo a mayúsculas
strtolower(string) vuelve todo a minúsculas
Funciones de texto
Archivo base64 recibido por mail
<?php
echo base64_decode
?>
("UBBQAAAAAAC+bRi+gB+M3cC4AAHAuAFQjAzNzY”);
<?php
$archivos = fopen("archivoencodeado",'r');
echo base64_decode(fread($archivos, 4096));
?>
Funciones de Texto
<?php
$file = "archivo
Comentarios de: descubriendo PHP (0)
No hay comentarios