- Home
- Categorie
- Coding e Sistemistica
- Coding
- Uso di funzioni in here document?!
-
Il problema è che devo stampare un blocco di codice html, non solo del semplice testo. Dentro il blocco di codice andrebbe richiamata la funzione...
...come potrei fare?
-
@Rammo said:
Il problema è che devo stampare un blocco di codice html, non solo del semplice testo. Dentro il blocco di codice andrebbe richiamata la funzione...
...come potrei fare?
Allora scrivi l'html normale e dove vuoi stampare il testo ritornato dalla funzione metti:
<body>blublu<br /><p>blabla <?= nome_funzione(); ?> blibli</p>
-
Il blocco di codice è già dentro una funzione

Nel blocco di codice dentro la funzione dovrei richiamare un'altra funzione e non volevo usare "print" per ogni riga da stampare
print "<td>blablabla</td>";
print "bla bla bla";
...etc.Avevo pensato per quello di includere il blocco di codice nell' here document e poi da quello richiamare l'altra funzione...
-
@Rammo said:
Il blocco di codice è già dentro una funzione

Nel blocco di codice dentro la funzione dovrei richiamare un'altra funzione e non volevo usare "print" per ogni riga da stampare
print "<td>blablabla</td>";
print "bla bla bla";
...etc.Avevo pensato per quello di includere il blocco di codice nell' here document e poi da quello richiamare l'altra funzione...
Allora forse, anzi, sicuramente, non ho capito. Se mi scrivi un po' di più codice, forse posso aiutarti.
-
Questa è la funzione che stampa il primo pezzo di codice della pagina .php:
function head_della_pagina() { print <<<HTMLBLOCK <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <head> <title>Titolo della pagina</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="StyleSheet" media="all" href="stile.css" type="text/css"> </head> <body> <div id="box"> nome_funzione (); <div id="box2"></div> ...etc. etc. HTMLBLOCK; }Dentro al primo pezzo di codice della pagina .php dovrà essere chiamata un'altra funzione ( nome_funzione () ) che chiaramente così non funziona, in quanto stampa direttamente la parola nome_funzione ();
Speravo ci fosse una sintassi particolare per richiamare le funzioni all'interno di here document invece mi prospetti che non è così
ahimèCome potrei fare per richiamare questa funzione?
Avevo pensato di spezzare l'here document in 2 e lasciare la chiamata alla funzione fuori, in modo che possa funzionare.
function head_della_pagina() { print <<<HTMLBLOCK <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <head> <title>Titolo della pagina</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="StyleSheet" media="all" href="stile.css" type="text/css"> </head> <body> <div id="box"> HTMLBLOCK; nome_funzione (); print <<<HTMLBLOCK2 <div id="box2"></div> ...etc. etc. HTMLBLOCK2; }Così funziona, ma mi scocciava interrompere l'here document ogni volta per richiamare una funzione... non c'è altro modo?

Ciao e grazie per ora,
Rammo.
-
@Rammo said:
Questa è la funzione che stampa il primo pezzo di codice della pagina .php:
> function head_della_pagina() { print <<<HTMLBLOCK <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <head> <title>Titolo della pagina</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="StyleSheet" media="all" href="stile.css" type="text/css"> </head> <body> <div id="box"> nome_funzione (); <div id="box2"></div> ...etc. etc. HTMLBLOCK; } >```Dentro al primo pezzo di codice della pagina .php dovrà essere chiamata un'altra funzione ( nome_funzione () ) che chiaramente così non funziona, in quanto stampa direttamente la parola nome_funzione (); Speravo ci fosse una sintassi particolare per richiamare le funzioni all'interno di here document invece mi prospetti che non è così :( ahimè Come potrei fare per richiamare questa funzione? Avevo pensato di spezzare l'here document in 2 e lasciare la chiamata alla funzione fuori, in modo che possa funzionare.function head_della_pagina() {
print <<<HTMLBLOCK
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<head>
<title>Titolo della pagina</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="StyleSheet" media="all" href="stile.css" type="text/css">
</head>
<body>
<div id="box">
HTMLBLOCK;nome_funzione ();
print <<<HTMLBLOCK2
<div id="box2"></div>
...etc. etc.HTMLBLOCK2;
}
Ciao e grazie per ora,
Rammo.Se non vuoi usare altri metodi (io ti sconsiglio quella soluzione), non ci sono altri metodi. L'unica è interrompere il blocco, chiamare la funzione e riaprirlo come hai fatto tu.
-
Scusami, quale soluzione mi sconsiglieresti?
-
@Rammo said:
Scusami, quale soluzione mi sconsiglieresti?
Chiudi il tag php "?>", scrivi l'html puro e riapri il tag "<?php" solo quando necessario. Meglio evitare di mescolare codice php e html con funzioni come echo e print.
Magari dai un'occhiata a Smarty, che in questi casi è utilissimo. Separi il codice senza nessun problema dall'html.
-
Smarty? Non ne ho mai sentito parlare..
..è un programma che separa il codice php dall'html? Lo provo subito!
E se associassi la funzione ad una variabile che poi richiamo nell'here document?
-
@Rammo said:
Smarty? Non ne ho mai sentito parlare..
..è un programma che separa il codice php dall'html? Lo provo subito!
E se associassi la funzione ad una variabile che poi richiamo nell'here document?
here domcument non parsa in nessun modo nè variabili nè funzioni. Devi comunque chiudere coi delimitatori e riaprire per eseguire script php.
Smarty è una bomba se lo si impara ad usare da subito e bene. Serve proprio nelle aziende a far collaborare grafici e programmatori senza che nessuno dei due sappia cosa fa l'altro (o quasi).
-
here domcument non parsa in nessun modo nè variabili nè funzioni. Devi comunque chiudere coi delimitatori e riaprire per eseguire script php.
Sbagliato

Le variabili si possono usare tranquillamente
Smarty è una bomba se lo si impara ad usare da subito e bene. Serve proprio nelle aziende a far collaborare grafici e programmatori senza che nessuno dei due sappia cosa fa l'altro (o quasi).
Bello, lo provo subito!