login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[code] [/code]

Offline leendert - 01/04/2005 18:23
Avatar van leendertHTML beginner Ik heb nu dit om de code op het forum weer te geven.

$bericht = preg_replace("/\[code\](.+?)\[\/code\]/is",'<font color=#DF043E>\1</font>', $bericht);

maar hoe kan ik nou zorgen dat er een border om die code heen komt met een andere achtergrondkleur netzoals hier?

12 antwoorden

Gesponsorde links
Offline vinTage - 01/04/2005 18:28 (laatste wijziging 01/04/2005 18:36)
Avatar van vinTage Nieuw lid echo $bericht in een css style of class

  1. <style type="text/css">
  2. <!--
  3. .vakje {
  4. background-color: #CCCCCC;
  5. }
  6. -->
  7. </style>
  8.  
  9. <?php
  10. echo "<table border='1'><tr><td class='vakje'>".$bericht."</td></tr></table>" ;
  11. ?>

Offline leendert - 01/04/2005 18:39
Avatar van leendert HTML beginner nee dat kan niet omdat dan alles er in komt ook geen code.
Het is dus de bedoeling dat leden code en gewone tekst kunnen posten en code moet dan in een tabel en de gewone tekst niet netzo als hier
Offline Tuinstoel - 01/04/2005 18:40
Avatar van Tuinstoel PHP expert Gewoon je regular expression output wat aanpassen?
  1. $bericht = preg_replace("/\[code\](.+?)\[\/code\]/is",'<table width="100%"><tr><td>\1</td></tr></table>', $bericht);
Offline leendert - 01/04/2005 19:02
Avatar van leendert HTML beginner jepz maar hoe hightlight ik nou alleen wat er tussen de code staat?
Offline b4nkr0bz0r - 02/04/2005 13:03 (laatste wijziging 02/04/2005 13:16)
Avatar van b4nkr0bz0r PHP gevorderde <?php
$bericht = preg_replace('_\[code\](.*?)\[\/code\]_ise', 'phphighlite('\\1')', $bericht);
?>
nu ga ik er vanuit dat je functie 'highlight' heet

zo gaat het volgens mij wel ?
Offline Thomas - 02/04/2005 13:11
Avatar van Thomas Moderator Dat kun je ook in je reguliere expressie regelen, je kunt in reguliere expressies functies laten uitvoeren. Hiertoe voeg je een /e toe aan het einde van het patroon (e van evalueren), en in het "replace"-gedeelte zet je dan de functie highlight_string(), dus zoiets:

  1. <?php
  2. $text = "text en code in codeblokken ...";
  3.  
  4. echo preg_replace("/\[code\](.*)\[\/code\]/ise", "'<table border=\"1\"><tr><td>'.@highlight_string('\\1', 1).'</td></tr></table>'", $text);
  5. ?>


Maar dan beginnen je problemen pas echt - backslashes die uit het niets (?) tevoorschijn komen, quotes en dubbelquotes.

Veel plezier ermee.
Offline webstab - 02/04/2005 19:38 (laatste wijziging 02/04/2005 19:39)
Avatar van webstab PHP ver gevorderde
  1. <?php
  2. function kleurphp($bericht) {
  3. $bericht = trim($bericht);
  4. $bericht = str_replace(" &lt;?", "&lt;?", $bericht);
  5. $bericht = str_replace("<br />", "\n", $bericht);
  6. $bericht = str_replace("<br>", "\n", $bericht);
  7. $bericht = str_replace('\\"', '\"', $bericht);
  8. $bericht = str_replace("&lt;", "<", $bericht);
  9. $bericht = str_replace("&gt;", ">", $bericht);
  10. $bericht = str_replace("&quot;", "\"", $bericht);
  11. $bericht = str_replace("&amp;", "&", $bericht);
  12. $bericht = stripslashes($bericht);
  13. highlight_string($bericht);
  14. $bericht = ob_get_contents();
  15.  
  16. $output = "<table border='0' width='375' cellspacing='0' cellpadding='0' align='center' style='border: solid 1px #000000'>";
  17. $output .="<tr><td class=\"quotelijn\" valign='top' width='7%' style='padding-left: 2'><b>";
  18.  
  19. $regels = explode("<br />", $bericht);
  20.  
  21. for($i=1; $i <= count($regels); $i++){
  22. $output .= $i . "<br>";
  23. }
  24.  
  25. $output .="</b></td><td align='left' valign='top' nowrap width='93%' colspan='2' bgcolor=#FFFFFF>". $bericht ."</td></tr></table>";
  26.  
  27. $output = eregi_replace("(<code><font color=\"#000000\">\n)(.*)(</code>)","<font color=black>\\2</font>",$output);
  28.  
  29. return $output;
  30. }
  31. $bericht = preg_replace('_\[code\](.*?)\[/code\]_ise', "kleurphp(' \\1 ')",$bericht); ?>

Het kleuren enz lukt perfect,maar het nummeren van de lijnen niet,hoe doe je dat?
Offline b4nkr0bz0r - 02/04/2005 20:25
Avatar van b4nkr0bz0r PHP gevorderde dit bedoel je?

mischien dat je daar wat mee kan!
Offline webstab - 02/04/2005 20:38
Avatar van webstab PHP ver gevorderde Geprobeerd,maar ik snap niet goed hoe ik dat er moet inpassen?
Offline thyssimonis - 03/04/2005 11:53
Avatar van thyssimonis PHP interesse Mij lukt het ook niet, zoek er ook naar^^
Offline leendertW - 10/04/2005 18:27 (laatste wijziging 10/04/2005 18:41)
Avatar van leendertW PHP beginner @webstab

ik gebruik hem nu van jouw (die code)

maar die werkt perfect(y)

Alleen worden de regels niet afgekapt (ga ik er zelf in doen )

bedankt.

[edit]

hij telt niet altijd alle regels:S, als je dat probleem hebt opgelost hoor k het graag:D
Offline MaZZie - 10/04/2005 18:49 (laatste wijziging 10/04/2005 18:51)
Avatar van MaZZie PHP interesse
$bericht = preg_replace("/\[code\](.+?)\[\/code\]/is",'<font color=#DF043E><blockquote><table><tr><td bgcolor=\"#333333\" border=\"1\">\1</td></tr></table></blockquote></font>', $bericht);

probeer dit eens (niet getest)

[edit]
Ow was nog een pagina waar antwoord al was gegeven:$
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.239s