Avatar billede radion Nybegynder
19. juni 2004 - 15:08 Der er 2 kommentarer og
1 løsning

higlight alt mellem php start og phpslut

Hej Eksperter

Jeg er ny i reg.exp og har problemer med at finde ud af en funktion der finder den tekst der er mellem <? og ?>

hvis jeg har en textstreng:
$vartxt= "her er en tekst.. og her kommer noget php <?echo \"wheee\";$var1=\"hej\";?>nu er det html igen.";

så skulle den gerne komme til at se sådan ud:
$vartxt= "her er en tekst.. og her kommer noget php " . higlight_string("<?echo \"wheee\";$var1=\"hej\";?>") . "nu er det html igen."; efter at være kørt igennem en eregi_replace() med en sindrig reg exp.

nogen der kan klare den?
Avatar billede chrisp Nybegynder
04. juli 2004 - 13:37 #1
Her er en mulig løsning på det jeg tror du gerne vil lave :)

Kan nok laves smarter, men er temmelig ny ud i php, men håber det kan bruges.

-----
<?php

/* Find alle <? ?> tags pattern */
$pattern = "(<\?([^?]|\?[^>])*\?>)"; 

/* Test data */
$body = "asdas d asdsd s<tb> <? aaa ?>s asd asdd <?php bbbb ?> asdasdsdlkasd\nasdsad ? asd asjd <tag> sdfjash < asd> <sad  asd> </a> as<?echo test ?> as<? hhsa > asd ? > ?> askdjasd";

/* Udfør search */
$cnt = preg_match_all($pattern, $body, $match);

/* For hvert tag, udfør higlight_string og erstat det org. match med resultatet af denne... */
$basestr = $body;
for($i = 0; $i < $cnt; $i++) {
    $basestr = str_replace($match[0][$i], higlight_string($match[0][$i]),$basestr);
}
echo ($basestr);


/* Erstat med din egen higlight_string */
function higlight_string($phpstring) {
    return "<span style='color:#FA0;'>". htmlspecialchars($phpstring) . "</span>" ;
}

?>
Avatar billede radion Nybegynder
04. juli 2004 - 20:20 #2
Supernice :D Jeg rettede dit pattern til $pattern = "(<?([^?]|\?[^>])*\?>)";  og så virkede det ( fjernede / på 3. plads )

Jeg har stavet forkert i mit spørgsmål, men det er self. highligt_string funktionen der skal bruges, og det virker perfekt.

Så, smid et svar, så er det 10-4
Avatar billede chrisp Nybegynder
04. juli 2004 - 22:14 #3
Ok her er så et svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester