Autor Zpráva
tomek
Profil *
Potřeboval bych pomoci upravit funkci, tak aby měnila HTML zpět na BB tagy..

function bb2html($text)
{
  $g = array(
    "/\[i\](.*?)\[\/i\]/is",
    "/\[b\](.*?)\[\/b\]/is",
    "/\[u\](.*?)\[\/u\]/is",
    "/\[img\](.*?)\[\/img\]/is",
    "/\[url=(http:\/\/){0,1}(.*?)\](.*?)\[\/url\]/is",
	"/\[li\](.*?)\[\/li\]/is",
	"/\[ul\](.*?)\[\/ul\]/is",
	"/\:\)/is",
	"/\:\[/is",
	"/\:P/is",
	"/\;\)/is",
	"/\:X/is",
	"/\:O/is",
	"/\:cry\:/is",
	"/\:jockingly\:/is",
    "/\:rule\:/is",
	

  );
  $h = array(
    "<i>$1</i>",
    "<b>$1</b>",
    "<u>$1</u>",
    "<a href=\"$1\" target=\"_blank\"><img src=\"$1\" width=\"100px\" /></a>",
    "<a href=\"http://$2\" target=\"_blank\">$3</a>",
	"<li>$1</li>",
	"<ul>$1</ul>",
	"<img src=\"image/smile/9.gif\" alt=\"\"/>",
	"<img src=\"image/smile/8.gif\" alt=\"\"/>",
	"<img src=\"image/smile/6.gif\" alt=\"\"/>",
	"<img src=\"image/smile/7.gif\" alt=\"\"/>",
	"<img src=\"image/smile/4.gif\" alt=\"\"/>",
	"<img src=\"image/smile/2.gif\" alt=\"\"/>",
	"<img src=\"image/smile/5.gif\" alt=\"\"/>",
	"<img src=\"image/smile/1.gif\" alt=\"\"/>",
	"<img src=\"image/smile/3.gif\" alt=\"\"/>",
	
  );

  $texto = preg_replace($g, $h, $text);

  return $texto;
}
Keeehi
Profil
tomek:
Řekl bych, že to nebude potřeba. K čemu to potřebuješ?
tomek
Profil *
Keeehi:
k tomu, že v MySQL mám ukládány příspěvky už s html, ovšem jde mi o editaci příspěvků.
Keeehi
Profil
tomek:
Tak je ukládej s BBcode. Do html převáděj až při výpisu. Pro editaci je budeš mít v databázi v BBcode.
tomek
Profil *
to je pravda :)
tomek
Profil *
Keeehi:
veliké díky tobě :)
tomek
Profil *
Keeehi:
ještě jedna věc. jak v textarea se značí odřádkování? potřeboval bych tohle nějak spacifikovat, když návštěvník odentruje, tak aby to tak také bylo i při výpisu
Keeehi
Profil
tomek:
můžeš použít nl2br(); (Nedělá to bbkód ale normální <br>)
tomek
Profil *
Keeehi:
a kdybych to potřeboval na BB kod, treba [br]
Keeehi
Profil
Tak uděláš něco takového:
$text = str_replace("<br>", "[br]", nl2br($textarea));
tomek
Profil *
Keeehi:
a při editaci toho článku? převést [br] zase na to \n\r či jak to je? Jako aby v textarea to bylo zase na novém řádku
tomek
Profil *
Keeehi:
našel jsem toto

function br2nl($string)
{
    return preg_replace('/\[br(\s*)?\/?\]/i', "\n", $string);
}
?>
mattyZEM
Profil
Pokud to budete řešit tak, jak Vám radil Keeehi, tak při výpisu prostě zavolejte funkci na převod do BB a pak použijte funkci nl2br().
<?php echo nl2br(bb2html($string),0); ?>


Co se týče opačného převodu, tak třeba obyčejné
str_replace('[br]',"\n",$string);



Každopádně ten replace je zbytečný, pokud ukládáte do MySQL BB podobu článku.

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:

0