substr: Estrazione di sottostringhe in php

Obiettivo del tutorial: Utilizzare la funzione substr per estrarre sottostringhe in php

In un tutorial scriveremo un pò di codice per estrarre parti di stringhe.

Utilizzeremo la funzione substr().

snbstr() substr()

Questa funzione riceve in ingresso tre parametri: la stringa dalla quale estrarre la sottostringa, l’indice di posizione della stringa che punta al primo carattere della sottostringa da estrarre e il numero di caratteri da estrarre.

Estrazione di una sottostringa con substr()

<?php
  $stringa = "Stringa da cui estrarre";
  // Visualizzazione sottostringa
  echo substr($stringa, 11, 5); 
?>

La stringa visualizzata è cui e

Si tratta proprio di 5 caratteri a partire dalla posizione 11.

Inserendo il secondo parametro negativo si fà partire il conteggio dalla fine della stringa:

<?php
  $stringa = "Stringa da cui estrarre";
  echo substr($stringa, -4, 5); 
  // risultato: "arre"

  echo substr($stringa, -2, 5); 
  // risultato: "re"

  // Il terzo parametro negativo escude "n" 
  // caratteri della sottostringa partendo 
  //  dalla fine

  echo substr($stringa, -4, -1); 
  // risultato: "arr"

  echo substr($stringa, -4, -2); 
  // risultato: "ar"
?>

Bene, dovreste ora essere in grado data un astringa di estrarre qualsiasi sottostringa vogliate.

Proteggere l’indirizzo email dallo SPAM

Obiettivo del tutorial: Implementazione di un metodo in PHP per proteggere l’indirizzo email dallo spam.

In un tutorial vedremo come proteggere l’indirizzo email dallo spam.

Quando un webmaster scrive sul sito indirizzi email spesso non usa alcuna forma di protezione, cioè si limita a scrivere codice del tipo:

mailto:info@sito.com

La scrittura dell’indirizzo email in chiaro come sopra semplifica la vita ai programmi spam, che cercano automanticamente codice come quello scritto sopra e inviano il loro carico di “SPAM”.

Per rendere più difficile la vita agli spammer si può camuffare l’indirizzo email utilizzando i caratteri ASCII.

Ad esempio, metterei una barriera ai programmi spam scrivendo nel sito web l’indirizzo sopra nel modo seguente:

<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#105;
&#110;&#102;&#111;&#64;&#115;&#105;&#116;&#111;&#46
;&#99;&#111;&#109;">Contatti</a>

Di seguito vedremo come realizzare una funzione in PHP che riceva in ingresso l’email in chiaro e la trasformi in caratteri ASCII.

<?php
  function ProteggiMail($s) {
    $risultato = '';
    $s = 'mailto:' . $s;
    for ($i = 0; $i < strlen($s); $i++) {
      $risultato .= '&#' . ord(substr($s, $i, 1)) .
        ';';
    }
    return $risultato;
  }

  echo '<a href="' . 
    protectMail('info@sito.com') .
    '">Contatti</a>';
?>

Il codice mi sembra chiaro.

Con il ciclo for si prendono tutti i caratteri della stringa “mailto:info@sito.com” uno per volta e per ciascuno si determina il suo valore ASCII, utilizzando la funzione ord.

La funzione ord prende un carattere in ingresso e restituisce il suo codice ASCII.

Il risultato sarà una mail scritta con i codici ASCII come quella indicata sopra.

Risorse utili

Funzione PHP per verificare indirizzo email

Obiettivo del tutorial: Analizzare una funzione php da usare per valutare un indirizzo email.

Un bisogno che hanno molti webmater è quello di verificare le email che l’utente inserisce nei form.

Anticipiamo che non è facile costruire una funzione che copra tutti i casi possibili. Nella funzione che proponiamo di seguito dei controlli su alcuni elementi che devono essere assolutamente presenti nell’email affincgè questa possa essere ritenuta valida.

function VerificaEmail($s) {
  $punto = strrpos($s, '.');
  $chiocciola = strrpos($s, '@');
  $lunghezza = strlen($s);
  return !(
    $punto === false ||
    $chiocciola === false ||
    $lunghezza === false ||
    $punto - $chiocciola < 3 ||
    $lunghezza - $punto < 3
  );
}

La funzione strpos() verifica la presenza nella stringa passata come primo parametro del carattere passato come secondo parametro, e restituisce la posizione in cui viene trovato.

Nell’esempio sopra abbiamo verificato che la stringa che rappresenta l’email contenga il punto e la chiocciola.

Abbiamo verificato inoltre che la stringa non sia vuota (cioè di lunghezza zero). Inoltre la stringa è considerata valida se ci sono almeno tre caratteri tra la chiocciola e il punto.

Conversione da stringa a array e da array in stringa con PHP

Obiettivo del tutorial: Imparare ad utilizzare le funzioni explode() e implode() di PHP per la covertire una stringa in un array e un array in una stringa.

Php mette a disposizione degli sviluppatori di applicazioni web diverse funzioni da utilizzare con le stringhe.

Nel tutorial di seguito esamineremo le funzioni explode() e implode().

Conversione da stringa ad array

La funzione explode() permette di trasformare una stringe in un array. Nella stringa, i pezzi che andranno a formare gli elementi dell’array devono essere separati da un “carattere speciale”, una virgola, un punto..

Esempio conversione da stringa ad array

<?php
  $stringa = 'Webmaster,via Garibaldi 6,Pisa,0569,00034542';
  $a = explode(',', $stringa);
  $info = print_r($a, true);
  echo "<pre>$info</pre>";

?>

L’output prodotto dal codice sopra sarà:

Array
(
    [0] => Webmaster
    [1] => via Garibaldi 6666
    [2] => Pisa
    [3] => 0569
    [4] => 00034542
)

Il carattere di separazione deve essere specificato come primo parametro della explode(), la stringa sulla quale effettuare l’operazione come secondo parametro.

Conversione da array a stringa

E’ possibile fare anche l’operazione inversa a quella presentata sopra, cioè trasformare un array in una stringa.

La funzione che si usa in questo caso è implode().

Esempio conversione da array a stringa

<?php
  $a = array(
    'Webmaster',
    'via Garibaldi 666',
    'Pisa',
    '0569',
    '00034542'
  );
  $stringa = implode(',', $a);
  echo $stringa;
?>

L’output visualizzato con l’ultimo pezzo di codice sarà la stringa di partenza : ‘Webmaster,via Garibaldi 6,Pisa,0569,00034542

array_rand – Estrarre elementi casuali da un array in PHP

Obiettivo del tutorial: Vedremo una tecnica per estrarre elementi in modo random da un array con il linguaggio PHP. Utilizzeremo la funzione array_rand.

Come è possibile estrarre elementi da un array in modo random?

Utilizzeremo la funzione php array_rand().

La sua sintassi è molto semplice, bisogna fornire alla funzione due parametri l’array (come primo parametro) e il numero di estrazioni da fare in questo array (come secondo parametro).

Supponendo di aver definito il seguente array:

$colori = array('bianco'
, 'viola' 	
, 'giallo'
, 'verde'
, 'blu'
, 'rosso');

Con la riga seguente:

array_rand($colori,2);

Estraiamo due elementi dall’array $colori.

Utilizzando la funzione implode vista in un altro tutorial possiamo visualizzare direttamente la sequenza delle estrazioni come un unica stringa.

echo implode(' ', array_rand($colori, 2));