salve ragazzi,
ho un bbcode che può avere diversi parametri (diciamo n parametri opzionali visto che è personalizzabile dall'utente). L'unico parametro che è sicuramente presente, perchè obbligatorio, è il parametro "id", per cui avro un codice di questo tipo:
dovendo fare il replace di questo bbcode non riesco a scrivere una regola adatta a rimpiazzarlo tramite preg_replace().
ho provato ad esempio con:
ovviamente non funziona... un altro tentativo è stato:
ma nulla...
vi ricordo le peculiarità del code:
- ha n parametri creati dall'utente
- ha sicuramente un parametro id di cui conosco il valore
- al suo interno è racchiuso del testo
- i valori dei parametri possono essere racchiusi sia tra apici ' ' che tra virgolette " "
- i prametri potrebbero essere separati da più spazi (vengono scritti dagli utenti e posso sbagliare)
qualche idea???
ho un bbcode che può avere diversi parametri (diciamo n parametri opzionali visto che è personalizzabile dall'utente). L'unico parametro che è sicuramente presente, perchè obbligatorio, è il parametro "id", per cui avro un codice di questo tipo:
Codice:
[bbcode param1='abc' param2='abc' id='IDCODE' param3='abc']testo opzionale etc.[/bbcode]
dovendo fare il replace di questo bbcode non riesco a scrivere una regola adatta a rimpiazzarlo tramite preg_replace().
ho provato ad esempio con:
PHP:
$testo = "questa è una stringa con bbcode [bbcode param1='abc' param2='abc' id='IDCODE' param3='abc']testo opzionale etc.[/bbcode]";
$id = "IDCODE";
preg_replace("#\[bbcode(.*?)id='".$id."'(.*?)\](.*?)\[\/bbcode\]#",'è funziona perfettamente',$testo);
ovviamente non funziona... un altro tentativo è stato:
Codice:
#\[bbcode\s+id='".$chiave."'((.*?)!?\])(.*?)\[\/bbcode\]#
ma nulla...
vi ricordo le peculiarità del code:
- ha n parametri creati dall'utente
- ha sicuramente un parametro id di cui conosco il valore
- al suo interno è racchiuso del testo
- i valori dei parametri possono essere racchiusi sia tra apici ' ' che tra virgolette " "
- i prametri potrebbero essere separati da più spazi (vengono scritti dagli utenti e posso sbagliare)
qualche idea???

Ultima modifica: