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";
?>

Esempio

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";
?>

Esempio

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>";
}
?>

Esempio

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...";
}
?>

Esempio

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";
}
?>

Esempio

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>

Esempio

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>";
?>

Esempio

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>";
?>

Esempio