Yell0w 0 Report post Posted May 19, 2003 trenger litt hjelp her, har problemer med å lage en som replacer med <table width="xx"><td></td></table> og sånt, førstedelen fungerer Dette fungerer: $kilden = ereg_replace("<","&",$kilden); $kilden = ereg_replace(">","&",$kilden); Dette fungerer ikke: $kilden = ereg_replace("[code]","<table width="xx"><td>",$kilden); $kilden = ereg_replace(" ","</td></table>",$kilden); om du kan hjelpe eller eventuelt har mulige erstattninger eller snippets hadde jeg blitt glad om du posta her eller maila meg tilbake Quote Share this post Link to post
gxi 289 Report post Posted May 19, 2003 $kilden = ereg_replace("code","<table width="><td>",$kilden); $kilden = ereg_replace("/code","</td></table>",$kilden); (jeg fjerna [] på code for at den ikke skulle ta den som BBCode) Quote Share this post Link to post
Yell0w 0 Report post Posted May 21, 2003 Kilden nu: if ($kilden && $kilden) { $kilden = ereg_replace("<","&",$kilden); $kilden = ereg_replace(">","&",$kilden); $kilden = ereg_replace("CODESTART","$codestart",$kilden); $kilden = ereg_replace("CODEEND","$codeend",$kilden); stripslashes($kilden); } viss jeg har CODESTART <? echo"something";?> blir det seendes ut som dette: <? echo"something";?> trodde stripslashes ville fikse dette jeg? noen forslag? Quote Share this post Link to post
rudolfrock 0 Report post Posted May 21, 2003 du trenger ikke "" rundt variabler. og jeg ville heller ha brukt str_replace(). ta en titt her: http://no2.php.net/manual/en/function.str-replace.php If you don't need fancy replacing rules, you should always use this function instead of ereg_replace() or preg_replace(). $codestart = "<table width="xx"><tr><td>"; $codeend = "</td></tr></table>"; $kilden = str_replace("code", $codestart, $kilden); $kilden = str_replace("/code", $codeend, $kilden); (måtte fjerne [] jeg og....) Quote Share this post Link to post
Yell0w 0 Report post Posted May 21, 2003 får fremdeles " på echoen koden: <? $codestart = "<br><table border="1" bgcolor="#FFFFCC" cellspacing="0" cellpadding="0"><tr><td height="100" valign="center" align="left">"; $codeend = "</td></tr></table><br>"; echo"Kilden før:"; echo"<br>"; echo"$kilden"; echo"<br>";echo"<br>"; if ($kilden && $kilden) { $kilden = str_replace("<","&",$kilden); $kilden = str_replace(">","&",$kilden); $kilden = str_replace("CODESTART",$codestart,$kilden); $kilden = str_replace("CODEEND",$codeend,$kilden); stripslashes($kilden); } echo"<br>"; echo"Kilden etter:"; echo"<br>"; echo"$kilden"; ?> har du lyst å teste er det bare å kopiere koden og lagre som et php dokument bare definer $kilden som feks. side.php?kilden=<?echo"test"?> Quote Share this post Link to post
rudolfrock 0 Report post Posted May 21, 2003 function code_replace($str) { $codestart = "<br><table border="1" bgcolor="#FFFFCC" cellspacing="0" cellpadding="0"><tr><td height="100" valign="center" align="left">"; $codeend = "</td></tr></table><br>"; $str = str_replace("<","&", $str); $str = str_replace(">","&", $str); $str = str_replace("[code]", $codestart, $str); $str = str_replace(" ", $codeend, $str); stripslashes($str); return $str;}echo "Kilden før:"; $replace = " kjør den der du så skal det funke. bare lagre det som en php fil så får du se... Quote Share this post Link to post
Yell0w 0 Report post Posted May 21, 2003 takker så meget for all hjelp Quote Share this post Link to post
rudolfrock 0 Report post Posted May 21, 2003 jo, bare hyggelig så nå at en echo $kilden; hadde lurt seg inn der. den trengs ikke... Quote Share this post Link to post
sven-o 13 Report post Posted June 4, 2003 Mange morsomme forslag her, men det enkleste, mest effektive, og mest feilsikre er nok å bruke regulere utrykk. Disse linjene finner MØNSTERET og bytter det ut. Se her: $streng = "[code]Bla bla bla "; $streng = preg_replace("/ På denne måten slipper du å bekymre deg om åpne bbcode-tagger. Da blir det helt enkelt ikke gjort noe med! (Hadde vært kjipt om noen la inn kun en [/code], og vips så er tabelloppsettet på nettsiden din vræka) Quote Share this post Link to post
Akke 0 Report post Posted July 14, 2003 Glimrende tråd Driver med det samma nå. Prøvde å rappe kode fra phpbb forumet, men det gikk ikke så bra... hehe... Tenkte også å lage knapper som setter inn koden slik som det er her når man poster. Altså setter inn (B), (u) eller (i) inn i textarea. (med [] istedenfor () seff) Samtidig at man kan merke tekst og klikke (B) så kommer det startkode og sluttkode automatisk rundt teksten. Dette krever vel javascript og det kan jeg NULL av... Noen som veit hvordan koden blir eller har fått ut riktig kode av phpbb2 kildekoden? Takker for svar Akke Quote Share this post Link to post
z_lakaman 0 Report post Posted September 15, 2003 Det er bare å rappe rett ut herifra, men det blir bare surr i andre nettlesere enn nyeste IE, mener jeg å huske, men her er nå iallefall den biten av den jeg bruker: <form action="action.php" method="get" name="form"> <script language="JavaScript" type="text/javascript"> <!-- // bbCode control by // subBlue design // www.subBlue.com // Startup variables var imageTag = false; var theSelection = false; // Check for Browser & Platform for PC & IE specific bits // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html var clientPC = navigator.userAgent.toLowerCase(); // Get client info var clientVer = parseInt(navigator.appVersion); // Get browser version var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1)); var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1) && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1)); var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1)); var is_mac = (clientPC.indexOf("mac")!=-1); // Helpline nyhets b_help = "Fet tekst: [b]tekst[/b] (alt+b)"; i_help = "Kursiv tekst: [i]tekst[/i] (alt+i)"; u_help = "Understreket tekst: [u]tekst[/u] (alt+u)"; a_help = "Lukk alle åpne tagger"; // Define the bbCode tags bbcode = new Array(); bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]'); imageTag = false; // Shows the help nyhets in the helpline window function helpline(help) { document.form.helpbox.value = eval(help + "_help"); } // Replacement for arrayname.length property function getarraysize(thearray) { for (i = 0; i < thearray.length; i++) { if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null)) return i; } return thearray.length; } // Replacement for arrayname.push(value) not implemented in IE until version 5.5 // Appends element to the array function arraypush(thearray,value) { thearray[ getarraysize(thearray) ] = value; } // Replacement for arrayname.pop() not implemented in IE until version 5.5 // Removes and returns the last element of an array function arraypop(thearray) { thearraysize = getarraysize(thearray); retval = thearray[thearraysize - 1]; delete thearray[thearraysize - 1]; return retval; } function bbstyle(bbnumber) { donotinsert = false; theSelection = false; bblast = 0; if (bbnumber == -1) { // Close all open tags & default button names while (bbcode[0]) { butnumber = arraypop(bbcode) - 1; document.form.nyhet.value += bbtags[butnumber + 1]; buttext = eval('document.form.addbbcode' + butnumber + '.value'); eval('document.form.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"'); } imageTag = false; // All tags are closed including image tags :D document.form.nyhet.focus(); return; } if ((clientVer >= 4) && is_ie && is_win) theSelection = document.selection.createRange().text; // Get text selection if (theSelection) { // Add tags around selection document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1]; document.form.nyhet.focus(); theSelection = ''; return; } // Find last occurance of an open tag the same as the one just clicked for (i = 0; i < bbcode.length; i++) { if (bbcode[i] == bbnumber+1) { bblast = i; donotinsert = true; } } if (donotinsert) { // Close all open tags up to the one just clicked & default button names while (bbcode[bblast]) { butnumber = arraypop(bbcode) - 1; document.form.nyhet.value += bbtags[butnumber + 1]; buttext = eval('document.form.addbbcode' + butnumber + '.value'); eval('document.form.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"'); imageTag = false; } document.form.nyhet.focus(); return; } else { // Open tags if (imageTag && (bbnumber != 14)) { // Close image tag before adding another document.form.nyhet.value += bbtags[15]; lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list document.form.addbbcode14.value = "Img"; // Return button back to normal state imageTag = false; } // Open tag document.form.nyhet.value += bbtags[bbnumber]; if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag arraypush(bbcode,bbnumber+1); eval('document.form.addbbcode'+bbnumber+'.value += "*"'); document.form .nyhet.focus(); return; } storeCaret(document.form .nyhet); } // Insert at Claret position. Code from // http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130 function storeCaret(textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } //--> </script> <script type="text/javascript"> <!-- // Insert at Claret position. Code from // http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130 function emoticon(text) { text = ' ' + text + ' '; if (document.form.nyhet.createTextRange && document.form.nyhet.caretPos) { var caretPos = document.form.nyhet.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text; document.form.nyhet.focus(); } else { document.form.nyhet.value += text; document.form.nyhet.focus(); } } function storeCaret(textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } //--> </script> <input type="button" class="button" accesskey="b" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onclick="bbstyle(0)" onmouseover="helpline('b')" /> <input type="button" class="button" accesskey="i" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onclick="bbstyle(2)" onmouseover="helpline('i')" /> <input type="button" class="button" accesskey="u" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onclick="bbstyle(4)" onmouseover="helpline('u')" /> <a href="javascript:bbstyle(-1)" onmouseover="helpline('a')">Lukk tagger</a> <p><textarea class="box" cols="54" rows="16" name="nyhet" id="nyhet" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);"></textarea></p> <p><input type="text" name="helpbox" size="46" class="helpline" value="Teksten kan formateres ved enkle grep :-)" maxlength="44" /></p> </form> Quote Share this post Link to post
Torbjørn 49 Report post Posted September 22, 2003 Hva med å linke eksternt til så store kode-snutter som dette? For det første er det få som egentlig har interesse av å lese spaltemetere med kildekode (jeg scroller hvertfall kjapt forbi) og forumets relativt smale sideoppsett egner seg dårlig. Quote Share this post Link to post