"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.
Rispondi
samiel
Staff
Staff
Messaggi: 5511
Iscritto il: ven 16 gen 2004, 0:00
Nome Cognome: Mauro Sacchetto
Slackware: 13.0
Kernel: 2.26
Desktop: KDE
Distribuzione: anche Debian
Località: Venezia

"here document" in PHP

Messaggio da samiel »

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: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: "here document" in PHP

Messaggio da conraid »

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: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: "here document" in PHP

Messaggio da aschenaz »

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: 5511
Iscritto il: ven 16 gen 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

Messaggio da samiel »

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: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: "here document" in PHP

Messaggio da conraid »

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: 5511
Iscritto il: ven 16 gen 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

Messaggio da samiel »

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: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Re: "here document" in PHP

Messaggio da aschenaz »

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...

Rispondi