Newsgroup: it.comp.www.php
Titolo: [SINTASSI] E' voluto o è un caso ?

Salve, mantengo  html-helper-mode.el (un  modo per Emacs  con supporto
per PHP,JSP e ASP).
Per come  funziona il  modo ho bisongno  di individuare l'inizio  e la
fine dei blocchi  di server scrip (o scriptlet in java-nese  :) ) e ho
visto che in PHP una cosa del tipo
<? 
  /* blabla */
  echo "babblebabble <?=VARIABILE?>"
?>
funziona.
La mia domanda è:
Una  cosa  del genere  è  espressamente  prevista  dalla sintassi  del
linguaggio oppure ha funzionato per caso ?
Grazie  anticipatamente, sopratutto a  chi potrà  fornirmi riferimenti
seri.
--
Gian Uberto| main(){printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);}
Lauri      |                        David Korn, 1987 ioccc best one liner 
(aka saint)|-------------------------------------------------------------------
em@ail: 
sa...@eng.it
 ( vedere X-nospam nello header - see X-nospam in header )

 funziona.
Cosa intendi con funziona? In questo caso la pagina risultante contiene:
babblebabble <?=VARIABILE?>
l'espressione <?=VARIABILE?> non viene valutata da php, ma semplicemente 
trattata come una parte della stringa.
Mentre l'operazione contraria funziona:
<a href="<? echo "prova" ?>">
in questo caso l'espressione <? echo "prova" ?> viene valutata 
dall'interprete. 
HTH

> funziona.
L> Cosa intendi con funziona? In questo caso la pagina risultante contiene:
L> babblebabble <?=VARIABILE?>
L> l'espressione <?=VARIABILE?> non viene valutata da php, ma semplicemente 
L> trattata come una parte della stringa.
Ahem, se sei sicuro che debba  essere così sono assai contento. La mia
lei, alla prima esperienza col PHP  - i sistemisti sviluppan poco - ha
usato   quella   forma   per   il   SID   (Session   ID)   e   le   ha
funzionato.   Sinceramente  può   esserle  andata   di   lusso  perché
qualcos'altro manteneva in vita la sessione.
La cosa  mi lascia personalmente perplimuto  :), in quanto  da un lato
rompe la regola  che <? è l'escape verso l'interprete  e ?> è l'escape
inverso  e  dall'altro sarebbe  inutile  in  quanto  puoi lavorare  di
concatenazioni.
Se poi mi  puoi indicare una sorgente di  informazioni che mi confermi
quello che hai esposto tu è fatta :). Ho provato a gestire la cosa dei
blocchi annidati ma il matcher per l'highlighting che ho realizzato ha
un  baco fetecchione  e se  posso tornare  alla versione  precedente e
funzionante è meglio :)
Grazie!



Il parser del PHP funziona bene...
Se entri in PHP mode con <? o <?php il parser esegui e analizza le
istruzioni aspettandosi varie cose. Se deve leggere una stringa con "?>" lui
va avanti a leggerla fino alla fine della stringa. Quindi un ?> puo essere
solo interpretato come fine processing PHP se sta dopo uno statement
completo.
non ho trovato un BNF o altro Diagramma, ma puoi credere che funziona bene
cosi.
per colorare un programma PHP esistono cmq. funzioni:highlight_file e
highlight_string

 writes:
JS> per colorare un programma PHP esistono cmq. funzioni:highlight_file e
JS> highlight_string
Esistono in Emacs Lisp :) ?


 qualcos'altro manteneva in vita la sessione.
Sulla mia macchina (PHP4):
luca$ php
<?
$v = "foobar";
echo "prova <?=$v?>\n";
?>
[ctrl-D]
X-Powered-By: PHP/4.0.4
Content-type: text/html
prova <?=foobar?>
Come vedi i <? e ?> vengono stampati normalmente senza che il PHP li 
interpreti in alcun modo.
Ciao,
Luca.

>>>> "L" == Luca  <lu...@qwerty.it.invalid> writes:
L> Sulla mia macchina (PHP4):
Prova molto convincente, grazie... Ma un link alla documentazione ?
(lo ammetto ho poco tempo e sono pigro :) )


 (lo ammetto ho poco tempo e sono pigro :) )
http://www.php.net/docs.php

> (lo ammetto ho poco tempo e sono pigro :) )
L> 
http://www.php.net/docs.php
Mi serviva qualcosa di più mirato....
