Avatar billede sebast Nybegynder
17. september 2005 - 09:23 Der er 15 kommentarer og
2 løsninger

Str_replace på hele ord

Hvordan laver jeg en str_replace på hele ord, og ikke kun fjerne bogstaver overalt i strengen.
Avatar billede jakobdo Ekspert
17. september 2005 - 09:55 #1
Ved at ændre søgeord fra: "ORD" til " ORD "
Avatar billede coderdk Praktikant
17. september 2005 - 11:48 #2
jakobdo, hvad så hvis strengen ender eller slutter på ordet? :)

Måske: $text = preg_replace( '/(^|\s)(ord)(\s|$)/', "\\1erstatning\\2", $text );
Avatar billede phliplip Nybegynder
17. september 2005 - 22:26 #3
str_replace(" ord ", " nytord ", " ".$streng." ");

!-)
Avatar billede phliplip Nybegynder
17. september 2005 - 22:27 #4
Det kan btw. godt være du skal vælge at bruge str_ireplace() i stedet.. den er ikke case-sensitiv!
Avatar billede jakobdo Ekspert
17. september 2005 - 23:16 #5
Kloge Åge Coderdk! :o( (men du har jo ret igen, som oftest) :o)
Avatar billede sebast Nybegynder
07. oktober 2005 - 11:24 #6
smid svar coderdk
Avatar billede coderdk Praktikant
07. oktober 2005 - 11:26 #7
Ok :)
Avatar billede phliplip Nybegynder
09. oktober 2005 - 18:08 #8
Min er hurtigere ;)
Avatar billede coderdk Praktikant
09. oktober 2005 - 18:23 #9
True, phliplip, men den virker ikke hvis strengen starter eller slutter på ordet ;)
Avatar billede coderdk Praktikant
09. oktober 2005 - 18:24 #10
(plus str_ireplace er kun php5 ;) )
Avatar billede phliplip Nybegynder
10. oktober 2005 - 08:17 #11
coderdk:
Derfor der er indsat whitespace i starten og slutning af string !-)

str_ireplace php5 ;) tsk tsk.. mindre detalje jeg lige overså :D Men kan jo være at han bruger PHP5 :P
Avatar billede coderdk Praktikant
10. oktober 2005 - 09:41 #12
phliplip, yep så den vil ikke virke på "ord et eller andet ord" - her vil din ikke erstatte "ord" med noget andet ;)
Avatar billede phliplip Nybegynder
10. oktober 2005 - 10:56 #13
coderdk: Prøv at test følgende! Og fortæl mig hvilket script der giver det bedste resultat!

--snip--
<?
// CoderDK eksempel
echo("<b>CoderDK eksempel:</b><br>");
$text = "hello WoRdl ord ORD orD OrD !";
echo($text."<br>");
$text = preg_replace( '/(^|\s)(ord)(\s|$)/', "\\1erstatning\\2", $text );
echo($text."<br><br>");

// Phliplip eksempel
echo("<b>Phliplip Eksempel:</b><br>");
$streng = "ord ja masser af ord er ORD rigtigt godt ord";
echo($streng."<br>");
$streng = str_replace(" ord ", " nytord ", " ".$streng." ");
echo($streng);
?>
--snap--
Avatar billede phliplip Nybegynder
10. oktober 2005 - 10:57 #14
Resultat:
Jeg ved ikke lige hvad der sker med din kode.. men hvorfor sætter den erstatning ind foran ord og fjerner whitespace bagved? og ikke replacer det?

--snip--
CoderDK eksempel:
hello WoRdl ord ORD orD OrD !
hello WoRdl erstatningordORD orD OrD !

Phliplip Eksempel:
ord ja masser af ord er ORD rigtigt godt ord
nytord ja masser af nytord er ORD rigtigt godt nytord
--snap--
Avatar billede coderdk Praktikant
10. oktober 2005 - 11:05 #15
Ja, ok jeg havde ikke testet ;) Du vil få det bedste resultat med denne:

echo("<b>CoderDK eksempel:</b><br>");
$text = "hello WoRdl ord ORD orD OrD !";
echo($text."<br>");
$text = preg_replace( '/\bord\b/i', "erstatning", $text );
echo($text."<br><br>");

:)
Avatar billede phliplip Nybegynder
10. oktober 2005 - 14:47 #16
:-P
Avatar billede phliplip Nybegynder
16. oktober 2005 - 14:05 #17
Tak for point!
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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