Premettendo che questa è la mia prima pillola, come diceva un uomo inteligentissimo: chi è senza peccato scagli la prima pietra
. Comunque, fò il serio, scrivo questa piccola pillola che rispetto alla guida proposta in http://php.html.it è molto più piccola e forse più facie da comprendere per i neofiti
Oggi, cari ragazzi, vi illustrerò come creare in modo automatico delle scritte su di una immagine partendo da una di base.
Il codice essenziale (sfruttando le librerie GD) è questo:
Codice PHP:
<?php
if(isset($_POST['text']))
$text = $_POST['text'];
else
$text = "";
if(!isset($_POST['count']))
$count=1;
else
$count = $_POST['count'];
if($text == "reset")
$count=1;
else {
$image = ImageCreateFromJPEG("graphics/button.jpg");
$blue = ImageColorAllocate($image,0,0,255);
$width = ImageFontWidth(4) * strlen($text);
$x = (200 - $width)/2;
ImageString($image,4,$x,15,$text, $blue);
$name = "graphics/button" . $count . ".png";
ImagePNG($image, $name);
ImageDestroy($image);
}
echo("<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>");
echo("Inserisci il testo: <input type='text' name='text'>");
echo("<input type='hidden' name='count' value='" . ++$count . "'>");
echo("<input type='submit'>");
echo("</form>");
for($a=2;$a<$count;$a++)
echo("[img]graphics/button" . $a . ".png[/img]");
?>
Non l'ho appositamente commentato perchè ora vedremo piano piano le funzioni di ogni pezzo di codice
Le prime quattro righe controllano il valore del testo che utilizzate per memorizzare il testo del pulsante:
Codice PHP:
if(isset($_POST['text']))
$text = $_POST['text'];
else
$text = " ";
Dopo di chè, verifichiamo se la variabile $count esiste mentre se non esiste la impostiamo a 1, essa viene utilizzata per memorizzare la quantità di pulsanti creati:
Codice PHP:
if(!isset($_POST['count']))
$count=1;
else
$count = $_POST['count'];
Andando avanti, vediamo come lo script controlli se il valore $text è pari a "reset". La variabile $text serve per contenere il testo inserito tramite il modulo e per creare la parte di testo che viene inserito sulla targhetta. Se l'utente scrive "reset" il numero di pulsanti creati viene riportato a 1, il che ci consente di ricominciare:
Codice PHP:
if($text == "reset")
$count=1;
else {
Se invece il valore della variabile $text è diverso da "reset", l'immagine della targhetta viene creata:
Codice PHP:
$image = ImageCreateFromJPEG("graphics/button.jpg");
$blue = ImageColorAllocate($image,0,0,255);
$width = ImageFontWidth(4) * strlen($text);
$x = (200 - $width)/2;
ImageString($image,4,$x,15,$text, $blue);
$name = "graphics/button" . $count . ".png";
ImagePNG($image, $name);
ImageDestroy($image);
Ora, viene stampato sullo schermo il modulo per l'imput del testo:
Codice PHP:
echo("<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>");
echo("Inserisci il testo: <input type='text' name='text'>");
echo("<input type='hidden' name='count' value='" . ++$count . "'>");
echo("<input type='submit'>");
echo("</form>");
E per finire lo script usa un semplice ciclo for per visualizzare le targhette create:
Codice PHP:
for($a=2;$a<$count;$a++)
echo("[img]graphics/button" . $a . ".png[/img]");
Ohh.. e lo script è bello e finito, molto semplice e di immediato uso, oggi viene usato su parecchi siti per creare automaticamente quelle targhette del tipo GMAIL, HOTMAIL e dopo aver apportato una sostanziale modifica al core dello script, è stato anche utilizzato per quel famoso MSN Status Indicator. Proprio per questo mi è venuto in mente di spiegare (in linea di massima) come sia possibile creare targhette di quel tipo. Tutto qua
magari se non mi ammazzate che la settimana prossima devo andare a un matrimonio è