inserire in una determinata variabile il bbcode

salve ragazzi dovrei inserire in una   stringa l interprete del bbcode adesso ne ho trovato uno intanto questo e lo script  che legge i dati dal database  e che devono essere   interpretati dal bbcode$DB->connect(); $result_article_know = mysql_query("select * from knowledgebase  where id ='$id'    order by id desc  limit 1"); while($array=mysql_fetch_array($result_article_know)){ echo"<table  class='cornicecategorie'  border ='0' cellpadding='0' cellspacing='0'>\n";                              echo"<tr>\n"; echo"<td class ='bordocontent'><td>\n"; echo"<td class =''></td>\n"; echo"<td class ='tdrisposta' id='tdrisposta'>".$array['risposta']."</td>\n"; echo"<td class ='bordocontent'><td>\n"; echo"</tr>\n"; echo"</table>\n"; ?

e questo e il bbcode

function bbcode_format($var) {
$search = array(
'`(.+?)`is',
'`(.+?)`is',
'`(.+?)`is',
'`[img]http://(.+?)[/img]`is',
'`(.+?)`is',
'`[url=http://([a-z0-9]+://)([w-]+.([w-]+.)*[w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)](.*?)[/url]`si',
'`[url=http://([a-z0-9]+?://){1}([w-]+.([w-]+.)*[w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)]([a-z0-9]+?://){1}([w-]+.([w-]+.)*[w]+(:[0-9]+)?(/[^ \"\n\r\t<]*)?)[/url]`si',
'`[url=http://((www|ftp).([w-]+.)*[w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)]((www|ftp).([w-]+.)*[w]+(:[0-9]+)?(/[^ \"\n\r\t<]*?)?)[/url]`si',
'`
Citazione:
(.+?)
`is',


);
$replace = array(
'<b>\1</b>',
'<i>\1</i>',
'<u>\1</u>',
'<img src="1" style="border:0px;" />',
'<a href="mailto:1">1</a>',
'<a href="12" target="_blank">6</a>',
'<a href="12" target="_blank">12</a>',
'<a href="http://1" target="_blank">1</a>',
'<div style="padding:4px;"><table width="100%" align="center" cellspacing="0" cellpadding="0" class="quote_box"><tr><td class="quote_title"><b>quote</b></td></tr><tr><td class="quote_body"><div width="100%" style="overflow:auto; max-width:400px; width:expression(document.body.clientWidth > 400? '400px': 'auto' );">1</div></td></tr></table></div>',
'<span style="font-size:1px">2</span>',
);
$var = preg_replace ($search, $replace, $var);
return $var;
}

secondo voi come deve essere  inserito  grazie 

inviato 8 anni fa
roccochiolo
X 0 X

Praticamente devi passare il tuo testo, con i bbcode all'interno, nel parser di bbcode per cambiare i tag in tag html?

a quanto pare il tuo parser accetta come parametro (l'unico) quindi dovresti usarlo in questa maniera:

<?php

$stringa  = "[b]esempio di bbcode[/b] [i]altro test[/i]";
echo bbcode_format($stringa); //ritorna <b>esempio di bbcode</b> <i>altro test</i>

dov'è il problema?

consiglio :

non usare mille chiamate a echo ma piuttosto entra ed esci dal php usando i tag <?php e ?>

esempio:

<?php
while($array=mysql_fetch_array($result_article_know)){
   <table  class="cornicecategorie"  border ="0" cellpadding="0" cellspacing="0">                            
      <tr>
         <td class="bordocontent">
         <td>
         <td>
         </td>
         <td class="tdrisposta" id="tdrisposta">
            <p><?php echo bbcode_format($array['risposta']) ?></p>
         </td>
         <td class="bordocontent">
         <td>
      </tr>
   </table>
<?php 
   }

così i tuoi script risulteranno più veloci perchè il parser non deve mostrare l'html ma solo qualche messaggio (infatti non è che entri ed esci dal php per fare l'output di una stringa !!!, ma nel caso devi mostrare tanto html + qualcosa di dinamico o solo tanto html )

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
modificato 8 anni fa
X 0 X

grazie infinite sei veramente gentilissimo  comunque io  sto facendo un lavoro  e lo sto creando tutto dentro  il php  anche i tag li chiamo con il php   volevo usare i template esterni ma non ci ho capito il modo d usa    dammi un consiglio  visto che sono sicuro tu sei abbastanza bravo    cosa potrei fare per imparare     io volevo farmi un corso    tu che mi consigli  ciao  e grazie ancora

risposto 8 anni fa
roccochiolo
X 0 X

Leggiti bene e tutto l'articolo riguardo la programmazione base su php di questo sito che è davvero scritto bene :D

poi fai esperienza : "learn programming by programming"

per i template dai un'occhiata a smarty : smarty.php.net

se hai problemi apri un topic in questa sezione.

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

ciao  ti volevo chiedere un altro  aiuto su questo bbcode  che ho trovato in un sito come lo potrei utilizzare?, innanzi tutto ti ringrazio   sono riuscito a far funzionare  il tutto  comunque   grazie ancora

   //Extract [code]...[/code]
   preg_match_all('`\[code\](.+?)\[/code\]`is',$string,$outstr,PREG_PATTERN_ORDER);
   $numcodes = count($outstr[0]);
   $string_cleaned = $string;
   for ($a=0;$a<=$numcodes;$a++) {
      $string_cleaned = preg_replace('`\[code\](.+?)\[/code\]`is','___CODE_'.$a.'___',$string_cleaned,1);
   }
   
   //Convert BBCode
   $string_cleaned = nl2br(preg_replace($patterns,$replaces,$string_cleaned));
   $string_cleaned = urlToLink($string_cleaned);
   
   //Break long links
   //$string_cleaned = preg_replace('#\<a(.+?)\>(.+?)\</a\>#ise',"'<a'.stripslashes('\$1').'>'.stripslashes(breakLongLinks('\$2')).'</a>'",$string_cleaned);
   
   //Restore [code]...[/code]
   $string = $string_cleaned;
   for ($a=0;$a<$numcodes;$a++) {
      $string = preg_replace('#(___CODE_)('.$a.')(___)#ise',"'<div style=\"padding:4px;\"><table width=\"100%\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\" class=\"code_box\"><tr><td class=\"code_title\"><b>code</b></td></tr><tr><td class=\"code_body\"><div width=\"100%\" style=\"overflow:auto; max-width:500px; width:expression(document.body.clientWidth > 400? \"400px\": \"auto\" );\">'.highlightcode(\$outstr[1][$a]).'</div></td></tr></table></div>'",$string,1);
   }
   
   return ($smiles==1) ? bb2smile($string) : $string ;
}

questo formatta il testo php   grazie ancora saresti un ottimo maestro  secondo me  ciao

risposto 8 anni fa
roccochiolo
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda