Per tutti quanti coloro che desiderano pubblicare degli indirizzi email visibili sulle loro pagine web, ma sono terrorizzati dallo spam, questo semplice script in php vi consente di mettervi in parte al riparo da questo problema.

Quello che fa lo script è produrre un’immagine PNG al volo contenente l’indirizzo email da voi passato, inoltre per evitare che gli spider dediti alla raccolta di email riconoscano nel vostro codice html l’indirizzo, questo può essere invalidato con due tecniche (che in realtà possono essere anche abinate insieme):

  1. con l’inserimento di un numero arbitrario di spazi bianchi all’interno dell’email
  2. con la sostituzione del carattere @ con la stringa [___AT___] (N.B. sono tre gli underscore prima e dopo AT).

Lo script prevede anche la possibilità di rendere lo sfondo dell’immagine trasparente in modo da adattarla allo sfondo della pagina sulla quale deve visualizzare l’immagine, per questa funzionalità basterà decommentare la linea 15 del file emailToImage.php

Per quanto riguarda l’utilizzo del file vi propongo qui di seguito un breve codice HTML (perdonatemi se non è un codice perfetto ma non è questo l’intento dell’articolo):

Error: Could not open Test_emailToImage.html

mentre per quanto riguarda il codice dello script PHP è questo

/*---------------------------------------------     *
* EmailToImage.php                                  *
* Realizzato da: Antonello Cicchese                 *
* http://www.antonellocicchese.com                  *
* If you use this script                            *
* please keep this notice                           *
*-----------------------------------------------    */

function emailToImage ( $email )
{
if($email){
/* Ripulisco l'email dagli spazi se è stata scritta come nome    @    dominio.xx */
$email = ereg_replace(" ","",$email);
/* Produco un'email valida se è stata scritta come nome[___AT___]dominio.xx */
$email = ereg_replace("\[___AT___\]","@",$email);

$length = strlen($email);
$imgOutput = ImageCreateTrueColor($length*8,20);
$black = ImageColorAllocate($imgOutput, 0, 0, 0); /* Alloco il colore nero per il testo*/
$white = ImageColorAllocate($imgOutput, 255, 255, 255); /* Alloco il colore bianco per lo sfondo */
ImageFill($imgOutput,0,0,$white); /* Riempio lo sfondo con il bianco */
//ImageColorTransparent($imgOutput,$white); /* Se attivato rende lo sfondo trasparente */
ImageString($imgOutput, 3, $length/2, 3, $email, $black); /* Scrivo l'email centrata */
/* Produco l'immagine di output */
header("Content-type: image/png");
header("Content-Disposition:inline;filename=".$email.".png");
ImagePng($imgOutput);
ImageDestroy($imgOutput);
}
return;
}

if(isset($_GET['email'])) emailToImage($_GET['email']);

Come è facile vedere nel file html il trucco c’è e si vede, basta inserire nella pagina uno o più tag img il cui attributo src punti verso il file php che produce l’immagine seguito dalla variabile “email”, preceduta da un ? e dal carattere &, che contiene il valore dell’email da convertire in immagine, scritta in uno dei due formati consentiti, e verrà visualizzata l’immagine risultante.Questo è il link per scaricare il file html Test_emailToImage.html
e questo è il link per scaricare lo script php emailToImage.phpmentre questo è il risultato del suo utilizzo: Esempio di realizzazione immagine da email