Mòduls amb PHP

16
Mòduls amb PHP Carles Gonzàlez Sotorres

description

Mòduls amb PHP. Carles Gonzàlez Sotorres. Index. Enviament d’e-mails. La biblioteca GD. Enviament d’e-mails. S’utilitza la funció mail: bool mail ( string email, string assumpte, string missatge [, string capçaleres_addicionals [, string parametres_addicionals]] ) - PowerPoint PPT Presentation

Transcript of Mòduls amb PHP

Page 1: Mòduls amb PHP

Mòduls amb PHP

Carles Gonzàlez Sotorres

Page 2: Mòduls amb PHP

Index

Enviament d’e-mails.

La biblioteca GD.

Page 3: Mòduls amb PHP

Enviament d’e-mails. S’utilitza la funció mail:

bool mail( string email, string assumpte, string missatge [, string capçaleres_addicionals [, string parametres_addicionals]] )

email: Formats: [email protected] [email protected], [email protected] Usuari <[email protected]> Usuari <[email protected]>, Altre Usuari

<[email protected]> assumpte: Assumpte del correu enviat. No deu

contenir caràcters de fi de línia. missatge: Cada línia separada per un salt de línia.

Recomanable no excedir els 70 caràcters per línia.

Page 4: Mòduls amb PHP

Enviament d’e-mails(2). Capçaleres_addicionals: Son insertades al final de la

capçalera del correu. Permet la inclusió de la capçalera “From”. Exemple:

<?

// e-mail de destí$email = ‘[email protected]’;// Assumpte$assumpte = ‘Assumpte del missatge’;// Missatge a enviar$missatge = “Hola:\nEs un exemple.\nAdeu.";// En cas que qualsevol línia tinga més de 70 caràcters, usaríem

wordwrap()$missatge = wordwrap($missatge, 70);// Enviarmail(“$email”,”$assumpte”, “$missatge”, ‘From: [email protected]’);?>

Page 5: Mòduls amb PHP

Enviament d’e-mails(3). Enviament de correu HTML.

S’ha de definir la capçalera Content-type.<?

// Assumpte$assumpte = ‘Correu HTML';// Missatge$missatge = '<html><head><title>Títol</title></head><body>  Aci escriuriem el cos del nostre missatge</body></html>';// Definim les capçaleres:

$capçaleres  = 'MIME-Version: 1.0' . "\n";$capçaleres .= 'Content-type: text/html; charset=iso-8859-1' . "\n";// Capçaleres addicionals$cabeceras .= 'From: Exemple <[email protected]>' . "\r\n";// Enviem el correumail (‘[email protected]’, $asumpte, $missatge, $capçaleres);?>

Page 6: Mòduls amb PHP

La biblioteca GD. La biblioteca GD es un conjunt de

funcions destinades a operar amb imatges.

Permet: Creació de botons dinàmics. Tractament automatitzat d’imatges rebudes

dels usuaris. Actualització més flexible. Estalvi de memòria. Etc.

Page 7: Mòduls amb PHP

La biblioteca GD (2). ¿Què he de fer per a utilitzar-la?

(Windows)

Instalar el arxiu php_gd.dll, que es pot trobar en http://www.boutell.com/gd/

Activar el mòdul de la biblioteca en el arxiu de configuració php.ini, insertant en aquest la línia de codi:extension=php_gd.dll

Page 8: Mòduls amb PHP

La biblioteca GD (3). Funcions més comuns:

Funcions de creació d’imatges:

imagecreate($x,$y) -> Crea una funció de les dimensions donades.imagecreatefromgif($arxiu) -> Crea una imatge que té de fons un arxiu

.gifimagecreatefrompng($arxiu) -> Crea una imatge que té de fons un

arxiu .pngimagecreatefromjpeg($arxiu) -> Crea una imatge que té de fons un

arxiu .jpegimagegif($im[,$arxiu]) -> Mostra la imatge creada en el navegador i la

guarda en un arxiu .gifimagepng(im[,$arxiu]) -> Mostra la imatge creada en el navegador i la

guarda en un arxiu .pngimagejpeg(im[,$arxiu]) -> Mostra la imatge creada en el navegador i la

guarda en un arxiu .jpegimagedestroy($im) -> Allibera la memòria opupada per la imatge.

Page 9: Mòduls amb PHP

La biblioteca GD (4). Funcions informatives:

getimagesize($im) -> Genera un array amb la informació de la imatge.

imagesx($im) -> Torna la amplària de la imatge.

imagesy($im) -> Torna l’altura de la imatge.

imagecolorstotal($im) -> Torna el nº total de colors empleats.

imagettfbbox($talla,$angle,$tf,$text) -> Torna un array amb les coordenades de les esquines d’un quadre imaginari que envolta text de font(tipus True Type)

Page 10: Mòduls amb PHP

La biblioteca GD (5). Funcions gràfiques:imagecolorallocate($im,255,255,255) -> Defineix un color en escala RGB.

imagecolorat($im,$x,$y) -> Defineix el color a partir del color en el punt x,y.

imagecolortransparent($im,$col) -> Defineix un color de la paleta com a transparent.

imagerectangle($im,$x1,$y1,$x2,$y2) -> Traça un rectangle definit per les coordenades de les esquines.

imagesetpixel($im,$x,$y,$col) -> Dibuixa un píxel de color $col.

imagefill($im,$x,$y,$col) -> Acoloreix una superfície amb color $col.

imagestring($im,$talla,$x,$y,$text,$col) -> Escriu un text amb una font de tamany $talla.

Page 11: Mòduls amb PHP

La biblioteca GD (6). Exemple:<?

header(‘Content-type: image/jpeg’);$imatge = ‘imatge.jpg’;// Creem una imatge des d’un arxiu .jpeg $img2 = imagecreatefromjpeg($imatge);$percent = 0.5;

// S’obtenen les noves dimensionslist($width, $height) = getimagesize($filename);$w1 = $width * $percent;$h2 = $height * $percent; // Creem una segona imatge de la meitat de grandària que l’arxiu .jpeg $img1 = imagecreatetruecolor($w1,$h1);

// Escalem la imatge .jpeg sobre la imatge nova imagecopyresized($img1,$img2,0,0,0,0,$w1,$h1,300,225);// També es podria usar la funcio imagecopyresampled amb iguals parametres

// Mostrem per pantalla la imatge original i la resultant imagejpeg($img2); imagejpeg($img1);

// Destruïm les imatges imagedestroy($img2);imagedestroy($img1);

?>

Page 12: Mòduls amb PHP

La biblioteca GD (7).

Amb l’exemple anterior se’ns mostraria per pantalla:

Page 13: Mòduls amb PHP

La biblioteca GD (8). Altre exemple:<?

header("Content-type: image/jpeg");

//Imatge que volem crear, de 140 x 140 pixels$img1 = imagecreatetruecolor(140,140);

//Imatge original$img2 = imagecreatefromjpeg("imagen.jpg");

//Copiem sobre una imatge de 30 x 30 píxelsimagecopyresized($img1,$img2,0,0,123,40,140,140,30,30);

// Mostrem les imatgesimagejpeg($img2);imagejpeg($img1);

// Destruïm les imatgesimagedestroy($img2);imagedestroy($img1);?>

Page 14: Mòduls amb PHP

La biblioteca GD (9).

... I el resultat que ens mostraria:

Page 15: Mòduls amb PHP

Bibliografía. http://www.desarrolloweb.com

http://www.php.net

Page 16: Mòduls amb PHP

Dubtes / Preguntes

¿ ?