Stringhe e Ricerche
Ora impareremo a manipolare le stringhe. Possiamo fare tantissime cose con le stringhe : estrarre una porzione, ottenere la lunghezza, eliminare gli spazi, manipolare i caratteri, ricercare parole, confrontarle, codificare e decodificare gli URL, gestire i caratteri speciali html. Vediamoli uno per uno.
Estrarre una porzione di stringa
per estrarre basta indicare a php dove iniziare e dove finire con l’estrazione usando la funzione substr
<?php
$stringa = "Bruce Willis";
$nome = substr($stringa,0,5);
$cognome = substr($stringa,6);
echo "il nome è $nome , il cognome è $cognome";
?>
Potete notare come nel cognome abbiamo indicato a php solo da dove iniziare e lui estrarrà da lí fino alla fine.
Ottenere la lunghezza di una stringa
Questa funzione è facilissima basta indicare la stringa nella funzione strlen
<?php
$nome="giorgio";
$lunghezza=strlen($nome);
echo "nella stringa ci sono $lunghezza caratteri";
?>
risultato : nella stringa ci sono 7 caratteri
Eliminazione degli spazi
Si fa utilizzando la funzione trim sempre indicando la stringa
<?php
$nome=" giorgio ";
$stringaripulita=trim($nome);
echo "ecco la stringa ripulita $stringaripulita";
?>
Rendere maiuscola l’iniziale di una stringa
Per rendere l’iniziale di una stringa maiuscola si usa la funzione ucfirst. Se nella stringa ci sono più paroleucwords.
<?php
$nome="pinco pallino";
$stringa=ucfirst($nome);
echo "Nome :$stringa";
?>
Risultato Pinco pallino
<?php $nome="pinco pallino"; $stringa=ucwords($nome); echo "Nome :$stringa"; ?>
Risultato Pinco Pallino
<–nextpage–>
Cercare una stringa
Per cercare una stringa abbiamo due funzioni strpos estrrpos. La prima troverà la prima occorrenza mentre la seconda l’ultima occorrenza.
<?php
$msg="Abbiamo una situazione d'emergenza, gente, ripeto: una situazione d'emergenza";
$prima_occorrenza=strpos($msg,"emergenza");
$ultima_occorrenza=strrpos($msg,"emergenza");
echo "La prima occorrenza è al carattere $prima_occorrenza, l'ultima al carattere $ultima_occorrenza";
?>
Esempio
Ricerca e sostituzione
Sintassi: str_peplace(cerca,inserisci,stringa);
<?php
$msg="La Juventus è seconda in classifica";
$classificanuova=str_replace("seconda","prima",$msg);
echo $classificanuova;
?>
Risultato : La Juventus è prima in classifica
Convertire un numero in un carattere ASCII
echo (chr(38)); risultato : &
Confronto di due stringhe
Nella convalida dei campi è importante assicurarsi che due stringhe siano uguali. Usiamo la funzione strcmp con il nome delle due stringhe.
<?php
$password_1="master";
$password_2="masterd";
echo strcmp($password_1,$password_2);
?>
Il risultato darebbe -1 perchè non corrispondono altrimenti darebbe 0
Suddividere una stringa in un array
Si usa la funzione explode e tra le ” ” indichiamo il separatore
<?php
$linea_passwd="giorgio,nicola,peppe";
$campi=explode("," ,$linea_passwd);
while (list(, $valore) = each ($campi)) {
echo "Valore: $valore<BR>";
}
?>
Codifica degli a capo di html <br> (vi servirà per MySql)
$testo=n12br($testo);
echo "$testo";
Codifica e Decodifica di una stringa URL
Per codifica si usa urlencode e per decodificare urldecode
$input = urlencode("nome_segreto=Giorgio Tave hobby=calcio");
risultato nome_segreto%3DGiorgio!Tave!hobby%3Dcalcio
$input = urldecode("nome_segreto%3DGiorgio!Tave!hobby%3Dcalcio");
risultato nome_segreto=Giorgio Tave hobby=calcio
Questo vi servirà più tardi quando analizzeremo i form
<–nextpage–>
Gestione degli apici (anche questo per MySql)
Abbiamo due funzioni una mette le controbarre davanti agli apici e una li toglie. addslashes e stripslashes.
$stringa = addslashes($stringa);
echo "$stringa";
$stringa = stripslashes($stringa);
echo "$stringa";
Gestione di caratteri speciali HTML
Ci sono dei caratteri html che vanno protetti altrimenti alcuni testi potrebbero essero troncati. Ecco la funzionehtlmspecialchars
$stringa = htmlspecialchars($stringa);
echo "$stringa";
Ricerche in generale, all’inizio di una stringa e alla fine
In generale
<?php
$str="quando arrivi fammi un Segnale ";
$pattern="Segnale";
if (!ereg($pattern,$str)) {
echo "Nessuna corrispondenza trovata utilizzando la parola $pattern";
} else {
echo "Ho trovato una corrispondenza utilizzando la parola $pattern... continua la normale elaborazione...";
}
?>
Ricerche all’inizio di una stringa.
Per cercare una parola all’inizio di una stringa basta mettere ^ prima di essa.
<?php
$str="Emergenza, Emergenza Sto Affondando Per Un Segnale 15";
if (ereg("^Emergenza",$str)) {
echo "La parola 'Emergenza' è all'inizio di $str";
} else {
echo "La parola 'Emergenza' non è all'inizio di $str";
}
?>
Per cercare invece alla fine di una stringa basta mettere $ alla fine della parola
<?php
$str="Emergenza, Emergenza Sto Affondando Per Un Segnale 15";
if (ereg("15$",$str)) {
echo "Il numero 15 è alla fine di $str";
} else {
echo "Il numero 15 non è alla fine di $str";
}
?>
<–nextpage–>
Possiamo inserire una stringa anche con ereg_replace che accetta anche i caratteri speciali di espressioni regolari come ^ o $.
<?php
$grassetto="<B>";
$str="Emergenza, Emergenza Sto Affondando Per Un Segnale 15";
$nuova_str=(ereg_replace("^","$grassetto",$str));
echo "$nuova_str";
?>
Lo stesso vale per la marcatura <br>
Abbiamo un’altra funzione importante ed è split.
Essa prende una stringa e la inserisce in un array mentre noi dobbiamo specificare il sepatore dei campi. Lo spazio è una scelta comune
<?php
$str="Emergenza, Emergenza Sto Affondando Per Un Segnale 15";
$pattern=" ";
$risultato=split($pattern,$str);
foreach ($risultato as $valore)
echo "$valore<BR>";
?>
Immaginiamo di avere un negozio con degli articoli
<?php
$str="articolo=Magliette articolo=Pantaloni articolo=Cappotti articolo=Giacche";
$pattern="articolo=";
$risultato=split($pattern,$str);
foreach ($risultato as $articolo)
echo "$articolo<BR>";
?>