Avatar billede weeelo Nybegynder
30. maj 2006 - 17:44 Der er 15 kommentarer og
1 løsning

Hjælp til str_replace?

Hejsa,

Jeg sidder og bikser med en str_replace, hvor jeg skal have fjernet linier med variable id'er.

En linie kunne f.eks. se sådan her ud:

<tr onclick=\"location.href='index.phtml?ac_start2=1&amp;id=986321';\">

Og min str_replace således:

$streng = str_replace("<tr onclick=\"location.href='index.phtml?ac_start2=1&amp;id=986321';\">
", "", $streng);

Men i dette tilfælde udelukker den kunne linien med id=986321..

Hvordan kan jeg gøre således at den udelukker uanset hvilket id der er tale om?

MVH Weeelo
Avatar billede weeelo Nybegynder
30. maj 2006 - 17:45 #1
Men i dette tilfælde udelukker den kun linien med id=986321..*
Avatar billede nielle Nybegynder
30. maj 2006 - 17:50 #2
Et bud:

$streng = preg_replace("/<tr onclick=\"location.href='index.phtml?ac_start2=1&amp;id=\d+';\">/i", "", $streng);
Avatar billede weeelo Nybegynder
30. maj 2006 - 18:02 #3
Nixen, det virker ikke..

Skulle \d+ virke som en "joker"?
Avatar billede nielle Nybegynder
30. maj 2006 - 18:06 #4
\d+ skulle gerne betyde "1 eller flere ciffre".

PS: Jeg bliver lige nødt til at spørge: Du har lagt mærke til at jeg bruger preg_replace i stedet for str_replace?
Avatar billede weeelo Nybegynder
30. maj 2006 - 18:07 #5
Jo, det har jeg :)
Avatar billede nielle Nybegynder
30. maj 2006 - 18:07 #6
Måske virker denne her bedre:

$streng = preg_replace("/<tr onclick=\"location.href='index\.phtml\?ac_start2=1&amp;id=\d+';\">/i", "", $streng);
Avatar billede nielle Nybegynder
30. maj 2006 - 18:10 #7
Strengt taget er det ikke nødvendigt at escape .-tegnene for at det virker, men det er nu det pæneste:

$streng = preg_replace("/<tr onclick=\"location\.href='index\.phtml\?ac_start2=1&amp;id=\d+';\">/i", "", $streng);
Avatar billede weeelo Nybegynder
30. maj 2006 - 18:11 #8
Ja, sandelig så.. Det virker!

Smid et svar og tak for hjælpen..
Avatar billede nielle Nybegynder
30. maj 2006 - 18:13 #9
Svar :^)
Avatar billede weeelo Nybegynder
30. maj 2006 - 18:13 #10
Super!
Avatar billede weeelo Nybegynder
30. maj 2006 - 18:57 #11
Jeg ved ikke helt om jeg skal oprette et nyt spørgsmål, men prøver lige her først.

Hvad hvis jeg har en dato i strengen? F.eks.: 01/12 22:34

$streng = preg_replace("/\d+/\d+ \d+:\d+/i", "", $streng);

Det virker ikke?
Avatar billede nielle Nybegynder
30. maj 2006 - 19:00 #12
Prøv lige dette:

$streng = preg_replace("/\d+\/\d+ \d+:\d+/i", "", $streng);
Avatar billede nielle Nybegynder
30. maj 2006 - 19:02 #13
... men selv ville jeg nok bruge denne:

$streng = preg_replace("/\d{2}\/\d{2} \d{2}:\d{2}/", "", $streng);
Avatar billede weeelo Nybegynder
30. maj 2006 - 19:34 #14
Fantastisk! Begge muligheder virker - jeg går udfra at {2} betyder at cifrene begrænses til præcis 2?

Mange tak for hjælpen igen - vil du have flere points for det?
Avatar billede nielle Nybegynder
30. maj 2006 - 19:51 #15
Nemlig:

{2} = præcis 2
{2,} = 2 eller flere
{2,4} = 2 til 4
{,4} = 0-4

Nej tak, der er ikke behov for flere point på denne her, men ellers tak for tilbudet. :^)
Avatar billede weeelo Nybegynder
30. maj 2006 - 19:53 #16
Ok, tak for uddybningen. Så lærte jeg da lidt i dag :)
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