Autor Zpráva
Pebrach
Profil *
Dobrý den,
programuji fórum a potřebuji vytvořit něco podobného, jako má většina fór. Pokud potřebuji například vložit funkční odkaz, napíšu ho mezi pomocné tagy (url)(/url) (pouze příklad). To samé se dá udělat například pro obrázek a další. Napadlo mě to dělat pomocí funkce preg_replace ovšem tato funkce dělala neplechu. Zvláště, když mi tato funkce v regulérním výrazu (například u odkazu) dávala do odkazu i tyto pomocné tagy (takže ve výsledku měl regulérní zápis na fóru takovouto podobu: a href=\"(url)http://www.neco.cz(/url)\" ). Proto bych chtěl poprosit o radu někoho, kdo už podobný systém řešil. Děkuji za každý nápad.
Mastodont
Profil
Preg_replace je úplně v pohodě, ale chce to používat ve vzoru závorky a v části replace backreference, čili něco jako:

$pattern="(url)(.*)(/url)"
$replacement = "<a href=\"\\2\">"


Píšu z hlavy, takže si to musíš otestovat ...
Keeehi
Profil
Mastodont:
Já bych to viděl asi nějak takto:
$pattern = "~\(url\)(.*?)\(/url\)~";
$replacement = "<a href=\"\\1\">\\1</a>";



Výsledky hledání „php bbcode“ v Googlu:
 1 • phpBB.cz • Zobrazit téma - Funkční BBCode
 2 • Seznam vB tagů - OverClocking Guru 4um
 3 • Spoiler BBCode | Na stiahnutie - Oficiálna Slovenská podpora módov ...
 4 • BB Code List - Vědecký klub Universalb
 5 • BB code - CS Satellite forum
 6 • Freedive Spearfishing fórum - BB Code List
 7 • BBcode pre PHPBB na vkladanie videa (spravodaj)
 8 • Převod BBCode tagů na HTML tagy
Pebrach
Profil *
Jsem v tomhle celkem nováček, takže chvíli trvá, než si to přeberu. Jak je tedy možné tohle aplikovat do mého způsobu? Názorně předvedu: výpis pomocí WHILE mi vrací příspěvek v surovém stavu. to jest proměnná $forum_prispevek. Tento pak projedu kódem: $forum_prispevek_filtr1 = preg_replace(zde to nějak potřebuji napasovat) a proměnnou $forum_prispevek_filtr pak zobrazuji jako konečný příspěvek. Z toho co jsem pochopil tak jednotlivé části ukládáte do jednotlivých proměnných, které pak "naházíte" do funkce preg_replace. Je to tak?
Keeehi
Profil
$forum_prispevek_filtr1 = preg_replace($pattern,$replacement,$forum_prispevek);

Když budeš chtít nahrazovat více tagů, tak vytvoříš více pattern-replacement dvojic, z paternů vytvoříš pole a z replacementů vytvoříš pole a ty pole předáš funkci preg_replace (Example 2).
Pebrach
Profil *
Díky moc za pomoc, zkusím to.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: