Lid |
|
Ik heb volgende code, om BBcode om te parsen in html-code. Dit werkt, maar als ik binnen een BBcode enter, dan komt de BBcode gewoon ongeparsed terug.
Code :
<html>
<head>
<title>tag-test</title>
<style type="text/css">
textarea,div{
height:370px;
width:580px;
}
input.submit{
margin-left:260px;
}
img{
border:0;
}
img.pic{
cursor:pointer;
}
.code{
border:dotted #999;
background-color:#F5F5F5;
width:auto;
height:auto;
padding:5px;
max-height:20px;
}
</style>
<script language="javascript">
function setTags(BBinit){
var TekstVak=document.getElementById('TxtBox');
var BBcode;
if(BBinit=='url'){
var url=prompt("Het website-adres waarnaar je wilt linken","http://");
var urlname=prompt("Schrijf hier de tekst die naar de link moet verwijzen, niets invullen als je het website-adres wilt zien.","");
if(urlname){
BBcode="[url="+url+"]"+urlname+"[/url]";
}else{
BBcode="[url]"+url+"[/url]";
}
}else if(BBinit=='img'){
var imgurl=prompt("Geef hier de url van de afbeelding op.","");
BBcode="[img]"+imgurl+"[/img]";
}else{
BBcode="["+BBinit+"] [/"+BBinit+"]";
}
TekstVak.value=TekstVak.value+BBcode;
}
</script>
</head>
<body>
<img src="afbeeldingen/png/b.png" alt="vet" onClick="setTags('b');" class="pic">
<img src="afbeeldingen/png/i.png" alt="cursief" onClick="setTags('i');" class="pic">
<img src="afbeeldingen/png/u.png" alt="onderlijnd" onClick="setTags('u');" class="pic">
<img src="afbeeldingen/png/url.png" alt="link invoegen" onClick="setTags('url');" class="pic">
<img src="afbeeldingen/png/img.png" alt="afbeelding invoegen" onClick="setTags('img');" class="pic">
<form name="form" action="index.php" enctype="multipart/form-data" method="post">
<?php
$TxtBox=strip_tags($_POST['TxtBox']);
function replace($str){
$BBcodes=array("[b]","[/b]","[i]","[/i]","[u]","[/u]","[lijn]","[lijst*]","[lijst1]","[*]","[/lijst*]","[/lijst1]");
$HTMLcodes=array("<b>","</b>","<i>","</i>","<u>","</u>","<hr>","<ul>","<ol>","<li>","</ul>","</ol>");
$newStr=str_replace($BBcodes,$HTMLcodes,$str);
$BBpregcodes=array('/\[url\](.+?)\[\/url\]/','/\[url\=(.+?)\](.+?)\[\/url\]/','/\[img\](.+?)\[\/img\]/','/\[color\=(.+?)\](.+?)\[\/color\]/','/\[size\=(.+?)\](.+?)\[\/size\]/','/\[code\=(.+?)\](.+?)\[\/code\]/');
$HTMLpregcodes=array('<a href="$1">$1</a>','<a href="$1">$2</a>','<img src="$1">','<span style="color:$1;">$2</span>','<span style="font-size:$1">$2</span>','<div class="code" name="$1">$2</div>');
$newStr=preg_replace($BBpregcodes,$HTMLpregcodes,$newStr);
$newStr=nl2br($newStr);
return $newStr;
}
if(isset($_POST['sButton'])!=0 && $TxtBox){
echo "<textarea name='TxtBox' id='TxtBox'>" . $TxtBox . "</textarea><br />";
echo "<input type='submit' name='sButton' value='Show' class='submit' /><br />";
echo "<div>" . replace($TxtBox) . "</div>";
}else{
echo "<textarea name='TxtBox' id='TxtBox'></textarea><br />";
echo "<input type='submit' name='sButton' value='Show' class='submit' /><br />";
echo "<div>Geen invoer</div>";
}
?>
</form>
</body>
</html>
<html> <head> <title>tag-test</title> <style type="text/css"> textarea,div{ height:370px; width:580px; } input.submit{ margin-left:260px; } img{ border:0; } img.pic{ cursor:pointer; } .code{ border:dotted #999; background-color:#F5F5F5; width:auto; height:auto; padding:5px; max-height:20px; } </style> <script language="javascript"> function setTags(BBinit){ var TekstVak=document.getElementById('TxtBox'); var BBcode; if(BBinit=='url'){ var url=prompt("Het website-adres waarnaar je wilt linken","http://"); var urlname=prompt("Schrijf hier de tekst die naar de link moet verwijzen, niets invullen als je het website-adres wilt zien.",""); if(urlname){ BBcode="[url="+url+"]"+urlname+"[/url]"; }else{ BBcode="[url]"+url+"[/url]"; } }else if(BBinit=='img'){ var imgurl=prompt("Geef hier de url van de afbeelding op.",""); BBcode="[img]"+imgurl+"[/img]"; }else{ BBcode="["+BBinit+"] [/"+BBinit+"]"; } TekstVak.value=TekstVak.value+BBcode; } </script> </head> <body> <img src="afbeeldingen/png/b.png" alt="vet" onClick="setTags('b');" class="pic"> <img src="afbeeldingen/png/i.png" alt="cursief" onClick="setTags('i');" class="pic"> <img src="afbeeldingen/png/u.png" alt="onderlijnd" onClick="setTags('u');" class="pic"> <img src="afbeeldingen/png/url.png" alt="link invoegen" onClick="setTags('url');" class="pic"> <img src="afbeeldingen/png/img.png" alt="afbeelding invoegen" onClick="setTags('img');" class="pic"> <form name="form" action="index.php" enctype="multipart/form-data" method="post"> <?php function replace($str){ $BBcodes=array("[b]","[/b]","[i]","[/i]","[u]","[/u]","[lijn]","[lijst*]","[lijst1]","[*]","[/lijst*]","[/lijst1]"); $HTMLcodes=array("<b>","</b>","<i>","</i>","<u>","</u>","<hr>","<ul>","<ol>","<li>","</ul>","</ol>"); $BBpregcodes=array('/\[url\](.+?)\[\/url\]/','/\[url\=(.+?)\](.+?)\[\/url\]/','/\[img\](.+?)\[\/img\]/','/\[color\=(.+?)\](.+?)\[\/color\]/','/\[size\=(.+?)\](.+?)\[\/size\]/','/\[code\=(.+?)\](.+?)\[\/code\]/'); $HTMLpregcodes=array('<a href="$1">$1</a>','<a href="$1">$2</a>','<img src="$1">','<span style="color:$1;">$2</span>','<span style="font-size:$1">$2</span>','<div class="code" name="$1">$2</div>'); return $newStr; } if(isset($_POST['sButton'])!=0 && $TxtBox){ echo "<textarea name='TxtBox' id='TxtBox'>" . $TxtBox . "</textarea><br />"; echo "<input type='submit' name='sButton' value='Show' class='submit' /><br />"; echo "<div>" . replace ($TxtBox) . "</div>"; }else{ echo "<textarea name='TxtBox' id='TxtBox'></textarea><br />"; echo "<input type='submit' name='sButton' value='Show' class='submit' /><br />"; echo "<div>Geen invoer</div>"; } ?> </form> </body> </html>
Als ik dus bijvoorbeeld dit typ: [ b ] vet [ / b ] en ik druk op show, dan werkt alles perfect, maar als ik bv. dit typ: [ b ] blablabla,
blabla [ / b ] en ik druk op show, dan komt gewoon de hele code met [ b ] erbij tevoorschijn. (spaties, zodat het op dit forum niet vet tevoorschijn komt) Ik hoop dat ik het een beetje duidelijk heb uitgelegd.
Grt,Lolll
|