Webmaster общности: Predpriemach.com | SearchEngines.bg

    BBcode в сайт.

    В този урок ще ви покажа как да си направите bbcode function за сайта си 🙂
    Доста е лесно, използва се preg_replace.
    Така, да си дойдем на думата.
    Ето функцията:

    function bbcode($text){
    $text=preg_replace("/\[b\](.+?)\[\/b\]/s", '<b>$1</b>',$text);
    
    $text=preg_replace("/\[i\](.+?)\[\/i\]/s", '<i>$1</i>',$text);
    
    $text=preg_replace("/\[u\](.+?)\[\/u\]/s", '<u>$1</u>',$text);
    
    $text=preg_replace("/\[quote\](.+?)\[\/quote\]/s", '<table cellspacing="1" width="100%" border="0"><tr><td>Quote:</td></tr><tr><td width="100%" style="border:solid 1px black">$1</td></tr></table>',$text);
    
    $text=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '<table cellspacing="1" width="100%" border="0"><tr><td>$1 êàçà:</td></tr><tr><td width="100%" style="border:solid 1px black">$2</td></tr></table>',$text);
    
    $text=preg_replace("/\[url\](.+?)\[\/url\]/s", '<a href="$1">$1</a>',$text);
    
    $text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '<a href="$1">$2</a>',$text);
    
    $text=preg_replace("/\[img\](.+?)\[\/img\]/s", '<img src="$1" alt="User submitted image" title="User submitted image"/>',$text);
    
    $text=preg_replace("/\[color\=(.+?)\](.+?)\[\/color\]/s", '<span style="color:$1">$2</span>',$text);
    
    $text=preg_replace("/\[size\=(.+?)\](.+?)\[\/size\]/s", '<span style="font-size:$1">$2</span>',$text);
    
    $text=preg_replace("/\[code\](.+?)\[\/code\]/s",'<table cellspacing="1" width="100%" border="0"><tr><td>Code:</td></tr><tr><td width="100%" style="border:solid 1px black">$1</td></tr></table>',$text);
    
    
    
    $text = nl2br($text);
    return $text;
    }

    Доста лесен е кода за ползване, само че преди да използвате функцията, сложете един htmlspecialchars(„$htmlcode“, ENT_QUOTES); За да избегнете нежелан html, js, php код. Тъй като bbcode-а не използва <, >, ‘, „, това няма да промени крайния резултат.
    Т.е.

    $htmlcode = htmlspecialchars("$htmlcode", ENT_QUOTES);
    echo bbcode("$htmlcode");

    Ето и готовата form-a.

    <script src="editor.js" type="text/javascript" ></script>
    <?
    function bbcode($text){
    $text=preg_replace("/\[b\](.+?)\[\/b\]/s", '<b>$1</b>',$text);
    
    $text=preg_replace("/\[i\](.+?)\[\/i\]/s", '<i>$1</i>',$text);
    
    $text=preg_replace("/\[u\](.+?)\[\/u\]/s", '<u>$1</u>',$text);
    
    $text=preg_replace("/\[quote\](.+?)\[\/quote\]/s", '<table cellspacing="1" width="100%" border="0"><tr><td>Quote:</td></tr><tr><td width="100%" style="border:solid 1px black">$1</td></tr></table>',$text);
    
    $text=preg_replace("/\[quote\=(.+?)](.+?)\[\/quote\]/s", '<table cellspacing="1" width="100%" border="0"><tr><td>$1 каза:</td></tr><tr><td width="100%" style="border:solid 1px black">$2</td></tr></table>',$text);
    
    $text=preg_replace("/\[url\](.+?)\[\/url\]/s", '<a href="$1">$1</a>',$text);
    
    $text=preg_replace("/\[url\=(.+?)\](.+?)\[\/url\]/s", '<a href="$1">$2</a>',$text);
    
    $text=preg_replace("/\[img\](.+?)\[\/img\]/s", '<img src="$1" alt="User submitted image" title="User submitted image"/>',$text);
    
    $text=preg_replace("/\[color\=(.+?)\](.+?)\[\/color\]/s", '<span style="color:$1">$2</span>',$text);
    
    $text=preg_replace("/\[size\=(.+?)\](.+?)\[\/size\]/s", '<span style="font-size:$1">$2</span>',$text);
    
    $text=preg_replace("/\[code\](.+?)\[\/code\]/s",'<table cellspacing="1" width="100%" border="0"><tr><td>Code:</td></tr><tr><td width="100%" style="border:solid 1px black">$1</td></tr></table>',$text);
    
    
    
    $text = nl2br($text);
    return $text;
    }
    $htmlcode = $_POST['post'];
    if (!$htmlcode){
    ?>
    <form action="bbcode_form.php" method="post" name="editform" onsubmit="return checkForm(this)">
    <input type="button" class="button" value="bold" name="bold" onclick="javascript:tag('b', '', 'bold*', '', 'bold', 'bold');" onMouseOver="helpline('bold')" />
    <input type="button" class="button" value="italic" name="italic" onclick="javascript:tag('i', '[i]', 'italic*', '[/i]', 'italic', 'italic');" onMouseOver="helpline('italic')" />
    <input type="button" class="button" value="underline" name="underline" onclick="javascript:tag('u', '[u]', 'underline*', '[/u]', 'underline', 'underline');" onMouseOver="helpline('underline')" />
    <input type="button" class="button" value="quote" name="quote" onclick="javascript:tag('q', '[quote]', 'quote*', '[/quote]', 'quote', 'quote');" onMouseOver="helpline('quote')" />
    <input type="button" class="button" value="code" name="code" onclick="javascript:tag('c', '
    ', 'code*', '
    ', 'code', 'code');" onMouseOver="helpline('code')" />
    <input type="button" class="button" value="url" name="url" onclick="javascript:tag('url', '[url]', 'url*', '[/url]', 'url', 'url');" onMouseOver="helpline('url')" />
    <input type="button" class="button" value="img" name="img" onclick="javascript:tag('img', '[img]', 'img*', '[/img]', 'img', 'img');" onMouseOver="helpline('img')" />
    <hr>
    Font size: <select name="fontsize" onChange="font('[size=' + this.form.fontsize.options[this.form.fontsize.selectedIndex].value + ']', '[/size]'); this.selectedIndex=2;" onMouseOver="helpline('fontsize')" class="form_elements_dropdown">
    
    <option value="50%" >Tiny</option>
    <option value="75%" >Small</option>
    <option value="100%" selected >Normal</option>
    <option value="150%" >Large</option>
    <option value="200%" >Huge</option>
    </select>
    
    
    Font color: <select name="fontcolor" onChange="font('[color=' + this.form.fontcolor.options[this.form.fontcolor.selectedIndex].value + ']', '[/color]'); this.selectedIndex=0;" onMouseOver="helpline('fontcolor')" class="form_elements_dropdown" >
    <option value="black" style="color:black">Black</option>
    <option value="silver" style="color:silver">Silver</option>
    <option value="gray" style="color:gray">Gray</option>
    <option value="maroon" style="color:maroon">Maroon</option>
    <option value="red" style="color:red">Red</option>
    <option value="purple" style="color:purple">Purple</option>
    <option value="fuchsia" style="color:fuchsia">Fuchsia</option>
    <option value="navy" style="color:navy">Navy</option>
    <option value="blue" style="color:blue">Blue</option>
    <option value="aqua" style="color:aqua">Aqua</option>
    <option value="teal" style="color:teal">Teal</option>
    <option value="lime" style="color:lime">Lime</option>
    <option value="green" style="color:green">Green</option>
    <option value="olive" style="color:olive">Olive</option>
    <option value="yellow" style="color:yellow">Yellow</option>
    <option value="white" style="color:white">White</option> </select>
    <hr>
    <textarea rows="10" cols="56" name="post" class="form_elements_text"></textarea>
    <hr>
    <input type="submit" name="Post" value="Пусни" class="button"/>
    <input type="reset" value="Започни наново" class="button" onclick="javascript:confirm_reset();"/>
    <?
    } else {
    $htmlcode = htmlspecialchars("$htmlcode", ENT_QUOTES);
    echo bbcode("$htmlcode");
    }
    ?>

    Урока е написан специално за web-tourist.net


    Ако имате въпроси моля питайте във форума !

    Оставете коментар