Newsgroup: it.comp.www.php
Titolo: $BLOCCO=<<<BLOCCO

Sapete dirmi cosa si intende precismente con questa
istruzione :
$blocco=<<<blocco
.
.
codice html per template
.
.
blocco;
In pratica, a cosa serve l'operatore <<<? Uso questa serie
di funzioni meccanicamente per i miei template, ma non trovo
documentazione a riguardo.
Thanks!!
-- 
WEbdOM webmaster di
Metronic.It mobile phone philosophy

 blocco;
assegna alla variabile $blocco  il testo racchiuso tra "<<<blocco" e 
"blocco;"
-- 
Valter Mazzola -  Software/Databases for Enterprise Web Internet Sites
PHP, Java Servlets, Applets, Jsp, ASP, PERL, Mod_Perl, Apache, IIS,SQL
* 
HTTP://SITIDINAMICI.COM/?nttp
 ----- 
http://italia.LinSwap.com/?nttp
 
Phone:(+39) 347/129-07-16.  Fax:(+39) 02/700-539-403

 "blocco;"
senza apici ? mah...
Alex

"Alessio" <(
alessi...@libero.it
)@NOSPAM.tld> ha riferito
agli onorevoli membri di questo NG:

Sì, in realtà funziona con le funzioni di scrittura file
(sostituisco le variabili di template all'interno dei
blocchi tramite una funzione che ritorna il testo
trasformato, passato come argomento ad una funzione che
scrive l'intero file, quando ad esempio devo generare delle
pagine html statiche tramite PHP).
Se però uso questa notazione in un file che viene incluso
con include(), c'è un errore di parsing, e devo affidarmi
alla notazione classica, cioè assegnando il codice HTML da
parserizzare ad una variabile stringa.
Non riesco a capire se è possibile usare questa notazione
anche se non lavoro sullo stream di input restituito da un
file letto. Qualcuno sa dirmi se è possibile ?


 ha scritto nel messaggio
news:p8q6aukeibtvlqh5n...@4ax.com...

io probabilmente non ho capito esattamente come funziona...
$variabile=<<<blocco
altra
roba
blocco;
cosa salva questo ? non dovrebbe generare un'errore scritto in questa
maniera...
e poi, do per scontato che come minimo l'operatore sia =<<< e non solo <<<
...
inoltre, avete detto che si usa con i files... quindi se $variabile è una
comune variabile e i 2 "blocchi" sono il punto di inizio e il punto di fine
da cui prendere dove gli si specifica il file di riferimento ?
mah...
io per pigliare un pezzo di file uso
eregi("inizio(.*)fine",$fread,$results);
print $results[1];
ciao
Alex


Cmq funziona in tutti i casi. Per esempio, immagina di avere
un file di template chiamato template.tpl :
<?PHP
$HEAD=<<<HEAD
<HTML><HEAD><TITLE>{TITLE}</TITLE></HEAD>
 etc..
HEAD;
$TEMP=<<<TEMP
codice html  con molte variaibli di template.
TEMP;
$FOOT=<<<FOOT
codice html..
FOOT;
?>
A questo punto, da uno script, quando esegui un
include("template.tpl"), le variabili $HEAD, $TEMP e $FOOT
conterranno il codice HTML racchiuso nel blocco (cioè fra
<<<HEAD e HEAD; ad esempio ).
In questo modo, puoi passare queste variabili alle funzioni
di parsing, per effetture le sostituzioni delle variabili di
template (ad esempio, in HEAD è presente la variabile
{TITLE}.
Questo è un modo per evitare di lavorare con file di
template multipli (header.html, footer,html etc.).
In pratica, come ha detto chi ha risposto prima e che
ringrazio, la notazione $BLOCCO=<<<BLOCCO etc. indica
semplicemente di memorizzare la stringa (forse così com'è,
tenendo conto dei newline etc.) contenuta fra i delimitatori
<<<BLOCCO e BLOCCO;


 <<<BLOCCO e BLOCCO;
ma <<<BLOCCO e BLOCCO sono 2 termini messi li cosě o funzionano come per
esempio ereg("<<<BLOCCO(.*)BLOCCO;"); ??
va beh faro' un po di prove...
Ciao
Alex

va beh faro' un po di prove...
E' una sintassi forse ereditata dal Perl. Io l'ho vista la
prima volta quando ho avuto a che fare con un complesso
sistema di script. Non h trovato riferimenti in alcun
manuale di PHP, nemmeno su quelklo uficiale.
Scusate se č saltata qualche lettera ma ho avuto problemi
con la tastiera e ho dovuto arrangiarmi con una vecchia,
piena di polvere , che tenevo sull'armadio!:)
--
I'm thinking about a cool signature:)
Coming soon...