URL in BBCODES
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
claUdiu
- Mesaje:313
URL in BBCODES
Buna, am si eu o intrebare.
Am acest cod:
Cod: Selectaţi tot
<?php
$coduriBB = array('[ingrosat]' => '<b>',
'[/ingrosat]' => '</b>',
'[italic]' => '<i>',
'[/italic]' => '</i>',
'[subliniat]' => '<u>',
'[/subliniat]' => '</u>',
'[lt]' => '<',
'[gt]' => '>',
'[blockquote]' => '<blockquote>',
'[/blockquote]' => '</blockquote>',
'[script]' => '<div id="script">',
'[/script]' => '</div>',
'[citat]' => '<div id="citat">',
'[/citat]' => '</div>',
'[linie_noua]' => '<br/>');
echo '<p>'.convert_bbcodes( $text ).'</p>';
function convert_bbcodes( $t )
{
$search = array_keys( $GLOBALS['coduriBB'] );
$t = str_replace( $search,$GLOBALS['coduriBB'], $t );
return '<font color="black">'.$t.'</font>';
}
?>
cum pot sa adaug si linkuri, imagini si culoare la text? adica sa am asa:
nume link pentru <a href="url">nume link</a>
[img]adresa%20img[/img] pentru <img src="adresa img">
[culoare cod="cod culoare"]text[/culoare]<font color="culoare">text</font>
Chiar nu inteleg cum sa fac chestiile astea...
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje:4343
Codul dat mai sus e cam depasit, folosit in versiuni PHP vechi.
Se poate face aceasta transformare din BBCODE in HTML cu o singura functie.
E un tutorial despre asta la pagina
Transformare cod PHPBB si smiles in HTML.
claUdiu
Mesaje:313
Am facut asa:
Cod: Selectaţi tot
<?php
$text = $_POST['my_ta'];
$cu = array('/\[ingrosat](.*?)\[\/ingrosat]/i',
'/\[stramb](.*?)\[\/stramb]/i',
'/\[subliniat](.*?)\[\/subliniat]/i',
'/\[culoare=(.*?)](.*?)\[\/culoare]/i',
'/\[imagine](.*?)\[\/imagine]/i',
'/\[linie_noua]/i',
'/\:X/i',
'/\:*/i',
'/\[url=(.*?)](.*?)\[\/url]/i',
'/\[aliniare=(.*?)](.*?)\[\/aliniare]/i');
$html = array('<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
'<font color="$1">$2</font>',
'<img src="$1"/>',
'<br>',
'<img src="zambarete/inimioara.gif"/>',
'<img src="zambarete/pupic.gif"/>',
'<a href="$1" target="_blank">$2</a>',
'<div align="$1">$2</div>');
$text = preg_replace($cu , $html, $text ) ;
echo $text;
?>
si acum daca pun doua zambarete imi apare:
iar dupa fiecare litera imi apare acel zambaret.
Iar daca pun doar unul il arata de 3 ori.....
- Si cand pun [subliniat] sau oricare alt cod apare asa: <u>Text</u> si apare un zambaret dupa fiecare litera
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje:4343
Sunt greseli in codul RegExp, nu sunt escapate toate caracterele care trebuie, iar ":" nu trebuie precedat de "\".
Incearca asa (nu am testat, posibil sa fi omis vreo corectare):
Cod: Selectaţi tot
<?php
$text = $_POST['my_ta'];
$cu = array('/\[ingrosat\](.*?)\[\/ingrosat\]/is',
'/\[stramb\](.*?)\[\/stramb\]/is',
'/\[subliniat\](.*?)\[\/subliniat\]/is',
'/\[culoare=(.*?)\](.*?)\[\/culoare\]/is',
'/\[imagine\](.*?)\[\/imagine\]/is',
'/\[linie_noua\]/is',
'/:X/is',
'/:\*/is',
'/\[url=(.*?)\](.*?)\[\/url\]/is',
'/\[aliniare=(.*?)\](.*?)\[\/aliniare\]/is');
$html = array('<b>$1</b>',
'<i>$1</i>',
'<u>$1</u>',
'<font color="$1">$2</font>',
'<img src="$1"/>',
'<br>',
'<img src="zambarete/inimioara.gif"/>',
'<img src="zambarete/pupic.gif"/>',
'<a href="$1" target="_blank">$2</a>',
'<div align="$1">$2</div>');
$text = preg_replace($cu , $html, $text ) ;
echo $text;
?>