abonnement Unibet Coolblue Bitvavo
pi_16975954
Ik heb een lap tekst met ubb in een database staan. Dit haal ik uit de database en dan door de function ubb:
php:
<?
function ubb($string) {
   
// wat andere preg_replace dingen staan hier (werkt ook niet zonder deze)
   
$string = preg_replace("/\highlight titel=\"(.*)\"\(.*)\[\/highlight\]/siU", vb("\\2", "\\1"), $string;
}
?>

Zoals je kan zien moet deze preg_replace zoeken naar dingen zoals
code:
[highlight titel="Voorbeeld"]
<?
echo "hoi";
?>
[/highlight]

Dit werkt prima. Heeft hij dit gevonden dan moet hij het door de functie vb("\\2", "\\1"); halen. Dit doet hij, maar hij geeft niet het resultaat wat ik wil hebben.
function vb:
php:
<?

function vb($string, $title) {
  return
"<table>
      <tr>
          <td width=20>&nbsp;</td>
          <td>"
. $title . "</td>
      </tr>
      <tr>
          <td>&nbsp;</td>
          <td>"
  
. highlight_string($string, true)
  .
"</td>
    </tr>
   </table>
     "
;
}
?>

Het probleem, hij highlight de variabele $string niet, hij doet het wel als ik i.p.v. highlight_string($string, true) bijvoorbeeld highlight_string("<?php echo \"testing\"; die; ?>", true) neerzet. De tabel eromheen zet hij wel goed neer. Weet iemand wat er mis is en hoe ik het moet oplossen?

[Dit bericht is gewijzigd door NerdoNielso op 07-02-2004 18:16]

  zaterdag 7 februari 2004 @ 18:10:19 #2
56025 artyfarty
...en waarom dan wel?
pi_16976221
highlight_string retourneert niet een gehighlighte string (dan zou 't wel werken), maar boolean (of 'ie gelukt is...)

Je moet dus eerst de helft van je tabel echoën, daarna de functie highlight_string() aanroepen (buiten je echo statement), en daarna de rest van de tabel.

(Denk ik, geen ervaring met die functie)

EDIT:
zoiets dus:

php:
<?
function vb($string, $title) {
  echo
"<table>
      <tr>
          <td width=\"20\">&nbsp;</td>
          <td>"
. $title . "</td>
      </tr>
      <tr>
          <td>&nbsp;</td>
          <td>"
;
  
highlight_string($string, true);
  echo
"</td>
    </tr>
   </table>
     "
;
}
?>

Nu retourneert de functie dus niet, maar echoot hij 'm direct.

EDIT2: let ff op je typo's in de td-definitie: width en "20" ipv 20

"If everything seems under control, you're just not going fast enough." (Mario Andretti)
pi_16976428
quote:
Op zaterdag 7 februari 2004 18:10 schreef artyfarty het volgende:
(..)
Nu retourneert de functie dus niet, maar echoot hij 'm direct.
Ik zal het even proberen
quote:
EDIT2: let ff op je typo's in de td-definitie: width en "20" ipv 20
staat niet in mijn echte script, moest even wat overtypen vanuit nano
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')