29 Le stringhe
Esistono 3 modi per manipolare le stringhe, 2 li abbiamo già trattati
- Con i doppi apici (“):
$nl ="<br />" $riga = "$nl ....";
In questo caso, cone virgolette, il valore di $nl viene espanso e creerà uno spazio vuoto e i puntini, interpretando l’html.
- Con il singolo apice
$nome = '$nl Giorgio';
Qui la stringa all’interno dell’apice viene ripetuta uguale a come è scritta e il codice non viene interpretato, qui $nl varrà $nl e non una riga vuota.
Il terzo modo è quello di usare il triplo minore <<< (HERE DOC) cioè inizia il documento
$brano = <<<Citazione Quel ramo del lago di Como, che volge a mezzogiorno, tra due catene non interrotte di monti, tutto a seni e a golfi, a seconda dello sporgere e del rientrare di quelli, vien, quasi a un tratto, a ristringersi, e a prender corso e figura, tra un promontorio a destra... Citazione
Si usa normalmente quando c’è un testo lungo, si può usare anche con un echo o un print, oltre che con l’assegnazione =. Dopo il carattere <<< si sceglie un nome a nostro piacimento, l’importante è ripeterlo a capo alla fine del ns testo, senza spazi il nome e l’inizio della riga (non bisogna identarlo). All’interno del brano si possono usare variabili che verrebbero interpolate.
Da notare che se scrivo:
$a ="ciao"; $b ="$a a"; $c ="$b tutti"; echo "$c";
Le variabili si concatenano e il risultato dell’echo sarà: cia a tutti.
Ancora:
$volte ="20"; $saluto ="Ciao a tutti per la $voltema volta";
L’interprete php cercherebbe la variabile $voltema che non esiste, quindi per fargli capire dove finisce la variabile bisogna racchiuderla tra parentesi graffe:
$saluto ="Ciao a tutti per la {$volte}ma volta";
Quando voglio inserire dei caratteri speciali tipo il $ le ” gli ‘ come se fossero stringhedevo usare l’escape:
$s ="Manzoni è l'autore de \"I promessi sposi\""; echo $s
Un altro esempio del back slash è quello per andare a capo \n
Se devo stampare proprio il back slash seguito dalla n come stringa lo devo usare doppio \\:
$s = "la cartella è in C:\\novita";
Se non lo mettessi doppio php vedrebbe \n ovita, altrimenti non serve il doppio:
$s = "la cartella è in C:\windows";
In generale l’escape si usa in tutte le situazioni di ambiguità.
per generare i caratteri mal interpretabili, tipo \n \” \$ \[ \{
Oppure per generare dei caratteri speciali, utilizzando il codice ascii, utilizzando \x seguito dal codice. Es: \x7e dove 7e corrisponde alla tilde. In ottale non si mette la x, quindi la tilde diventa \176. In quest’ultimo caso il massimo valore indicabile è 255, quindi alcuni caratteri verrebbero esclusi.
Per far scrivere ‘ciao’ dovremmo utilizzare questa forma ‘\’ciao\”;
L’escape con tutte questi casi si può utilizzare anche nel terzo tipo di stringhe (here doc <<<) .