[QUOTE=dementialsite]In effetti non avevo previsto che prima o poi i tag di quote finiranno...
Codice PHP:
<?php
$quote_stack = array ();
$quote_count = 0;
$last_quote = 0;
while (TRUE)
{
$start_quote_pos = strpos ($message, '', $last_quote);
if ($end_quote_pos === FALSE)
// non ci sono più tag di chiusura, non sostituire altro!
break;
if ($start_quote_pos !== FALSE && $start_quote_pos < $end_quote_pos)
{
// quote aperto prima di uno chiuso, memorizzalo
$quote_stack[++$quote_count] = $start_quote_pos;
$last_quote = $start_quote_pos + strlen ('');
$message = substr_replace ($message, '<BLOCKQUOTE>', $quote_stack[$quote_count--], strlen ('[QUOTE]');
$last_quote = $end_quote_pos - strlen ('');
}
}
?>[/QUOTE]
C'è una poco elegante "uscita in corsa" dal ciclo, ma dovrebbe funzionare... le prove purtroppo non posso permettermele in questo momento :-(
Statemi bene...
P.S. Avete notato che "quotando" il codice si è tranciato...?
Ci siam quasi...
trasforma nel giusto quote il messaggio + interno ma lascia in testo normale gli altri.
Inoltre da due errori prima del quote:
Originalmente inviato da
i due messaggi di errore
Warning: strpos(): Offset not contained in string. in c:\programmi\easyphp1-8\www\phpnick\files_include\funzioni.php on line 26
Warning: strpos(): Offset not contained in string. in c:\programmi\easyphp1-8\www\phpnick\files_include\funzioni.php on line 27
Ove le linee 26 e 27 sono le seguenti:
Codice PHP:
$start_quote_pos = strpos($messaggio, '[quote]', $last_quote);
$end_quote_pos = strpos ($messaggio, '[/quote]', $last_quote);