Avatar billede dvaske Nybegynder
05. august 2002 - 17:21 Der er 1 løsning

eregi_replace - omformatteret output

Jeg har en tekst

"en masse tekst <(CMD§k1§k2§k3§k4)> en masse tekst"

og vil gerne kunne hive kommandoen "CMD" og kriterierne "kx" ud og give dem en anden formattering alt efter hvad CMD indeholder. Kriteriernes antal kan variere, kommandoen indeholder kun tekst, alt er adskilt af §, og kriterierne kan indeholde alle tegn.

Jeg benytter PHP og tænkte på at lave en eregi_replace, men jeg er sgu lidt i tvivl om hvordan jeg får hevet kriterie- og kommandodataene ud.

Nogen der kan hjælpe?
Avatar billede limemedia Nybegynder
05. august 2002 - 17:41 #1
dvaske,

Jeg har lavet et lille script der finder alle CMD sætninger i din streng

<?php
    $str = "en masse tekst <(CMD§k1§k2§k3§k4)> en masse tekst en masse tekst <(CMD§k4§k3§k2§k1)> en masse tekst";
   
    preg_match_all ("/<\(CMD([\w§]+)\)>/i", $str, $res, PREG_PATTERN_ORDER);

    echo "<pre>";
    var_dump($res);
    echo "</pre>";
?>

resultatet giver

array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(19) "<(CMD§k1§k2§k3§k4)>"
    [1]=>
    string(19) "<(CMD§k4§k3§k2§k1)>"
  }
  [1]=>
  array(2) {
    [0]=>
    string(12) "§k1§k2§k3§k4"
    [1]=>
    string(12) "§k4§k3§k2§k1"
  }
}


det du kan er, at loope gennem $res[1] og explode (http://www.php.net/manual/en/function.explode.php) på § - det giver dig de 4 variabler k1, k2, k3 og k4 hver for sig. Herudfra kan du foretage de udskiftninger du vil med fx en strreplace hvor du udskifter $res[0][x] med dit resulatat.

Hvis du skriver hvad CMD sætningerne skal udskiftes med, kan vi hjælpe dig videre endnu :)

/ LJ
www.ljweb.com
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