Erstatte tekststreng hvor der indgår ukendte tegn

Tags:    php

Hej

Jeg har et problen med at jeg gerne vil have en erstattet nogle htmlkoder(billedlink). Problemet er at koderne ikke er ens, feks. henviser en til billede1, en anden til billede2 osv.

Hvordan får jeg så php til at erstatte f.eks. alle billede* med et eller andet.

Har regnet ud at jeg skal bruge str_replace(), men hvilken kode skal jeg bruge til de ukendte tegn.

MVH Casper



7 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
det skal se sådan ud:

$billede_streng = preg_replace('/billede[[:digit:]]+/', 'Mit billede', $billede_streng);

men et lille headsup, er at det er ikke en særlig god ide at bruge posix charecter classes får sådanne ting, da den matcher på andet end 0-9 den matcher også decimal tal og tal der i det karaktersæt man bruger, dvs. hvis man bruger UTF-8 matcher den også et kinesisk eller rusisk tal. dette kan give et lidt uventet resultat i nogen tilfælde brug da denne istedet:

$billede_streng = preg_replace('/billede[0-9]+/', 'Mit billede', $billede_streng);

~ Steffen

\\"The only thing more frightening than a programmer with a screwdriver or a hardware engineer with a program is a user with a pair of wire cutters and the root password\\"
----------------------- EOF ----------------------



Hej

Jeg har et problen med at jeg gerne vil have en erstattet nogle htmlkoder(billedlink). Problemet er at koderne ikke er ens, feks. henviser en til billede1, en anden til billede2 osv.

Hvordan får jeg så php til at erstatte f.eks. alle billede* med et eller andet.

Har regnet ud at jeg skal bruge str_replace(), men hvilken kode skal jeg bruge til de ukendte tegn.

MVH Casper



str_replace() er nok ikke optimal her. Tror du skal kigge på noget regex..


Mvh. Emilbp



Undskyld Emilbp, læste forkert:)

Christoffer Buchholz
cbuchholz at ofir dot dk
http://www.christofferb.dk

[Redigeret d. 25/10-05 22:00:07 af Christoffer]



Hej

Jeg har et problen med at jeg gerne vil have en erstattet nogle htmlkoder(billedlink). Problemet er at koderne ikke er ens, feks. henviser en til billede1, en anden til billede2 osv.

Hvordan får jeg så php til at erstatte f.eks. alle billede* med et eller andet.

Har regnet ud at jeg skal bruge str_replace(), men hvilken kode skal jeg bruge til de ukendte tegn.

MVH Casper



str_replace() er nok ikke optimal her. Tror du skal kigge på noget regex..


Mvh. Emilbp


regex kan da også godt bruges i str_replace()?

Christoffer Buchholz
cbuchholz at ofir dot dk
http://www.christofferb.dk

--

Er der evt mulighed for at i kan uddybe en smule, hvad kan regex bruges til?



Hej igen

kiggede på php.net om regex... ser ud til at det er en mulig løsning, jeg kan bare ikke få den til at virke :)

[:digit:] skulle betyde alle tal fra 0-9, problemet er så at få sat det sammen med en tekststreng ala:

$tekst = ereg_replace("billede".[:digit:], "Det virker", $tekst);

det virker bare ikke, nogen der ved hvordan det skal skrues sammen så det virker?



[:digit:] skal være en del af strengen:

$tekst = ereg_replace("billede[:digit:]", "Det virker", $tekst);

Så vidt jeg husker skal der da et par [] mere udenom, så prøv også det her, hvis den første ikke virker:

$tekst = ereg_replace("billede[[:digit:]]", "Det virker", $tekst);
--
Thus, I conclude

[Redigeret d. 25/10-05 22:54:09 af XyborX]



takker mange gange for svarerne




t