33 Le stringhe 2
La funzione str_repeat permette di ripetere una stringa (primo argomento) per un numero di volte (secondo argomento)
echo str_repeat("*-", 70);
Un uso un po’ più sofisticato:
$celle = str_repeat("<td> cella </td>", 5); echo str_repeat("<tr> $celle </tr>\n", 10);
In questo caso metto in una variabile $celle la ripetizione di 5 volte di una colonna con scritto cella, poi stampo 10 righe con le 5 colonne con scritto cella. Ricordarsi di inserire il tutto in un <table>.
Dato questi 3 numeri:
$a = 123; $b = 494822; $c=7; echo $a.$nl; echo $b.$nl; echo $c.$nl.$nl.$nl;
La loro formattazione potrebbe generare confusione. Ci viene in contro la funzione str_pad che ordina i numeri aggiungendo delle cifre davanti e dietro.
echo str_pad($a, 10, "0", STR_PAD_LEFT).$nl; echo str_pad($b, 10, "0", STR_PAD_LEFT).$nl; echo str_pad($c, 10, "0", STR_PAD_LEFT).$nl;
Quindi i numeri verrebbero stampati:
0000000123
0000494822
0000000007
Gli argomenti sono in ordine: la stringa, di quante unità, il carattere da inserire, e la posizione dove inserirlo. STR_PAD_LEFT mette la stringa in fondo STR_PAD_RIGHT la mette all’inizio, ma è quello di default, quindi sarebbe inutile metterlo. Esiste anche STR_PAD_BOTH che mette la stringa prima e dopo
Un altro caso potrebbe essere quello di esportare dati da un csv separandoli da una virgola (o anche un altro carattere). Quindi avremo una variabile contenente i dati $cliente e un array contenente i singoli elementi:
$cliente="Rosso, Mario, via Roma 12, 17019 Varazze"; $clienteSplitato= explode(",", $cliente);
La funzione explode fa al caso nostro ed il primo argomento è il carattere separatore (la virgola) e il secondo la fonte su cui la funzione deve agire $cliente. Per stampare i singoli valori dobbiamo specificare gli indici dell’array:
$cliente="Rosso, Mario, via Roma 12, 17019 Varazze"; $clienteSplitato= explode(",", $cliente); echo $clienteSplitato[0].$nl; //cognome echo $clienteSplitato[1].$nl; //nome echo $clienteSplitato[2].$nl; //via echo $clienteSplitato[3].$nl; //cap echo $clienteSplitato[4].$nl; //città
La funzione complementare di explode è implode, che ci permette di compattare i risultati di un array sempre con un carattere separatore:
$clienteRicostruito = implode(" | ", $clienteSplitato); echo $clienteRicostruito.$nl;
Interessante è la combinazione delle 2 funzioni, per manipolare i dati e separarli da un carattere
echo implode(" ; ", explode(",", $cliente)).$nl;
Ecco il risultato: Rosso ; Mario ; via Roma 12 ; 17019 ; Varazze
Un altra funzione è strtok (token) che va a prendere un pezzo di stringa, partendo dalla sinistra, fino a incontrare un carattere che gli specifichiamo :
$frammento = strtok($cliente, ","); while ($frammento!==false) { echo $frammento.$nl; $frammento = strtok(","); }
Creiamo un ciclo che dice: fino a che $frammento non è diverso da false (usare l’operatore forte), prendi un pezzo della stringa $cliente fino alla successiva virgola. Non c’è bisogno nel secondo strtok di rispecificare da dove prendere il pezzo di stringa.
Un’altra funzione molto utile è get_meta_tags, che va ad estrarre da una pagina le stringhe che gli andiamo a specificare:
$metaTags = get_meta_tags('https://www.dueclic.com'); echo "La pagina dueclic.com è fatta da: {$metaTags[author]}".$nl; echo "dueclic contiene i seguenti meta tags: {$metaTags[description]}";
La funzione restituisce un array, quindi dovremo specificare gli indici da stampare, andandoli a vedere nel codice sorgente della pagina. Risultato:
La pagina dueclic.com è fatta da: debba
dueclic contiene i seguenti meta tags: dueclic: servizi web a Genova e in Liguria: servizi IT, web development, programmazione web, realizzazione siti web e web marketing per il tuo business.
Per pulire una stringa di tutto il contenuto html tags e lasciare puro testo ci viene in contro la comoda funzione strip_tags come da esempio:
$riga = <<< End <div class="container"><h1>dueclic - realizzazione siti web </h1> <p class=""><strong>dueclic </strong>è il ramo informatico del gruppo Molinari. Siamo un team di specialisti del web che si occupa di <strong>servizi IT, </strong><strong>web development e realizzazione siti web </strong>a Genova, Liguria e in tutta Italia. </p><p class="p-b-30 ">Dal 2009 mettiamo la nostra esperienza al tuo servizio per far <strong>decollare la tua attività su Internet. </strong>Il nostro obiettivo è fornirti tutto ciò che serve a digitalizzare il tuo business garantendoti sempre efficienza e assistenza impeccabili. End; echo strip_tags($riga);
Ecco il risultato:
dueclic – realizzazione siti web dueclic è il ramo informatico del gruppo Molinari. Siamo un team di specialisti del web che si occupa di servizi IT, web development e realizzazione siti web a Genova, Liguria e in tutta Italia. Dal 2009 mettiamo la nostra esperienza al tuo servizio per far decollare la tua attività su Internet. Il nostro obiettivo è fornirti tutto ciò che serve a digitalizzare il tuo business garantendoti sempre efficienza e assistenza impeccabili.