Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

Funzioni utili per PHP

Maggio 9th, 2009 by Giovanni Caputo

  1. Generare password random

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    
    function generatePassword($length) {
        $character = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        $password = "";
        for($i=0;$i<$length;$i++) {
            $password .= $character[rand(0, 61)];
        }
        return $password;
    }
    
    echo generatePassword(7);
    
    ?>
  2. Calcolare anni a partire dalla data di nascita

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    
    $testcase = array("12-03-1985", "15-01-1987", "01-01-2000");
    
    function getAge($year) {
        return floor(abs(strtotime('now') - strtotime($year))/31536000);
    } 
    
    foreach($testcase as $test) {
        echo "Born in $test, approximately age is " . getAge($test)." years<br/>";
    }
    ?>
  3. Ottenere indirizzo IP dei visitatori

    1
    2
    3
    4
    5
    <?php  
    
    echo "Your IP address is " . $_SERVER['REMOTE_ADDR'];  
    
    ?>
  4. Ottenere l’estensione di un file

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    
    $testcase = array("sample.txt", "sample.jpg", "sample.case.txt");
    
    function extension($filename){
        return substr(strrchr($filename, '.'), 1);
    }
    
    foreach($testcase as $test) {
        echo "Extension from $test is " . extension($test) . "<br/>";
    } 
    
    ?>
  5. Ordinamento di un array

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    
    $data_list = array("lychee", "pineapple", "apple", "mango", "strawberry", "banana", "orange", "grape", "guava");
    
    sort($data_list);
    foreach($data_list as $data) {
        echo $data . "<br/>";
    } 
    
    ?>
  6. Tempo trascorso da una certa data

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <?php
    
    $testcase = array("12-03-1985", "15-01-2007", "04-04-2009", "01-01-2009", "30-03-2009", "07-04-2009", "07-04-2009 11:12");
    
    define("MINUTE", 60);
    define("HOUR", 3600); // 60 * 60 
    define("DAY", 86400); //  60 * 60 * 24 
    define("WEEK", 604800); // 60 * 60 * 24 * 7
    define("MONTH", 2592000); // 60 * 60 * 24 * 30
    define("YEAR", 31536000); // 60 * 60 * 24 * 365
    
    function timeSince($date) {
    
        $since = abs(strtotime('now') - strtotime($date));
    
        if($since > YEAR) {
            $year = floor($since / YEAR);
            return "more than $year year(s) ago";
        }    
    
        if ($since > MONTH) {
            $month = floor($since / MONTH);
            return "about $month month(s) ago";
        } 
    
        if ($since > WEEK) {
            $week = floor($since / WEEK);
            $day = floor(($since - ($week * WEEK)) / DAY);
            return "about $week week(s), and $day day(s) ago";
        }
    
        if ($since > DAY) {
            $day = floor($since / DAY);
            $hour = floor(($since - ($day * DAY)) / HOUR);
            return "about $day day(s), $hour hour(s) ago";
        }
    
        if ($since > HOUR) {
            $hour = floor($since / HOUR);
            $minute = floor(($since - ($hour * HOUR)) / MINUTE);
            return "about $hour hour(s), $minute minute(s) ago";
        }
    
        if ($since > MINUTE) {
            $minute = floor($since / MINUTE);
            return "$minute minute(s) ago";
        }
    
        return "under 1 minute ago";	
    
    }
    
    foreach($testcase as $test) {
        echo "Time since $test is " . timeSince($test)."<br/>";
    }   
    
    ?>

Read the rest of this entry »

Category: Programmazione, Siti Web, tutorial | No Comments »

Le espressioni regolari più utili in PHP

Maggio 9th, 2009 by Giovanni Caputo

Di seguito alcune espressioni regolari molto utili per chi programma in PHP. Naturalmente i controlli sono esclusivamente sintattici.

  1. Validare indirizzo email

    $email = "test@example.com";
    if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
        echo "Your email is ok.";
    } else {
        echo "Wrong email address format";
    }

    Una soluzione migliore è usare filter_var.

    if (filter_var('test+email@fexample.com', FILTER_VALIDATE_EMAIL)) {
        echo "Your email is ok.";
    } else {
        echo "Wrong email address format.";
    }
  2. Validare usernames

    Validare username composti da caratteri alfanumerici (a-z, A-Z, 0-9), underscores, con minimo 5  e massimo 20 caratteri.

    $username = "user_name12";
    if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
        echo "Your username is ok.";
    } else {
        echo "Wrong username format.";
    }
  3. Validare numeri telefonici

    In questo caso numeri telefonici americani,  semplice da adattare per quelli di altre nazionalità.

    $phone = "(021)423-2323";
    if (preg_match('/\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x', $phone)) {
        echo "Your phone number is ok.";
    } else {
        echo "Wrong phone number.";
    }
  4. Validare indirizzi IP

    $IP = "198.168.1.78";
    if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {
        echo "Your IP address is ok.";
    } else {
        echo "Wrong IP address.";
    }
  5. Validare codici postali

    Anche in questo caso validati codici postali statunitensi.

    $zipcode = "12345-5434";
    if (preg_match("/^([0-9]{5})(-[0-9]{4})?$/i",$zipcode)) {
        echo "Your Zip code is ok.";
    } else {
        echo "Wrong Zip code.";
    }
  6. Validare numeri di carta di credito

    $cc = "378282246310005";
    if (preg_match('/^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6011[0-9]{12}|3(?:0[0-5]|[68][0-9])[0-9]{11}|3[47][0-9]{13})$/', $cc)) {
        echo "Your credit card number is ok.";
    } else {
        echo "Wrong credit card number.";
    }
  7. Validare domini

    $url = "http://komunitasweb.com/";
    if (preg_match('/^(http|https|ftp):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
        echo "Your url is ok.";
    } else {
        echo "Wrong url.";
    }
  8. Estrarre dominio da una certa URL

    echo $host;
    
    echo $text;
    $url = "http://komunitasweb.com/index.html";
    preg_match('@^(?:http://)?([^/]+)@i', $url, $matches);
    $host = $matches[1];

Read the rest of this entry »

Category: Programmazione, Siti Web, Tecnologia, tutorial | 1 Comment »

Effetto timbro con photoshop

Maggio 9th, 2009 by Giovanni Caputo

8

Oggi vi voglio proporre un tutorial  che  consentirà di creare un effetto molto simile a quello di un timbro su carta.
Selezionate per il colore di primo piano, un blu non troppo scuro. Un esempio come quello in immagine12
Inserite il testo desiderato  e create un nuovo livello, rinominatelo bordo :  Con lo strumento selezione rettangolare, create una selezione intorno al testo, come vedete in figura :

21 32
Andate ora nel menù modifica, cliccate su traccia e impostate un ampiezza di 3 pixel:
Ottenenendo qualcosa di simile all’immagine seguente:

52
A questo punto , collegare tra loro il livello di testo e quello di bordo,  da tastiera cliccate CTRL+E per creare un unico livello. Selezionate menù filtro/sfocatura , cliccate su controllo sfocatura impostando un valore basso, come nell’immagine:

6
Infine, andare  su menù/Filtro/ schizzo, selezionate bordi strappati ed impostate i valori come in figura:

71
Ruotate il livello premendo Ctrl+T  e premete invio.

Read the rest of this entry »

Category: Arte, tutorial | No Comments »

PlugIn WordPress per realizare gallerie di immagini

Maggio 6th, 2009 by Giovanni Caputo

01. Nextgen Gallery Plugin

nextgen gallery

Nextgen Gallery Plugin

02. Cleaner WordPress Gallery Plugin

2-cleaner

Cleaner WordPress Gallery Plugin

03. Lightbox Gallery Plugin

lightbox Gallery Plugin

Lightbox Gallery Plugin

04. FlippingBook Gallery Plugin

4-flippingbook

FlippingBook Gallery Plugin

05. PhotoXhibit Plugin

5-photoxhibit

PhotoXhibit

06. AWSOM PixGallery Plugin

awsom

AWSOM PixGallery Plugin

07. Falbum Gallery Plugin

falbum

Falbum Gallery Plugin

08. Lazyest Gallery Plugin

8-lazyest-gallery

Galleria Lazyest Plugin

09. WP Photo Album Plugin

WP Photo Album Plugin

WP Plugin Photo Album

Inline Gallery Plugin

inline gallery

Read the rest of this entry »

Category: Programmazione, Siti Web | No Comments »

Tutorial per creare effetti autentici alle foto /2

Maggio 4th, 2009 by Giovanni Caputo

Dave Hill Look Photo Effect

Dave Hill Look Photo Effect

Extreme Contrast Photo Effect

Extreme Contrast Photo Effect

Infrared Photo Effect

Infrared Photo Effect

Soft Focus & Glow Effect

Soft Focus & Glow Effect

High Pass Filter

High Pass Filter

Change Hair Color Tutorial

Change Hair Color Tutorial

Coloring Effect Tutorial

Coloring Effect Tutorial

Light Effects

Light Effects

Snow Photo Effect

Snow Photo Effect

Streams Of Dusty Light

Streams Of Dusty Light

Photo Color Correction

Photo Color Correction

Enhance Skin Tutorial

Enhance Skin Tutorial

Gaussian Blur

Gaussian Blur Read the rest of this entry »

Category: Arte, tutorial | No Comments »

Scroller di immagini in JQuery

Aprile 23rd, 2009 by Giovanni Caputo

Finished Product

Se volete realizzare uno scroller di immagini in jquery potete sfruttare il seguente tutorial:

LINK

Category: Programmazione, Siti Web, Tecnologia, tutorial | No Comments »

Realizzare una tag-cloud con GWT (Google Web Toolkit)

Aprile 21st, 2009 by Giovanni Caputo

Ciao a tutti, volevo segnalare il seguente tutorial dove viene spiegato come realizzare una tag-cloud in GWT (Google Web Toolkit).

Tag Cloud

Con lo stesso tutorial si può capire anche come far interagire AJAX realizzato in GWT ad un server che risponde con dati in formato JSON.

Lo consiglio a tutti gli sviluppatori che vogliono realizzare codice in Javascript conoscendo solamente Java.

TUTORIAL

Category: programmi, Siti Web, Tecnologia, tutorial | No Comments »

Scatola esagonale di cartone

Aprile 21st, 2009 by Giovanni Caputo

something I made

Se volete realizzareuna scatola esagonale di cartone guardate il seguente tutorial:

TUTORIAL

Category: Fai da te, Paper toy | No Comments »

Design: Out Of The Box

Aprile 18th, 2009 by Giovanni Caputo

Setup

Uilizzare un’immagine

Logo

HTML per la pagina:

<div id="container">
<img id="logo" src="logo.png" alt="Lee Munroe" />
</div>

E stili css come segue:

body{
background:#999999;
}

#container{
width:960px;
background:#fff;
margin:20px auto;
padding:10px;
}

Preview

Inside box

Posizione relativa per ottenere il risultato

#container{
width:960px;
background:#fff;
margin:20px auto;
padding:10px;
position:relative;
}
#logo{
position:absolute;
left:-15px;
}
Outside box

Read the rest of this entry »

Category: programmi, Siti Web, tutorial | No Comments »

A breve corso per sviluppare applicazioni per iPhone

Aprile 3rd, 2009 by Giovanni Caputo

Sta per arrivare il primo corso su iTunes per sviluppare applicazioni iPhone. A cura dell’Univeristà di Stanford.

Sono già disponibili altri corsi moto interessanti sempre a cura della stessa università:

Machine Learning

Programmin Abstraction

Huma computer Interaction

Category: Siti Web, Tecnologia | No Comments »