login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Highlight werkt niet goed

Offline MaZZie - 08/04/2005 00:58
Avatar van MaZZiePHP interesse ik gebruik het volgende om de tekst uit de database te replacen.
  1. <?php
  2. $message = htmlentities($message);
  3. $message = stripslashes($message);
  4. $message = nl2br($message);
  5. $message = preg_replace ("/\[php\]((.|\n)*?)\[\/php\]/e", 'highlight_string("\\1", true)', $message);
  6. $message = preg_replace('/((http:\/\/)|(www\.))(\S+)/i','<a href="http://\3\4" target="_blank">\3\4</a>',$message);
  7.  
  8. ?>

ik krijg nu bij de eerste PHP.net: wel een goede output maar bij een 2e post met deze code werkt het niet meer

Om het de database in te doen gebruik ik
  1. <?php
  2. htmlentities($_POST['message']);
  3. ?>

wat doe ik fout?

10 antwoorden

Gesponsorde links
Offline Sean - 08/04/2005 10:13 (laatste wijziging 08/04/2005 10:13)
Avatar van Sean PHP interesse
  1. <?php
  2. $message = htmlentities($message);
  3. $message = stripslashes($message);
  4. $message = nl2br($message);
  5. $message = preg_replace ("/\[php\](.*?)\[\/php\]/Uise", 'highlight_string("\\1", true)', $message);
  6. $message = preg_replace('/((http:\/\/)|(www\.))(\S+)/i','<a href="http://\3\4" target="_blank">\3\4</a>',$message);
  7.  
  8. ?>

zou moeten werken (afaik) niet getest
Offline CelestialCelebi - 08/04/2005 10:55
Avatar van CelestialCelebi PHP gevorderde Ik vraag me af wat die htmlentities() daar doet... En die stripslashes() (zonder te kijken of magic_quotes_gpc() aan of uit staat) en ook die nl2br()...
  1. <?php
  2. $message = 'blaat http://www.google.nl/ [php]<?php echo \'hallo wereld\'; ?>[/php] blaat';
  3. $message = htmlentities($message);
  4. $message = stripslashes($message);
  5. $message = nl2br($message);
  6. $message = preg_replace ("/\[php\](.*?)\[\/php\]/Uise", 'highlight_string("\\1", true)', $message);
  7. $message = preg_replace('/((http:\/\/)|(www\.))(\S+)/i','<a href="http://\3\4" target="_blank">\3\4</a>',$message);
  8. echo $message;
  9. ?>


Output:

  1. blaat <a href="http://www.google.nl/" target="_blank">www.google.nl/</a> <code><span style="color: #000000">
  2. &amp;lt;?php echo \'hallo wereld\'; ?&amp;gt;</span>
  3. </code> blaat



Tja, logisch dat het niet werkt..
Offline MaZZie - 08/04/2005 13:16 (laatste wijziging 08/04/2005 13:42)
Avatar van MaZZie PHP interesse het is gelukt
Offline MaZZie - 08/04/2005 14:23
Avatar van MaZZie PHP interesse Het werkt toch nog niet goed...
als ik htmentitie() weghaal dan kan je gewoon<b> enzo gebruiken en dat moet niet hoe los ik dit op?
Offline Rens - 08/04/2005 16:19
Avatar van Rens Gouden medaille

Crew algemeen
strip_tags() stript alle html en php tags.
Dus haalt hij <b> enzo er uit.
Offline ikkedikke - 08/04/2005 17:42
Avatar van ikkedikke PHP expert en alle tags die er net ingezet zijn ja...
misschien nog een regexp maken die alles buiten codetags door htmlentites haalt?
Offline CelestialCelebi - 08/04/2005 19:07
Avatar van CelestialCelebi PHP gevorderde Rensjuh (?? Wat een naam):
"strip_tags() stript alle html en php tags.
Dus haalt hij <b> enzo er uit."

Zal niet helpen, <?php echo '<b>hoi</b>'; ?> zal dan ook worden gestript..
Offline MaZZie - 09/04/2005 14:29
Avatar van MaZZie PHP interesse dus wat gaat wel helpen?
Offline Thomas - 09/04/2005 14:34 (laatste wijziging 09/04/2005 14:35)
Avatar van Thomas Moderator Het probleem is dat je "text" en "code-blokken" een aparte 'behandeling' wilt geven.

Je wilt alle HTML enzo in gewone tekst uitschakelen en je wilt code tussen code-blokken highlighten. Wat je in feite moet doen is zoiets:

- schrijf alle code-blokken weg naar een array, en vervang deze door een tijdelijk nummer tussen speciale tags
- voer htmlentities() enzo uit over je hele tekst
- zet de codeblokken (gemarkeerd door de speciale tags) terug met de opmaak die jij er aan wilt geven (highlight_string() et cetera)

Je moet dit dus in meerdere stappen opdelen.
Offline MaZZie - 09/04/2005 14:58
Avatar van MaZZie PHP interesse dat is een antwoord waar ik wat aan heb dank je
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.223s