O semnatura personalizata
Scris de Agkelos
Probabil ati vazut toti semnaturile alea dragute cu “Ai browserul X si IP-ul a.b.c.d”. Ca sa va puteti pune o semnatura de genul asta aveti 2 variante. Prima, intrati pe un site care ofera serviciul respectiv, completati un formular, primiti un URL si gata distractia. A doua varianta, “geek style”, e sa va faceti propria semnatura. Ca exemplu, dau semnatura asta: http://fun.hostvision.ro/OSHO.png
Cum se face ? Mult mai simplu decat va puteti imagina. PHP are functii de generare de imagini. Functiile respective combinate cu alte cateva + niste variabile si e gata semnatura. Ca sa nu o mai lungesc, va pun mai jos codul cu comentarii:
<?php
// variabila $IP va primi ca valoare adresa IP a vizitatorului
$ip = $_SERVER[’REMOTE_ADDR’];// Se creaza o imagine pornind de la o imagine de baza
// de tip GIF
$img = @imagecreatefromgif(’oblivion.gif’);// Setam culoarea pentru text
$txtColor = ImageColorAllocate($img,255,255,150);// Afisam textul #ping -f IP_VIZITATOR (sau orice alt text)
ImageString($img,4,5,10,’#ping -f ‘.$ip,$txtColor);// Modificam nuanta pentru afisarea textului si
// afisam un alt mesaj “(C)Copyright Operabilus”
$txtColor = ImageColorAllocate($img,240,255,100);
ImageString($img,1,390,55,’(C) Operabilus’,$txtColor);// Imaginea e pregatita, mai trebuie sa “pregatim” browserul
// asa ca ii spunem in header sa astepte un fisier imagine
// de tip png (nu text/html cum e obisnuit)
Header(’Content-type: image/png’);// Afisam imaginea
ImagePng($img);// Iar apoi o distrugem… mai salvam din resursele serverului :D
ImageDestroy($img);
?>
De ce aveti nevoie pentru rularea scriptului e un server web care sa aiba suport de PHP intr-o versiune mai noua de 4.3, si PHP sa includa biblioteca GD2. Dupa cum v-ati dat seama, http://www.as.ro/ ar fi o varianta.
O alta varianta a codului ar fi cea in care nu se foloseste o imagine de baza (fundal) pentru imaginea nou creata. Diferenta fata de codul de sus, este functia de creare a imaginii. Aceasta va fi ImageCreateTrueColor(latime,inaltime); si, probabil, veti vrea sa puneti o culoare de fundal operatie executata de comanda ImageFill($img,0,0,$color) unde $color e rezultatul apelului unei functii ImageColorAllocate la fel ca mai sus.
Categoria: Web
