Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 26-04-07, 18:27   #1 (permalink)
User
 
L'avatar di Rammo
 
Data di registrazione: May 2006
Messaggi: 418
Uso di funzioni in here document?!

Ciao,
volevo chiedere se era possibile chiamare una funzione all'interno di here document.

Per fare un esempio:

Codice:
print <<<END
Ecco, qui dentro volevo richiamare una funzione tipo
nome_funzione ();
ma chiaramente me lo stampa come fosse testo. C'è una sintassi
precisa oppure non si può proprio?
END;
Ciao e grazie a tutti!
__________________
Hai sentito parlare delle Gt Stats?
Rammo non in linea   Rispondi citando
Vecchio 26-04-07, 18:33   #2 (permalink)
User
 
Data di registrazione: Apr 2007
Messaggi: 68
Quote:
Rammo Visualizza il messaggio
Ciao,
volevo chiedere se era possibile chiamare una funzione all'interno di here document.

Per fare un esempio:

Codice:
print <<<END
Ecco, qui dentro volevo richiamare una funzione tipo
nome_funzione ();
ma chiaramente me lo stampa come fosse testo. C'è una sintassi
precisa oppure non si può proprio?
END;
Ciao e grazie a tutti!
Non si può. Ti conviene modificare un po' il codice e fare
echo("Testo prima ".nome_funzione()."Testo dopo");
__________________
Matteo Puppis - www.matteoweb.it
nasozor non in linea   Rispondi citando
Vecchio 26-04-07, 18:44   #3 (permalink)
User
 
L'avatar di Rammo
 
Data di registrazione: May 2006
Messaggi: 418
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?
__________________
Hai sentito parlare delle Gt Stats?
Rammo non in linea   Rispondi citando
Vecchio 26-04-07, 18:50   #4 (permalink)
User
 
Data di registrazione: Apr 2007
Messaggi: 68
Quote:
Rammo Visualizza il messaggio
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>
__________________
Matteo Puppis - www.matteoweb.it
nasozor non in linea   Rispondi citando
Vecchio 26-04-07, 18:55   #5 (permalink)
User
 
L'avatar di Rammo
 
Data di registrazione: May 2006
Messaggi: 418
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...
__________________
Hai sentito parlare delle Gt Stats?
Rammo non in linea   Rispondi citando
Vecchio 26-04-07, 19:05   #6 (permalink)
User
 
Data di registrazione: Apr 2007
Messaggi: 68
Quote:
Rammo Visualizza il messaggio
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.
__________________
Matteo Puppis - www.matteoweb.it
nasozor non in linea   Rispondi citando
Vecchio 26-04-07, 20:02   #7 (permalink)
User
 
L'avatar di Rammo
 
Data di registrazione: May 2006
Messaggi: 418
Questa è la funzione che stampa il primo pezzo di codice della pagina .php:

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

Codice:
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.
__________________
Hai sentito parlare delle Gt Stats?
Rammo non in linea   Rispondi citando
Vecchio 26-04-07, 21:23   #8 (permalink)
User
 
Data di registrazione: Apr 2007
Messaggi: 68
Quote:
Rammo Visualizza il messaggio
Questa è la funzione che stampa il primo pezzo di codice della pagina .php:

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

Codice:
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.
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.
__________________
Matteo Puppis - www.matteoweb.it
nasozor non in linea   Rispondi citando
Vecchio 27-04-07, 03:35   #9 (permalink)
User
 
L'avatar di Rammo
 
Data di registrazione: May 2006
Messaggi: 418
Scusami, quale soluzione mi sconsiglieresti?
__________________
Hai sentito parlare delle Gt Stats?
Rammo non in linea   Rispondi citando
Vecchio 27-04-07, 04:23   #10 (permalink)
User
 
Data di registrazione: Apr 2007
Messaggi: 68
Quote:
Rammo Visualizza il messaggio
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.
__________________
Matteo Puppis - www.matteoweb.it
nasozor non in linea   Rispondi citando
Vecchio 27-04-07, 12:47   #11 (permalink)
User
 
L'avatar di Rammo
 
Data di registrazione: May 2006
Messaggi: 418
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?
__________________
Hai sentito parlare delle Gt Stats?
Rammo non in linea   Rispondi citando
Vecchio 27-04-07, 13:07   #12 (permalink)
User
 
Data di registrazione: Apr 2007
Messaggi: 68
Quote:
Rammo Visualizza il messaggio
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).
__________________
Matteo Puppis - www.matteoweb.it
nasozor non in linea   Rispondi citando
Vecchio 27-04-07, 20:31   #13 (permalink)
User
 
L'avatar di Rammo
 
Data di registrazione: May 2006
Messaggi: 418
Quote:
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

Quote:
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!
__________________
Hai sentito parlare delle Gt Stats?
Rammo non in linea   Rispondi citando
Rispondi
Tags: , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:50.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.