Newsgroup: it.comp.www.php
Titolo: Problema con parsing di stringhe

Salve a tutti!
scrivo perche' ho bisogno del vostro aiuto sto impazzendo con una
problematica relativa al parsing di una stringa molto particolare
il problema è il seguente:
data una qualsiasi stringa particolare:
-----inizio esempio di articolo all'interno del mio sito--------
Questo pezzo di codice serve a controllare se ci sono spazi
[code]
function nospace(str)
{
   if (str != "")
   {
      var index = str.indexOf(" ", 0);
      if (index != -1)
      {
         return false;
      }
   }
   return true;
}
[/code]
il suddetto pezzo di codice riguarda una funzione javascript ma vediamo
meglio come puo essere realizzata la stessa cosa in php
[code]
function nospace(){
//istruzioni
}
[/code]
-----fine esempio di articolo all'interno del mio sito--------
quindi dicevamo data questa stringa devo far in modo che venga invocata
la mia funzione di highlighting solo al pezzo di codice che sta tra i
tag [code]....[/code] e che tutto il resto (quindi testo di spiegazione
prima o dopo i tag) venga tralasciato e non parserizzato dalla mia
funzione.
vi giuro che sto impazzendo perche non riesco a trovare un'algoritmo
per fare questa cosa
in realta 5 minuti fa pensavo di averlo trovato con un insieme di
funzioni standard(explode ecc...)ma mi sono reso conto che tra giri e
raggiri perdevo questa sorta di pseudo indentazione (e in realta non
risolvevo nemmeno il problema) della stringa citata sopra.
potete aiutarmi???
p.s vi posto l'indirizzo del mio sito con la speranza che non pensiate
sia spamming ma bensi  un aiuto concettuale a coloro che mi
risponderanno
http://www.programmando.net/visu_articoli.php
in questa pagina trovate un elenco di articoli cliccando sull'articolo
vi si aprira la paginetta che sto cercando in tutti i modi di
modificare in modo che quando un utente x inserisce un articolo
all'interno del db la pagina articolo.php?id_art=y sia in grado di
dividere la parte del codice con la parte di spiegazione.
in modo da avere
SPIEGAZIONE
--
CODICE INDENDATO E COLORATO
--
ULTERIORE SPIEGAZIONE
--
ULTERIORE CODICE INDENDATO E COLORATO
--
ecc...ecc...
Spero che sia stato chiaro ed esaustivo
Vi ringrazio per tutte le eventuali risposte.
P.S. la funzione di parsing utilizzata è quella del pacchetto geshi

 {
[..]
function highlight($match) { return "<b>{$match[1]}</b>"; }
$string = <<<TEXT
comment 0
[code]
line 0
line 1
[/code]
comment 1
[code]
line 0
line 1
line 2
[/code]
end
TEXT;
echo preg_replace_callback('/\[code\](.*?)\[\/code\]/s', 'highlight',
$string);
-- 
www.iuz-lab.info

scusami ma non è che abbiamo capito molto come devo fare!

 scusami ma non è che abbiamo capito molto come devo fare!
cosa non hai capito?
string preg_replace_callback (pattern, callback, string);
effettua una ricerca per corrispondenza con pattern su string; e tutto
quello che trova corrispondenza viene sostituito con il valore di ritorno
di callback con argomento la corrispondenza stessa..
'/\[code\](.*?)\[\/code\]/s' e' il pattern che cerca il testo tra [code] e
[/code]..
$string e' il testo nel quale cercare..
'highlight' e' il nome della funzione alla quale sara' passato tutto cio'
che si e' trovato e che restituira' un valore da sostituire..
-- 
www.iuz-lab.info