"here document" in PHP

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
samiel
Staff
Staff
Messaggi: 5504
Iscritto il: ven gen 16, 2004 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

"here document" in PHP

Messaggioda samiel » mar ott 21, 2008 12:36

Piccola curiosità cui non ho trovato risposta nei manuali.
L'opzione "here document" (<<<HERE ... HERE;) di PHP
dovrebbe stampare tutto alla lettera, un po come fanno
in LaTeX gli ambienti verbatin e alltt. Però se ci infilo
diciamo "$variabile", quella stringa non viene affatto
visualizzata. Allora non è proprio vero che "here document"
stampa tutto esattamente com'è...

Grazie
M.

Avatar utente
conraid
Staff
Staff
Messaggi: 12676
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: "here document" in PHP

Messaggioda conraid » mar ott 21, 2008 12:59

samiel ha scritto:Piccola curiosità cui non ho trovato risposta nei manuali.
L'opzione "here document" (<<<HERE ... HERE;) di PHP
dovrebbe stampare tutto alla lettera, un po come fanno
in LaTeX gli ambienti verbatin e alltt. Però se ci infilo
diciamo "$variabile", quella stringa non viene affatto
visualizzata. Allora non è proprio vero che "here document"
stampa tutto esattamente com'è...

Grazie
M.


Stampa il contenuto della variabile $variabile, come farebbe in perl per esempio con <<<"HERE" (il perl ha anche 'HERE', il php no)
E' come fare echo "..."; solo che puoi usare le virgolette al suo interno

Se vuoi stampare proprio $variabile, allora devi scrivere \$variabile


UPDATE
http://it.php.net/manual/en/language.ty ... ax.heredoc

Dalla 5.3.0 ci sarà anche nowdoc, cioè
echo <<<'HERE'

che non interpreterà le variabili

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4540
Iscritto il: mer lug 28, 2004 0:00
Nome Cognome: Nino
Slackware: current 64bit
Kernel: as in current
Desktop: XFCE
Località: Reggio Calabria
Contatta:

Re: "here document" in PHP

Messaggioda aschenaz » mar ott 21, 2008 13:22

Se non ricordo male, l'heredoc non interpreta le costanti. Nel caso, bisogna
assegnare il valore della costante ad una variabile prima dell'heredoc...

samiel
Staff
Staff
Messaggi: 5504
Iscritto il: ven gen 16, 2004 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: "here document" in PHP

Messaggioda samiel » mar ott 21, 2008 19:58

E non va nemmeno a capo se non si mette il classico <br>
Forse sono io che pensavo che agisse, appunto, cime verbatim di LaTeX...

M.

Avatar utente
conraid
Staff
Staff
Messaggi: 12676
Iscritto il: gio lug 14, 2005 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Località: Livorno
Contatta:

Re: "here document" in PHP

Messaggioda conraid » mar ott 21, 2008 20:49

samiel ha scritto:E non va nemmeno a capo se non si mette il classico <br>
Forse sono io che pensavo che agisse, appunto, cime verbatim di LaTeX...

M.


A capo ci va mauro, quello è un discorso di HTML non di output del comando
Anche se scrivi una pagina normale chiamate prova.html e ci metti dentro

Codice: Seleziona tutto

prova di un
testo


il browser ti mostrerà

Codice: Seleziona tutto

prova di un testo


quel che dici tu in html sarebbe con il tag < pre >

samiel
Staff
Staff
Messaggi: 5504
Iscritto il: ven gen 16, 2004 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

Re: "here document" in PHP

Messaggioda samiel » mar ott 21, 2008 22:40

Esatto. Solo che , appunto, avevo frainteso
pensando, lo ripeto, a un comportamento analogo
a Verbatim di LaTeX. Mentre PHP fa cose diverse
e la visualizzazione ancora diverse...
Grazie
M.

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4540
Iscritto il: mer lug 28, 2004 0:00
Nome Cognome: Nino
Slackware: current 64bit
Kernel: as in current
Desktop: XFCE
Località: Reggio Calabria
Contatta:

Re: "here document" in PHP

Messaggioda aschenaz » mer ott 22, 2008 7:11

Il vantaggio dell'heredoc, in pratica, lo vedi quando hai una parte di
codice mista html/php abbastanza consistente, così da non dover
ricorrere continuamente all'escape di virgolette (o alla concatenazione).
La formattazione, come ha già detto conraid, la mantiene solo a
livello di codice, non di output. Quello che andrebbe normalmente
in html lo devi mantenere...


Torna a “Programmazione”

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite