Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Pepa 27. 02. 2012, 18:42:26

Název: BBCode parser + regular epxresions v php
Přispěvatel: Pepa 27. 02. 2012, 18:42:26
cau,

prevadim instalaci phpbb na staticky stranky a taham prispevky primo z db, na netu sem nasel nekolik bbcode2html parseru, z nich se mi nejvic libil ten co zde pridavam (zkracena verze). Nicmene mam nasledujici problem (bohuzel php skoro vubec neovladam) jak dosahnout regularniho matchu napr pro nize (tedy ignorovat ty veci co tam phpbb vklada vse mezi : a ] napr :15bqzli1)

Kód: [Vybrat]
[img:15bqzli1]http://neco/a.jpg[/img:15bqzli1]
Kód: [Vybrat]
<?php


function bb2html($text)
{
  
$bbcode = array("<"">",
                
"[list]""[*]""[/list]"
                
"[img]""[/img]"
                
"[b]""[/b]"
                
"[u]""[/u]"
                
'"]');
  
$htmlcode = array("&lt;""&gt;",
                
"<ul>""<li>""</ul>"
                
"<img src=\"""\">",
                
"<b>""</b>"
                
"<u>""</u>"
                
'">');
  
$newtext str_replace($bbcode$htmlcode$text);
  
$newtext nl2br($newtext);//second pass
  
return $newtext;
}
?>

dik
Název: Re:BBCode parser + regular epxresions v php
Přispěvatel: Pepa 27. 02. 2012, 19:50:15
Tak nakonec sem to nejak doresil pomoci dotazu v sql na 'bbcode_uid' a nasledny odstaneni jeste pred parsovanim bbcodu

Kód: [Vybrat]
$bid = $row['bbcode_uid'];
$text = str_replace(':' . $bid, '', $text);
$text = preg_replace('/\[(\/?)code:\d*\]/', '[\1code]', $text);

nicmene i tak by me zajimala odpoved na puvodni dotaz, jestli to jde i nejak primo.
Název: Re:BBCode parser + regular epxresions v php
Přispěvatel: Lol Phirae 27. 02. 2012, 19:55:55
Já ti teda nevím, ale bbcode parser je překvapivě všude, kde se to používá. Tak bych navrhoval třeba stáhnou phpBB a kouknout.  ::)
Název: Re:BBCode parser + regular epxresions v php
Přispěvatel: Pepa 27. 02. 2012, 21:03:31
To sem samozrejme udelal, nicmene me to prislo dost komplikovany a sam sem to vyresil k plne spokojenosti asi za hodku, coz bych s tim jejich (ano necekane je provazanej s celym systemem a nejde tak snadno vypreparovat, nedal).

Nicmene bych se rad drzel puvodniho dotazu, ne jak a proc. Taky sem mohl pouzit perl a nebo kdovi co, ze ...