uranus Skrevet 6. april 2008 Skrevet 6. april 2008 Hei! Før dere ler av mitt enkle spm, la meg utdype. Jeg har laget "stikkord" på nyhetene mine. Jeg vil ha muligheten til å kunne skrive stikkordene med mellomrom eller komma, og uansett vise stikkordene i nyheten med kommaer. Så jeg gjorde dette: $nyhet['tags'] = str_replace(" ", ", ", $nyhet['tags']); Men om jeg da skriver med komma, blir det dobbelt opp. Hva gjør jeg?
nree Skrevet 6. april 2008 Skrevet 6. april 2008 (endret) Om jeg forstår deg rett så skal det om du skriver "Foo,bar,foo,bar" skal det være slik, men om du skriver "Foo bar foo bar" skal mellomrom bli erstattet med komma? Da ville jeg først sjekket om det er brukt komma, hvis det ikke er brukt er det mest sannsynlig brukt mellomrom (kombinasjon er ikke lov ) <?php // Variabel uten vanskelige tegn er fint :) $tags = $nyhet['tags']; // Sjekker om det finnes komma i "tags" if (!preg_match("/,/i", $tags)) { // Hvis det ikke finnes blir alle mellomrom erstattet med komma $tags = str_replace(" ", ",", $tags); } ?> Vet ikke helt om dette fungerer, men du får prøve Endret 6. april 2008 av Goggen90
aCa Skrevet 6. april 2008 Skrevet 6. april 2008 (endret) Siden du skal kunne skille stikkordene med enten mellomrom eller komma. Vil det si at ingen av stikkordene har mellomrom? Pattern: ([^,])\s Replacement: $1, Subject: fotball, golf data Da vil du få byttet ut mellomrom med komma så lenge ikke tegnet før mellomrommet er komma. PHP koden blir da preg_replace('/([^,])\s/i', '$1, ', 'fotball, golf data'); Men denne har noen svakheter. Jeg er ikke sikker hvor streng syntaks du krever? Hvis du tester de verdiene på http://regex.larsolavtorvik.com/ så kan du se om den er bra nok til ditt eksempel. Pattern: ([^,|\s])[\s]+([^,|\s]) Replacement: $1, $2 Subject: fotball, golf data preg_replace('/([^,|\s])[\s]+([^,|\s])/i', '$1, $2', 'fotball, golf data'); Denne koden vil støtte at folk skriver mellomrom før komma og at man skriver flere enn ett mellomrom. Det finns mange måter å gjøre dette på men dette er i hvertfall to eksempler. Endret 6. april 2008 av aCa
uranus Skrevet 6. april 2008 Forfatter Skrevet 6. april 2008 Fått det i orden nå Men hvordan kan jeg sette link på de? At hvert ord har samme link f.eks "?s=stikkord&ord=ordet" ?
aCa Skrevet 6. april 2008 Skrevet 6. april 2008 (endret) Fått det i orden nå Men hvordan kan jeg sette link på de? At hvert ord har samme link f.eks "?s=stikkord&ord=ordet" ? Du kunne ha benyttet deg av denne pattern: (\w)[,|\s]* preg_replace('/(\w+)[,|\s]*/', '<a href="somthing.php?s=$1&ord=ordet">$1</a>, ', 'asdf, 234, sdf,sdf,'); Bruk substr eller noe til å fjerne siste mellomrom og komma. Litt usikker hva du mente med ordet i linken din, så gi meg beskjed hvis dette ikke løser problemet ditt. Edit: glemte en + tegn. Endret 6. april 2008 av aCa
uranus Skrevet 6. april 2008 Forfatter Skrevet 6. april 2008 Nei at "ordet" blir stikkordet da.. Så si dette: hei, bob, arne så blir det link=hei, link=bob, link=arne U see?
aCa Skrevet 6. april 2008 Skrevet 6. april 2008 Nei at "ordet" blir stikkordet da.. Så si dette: hei, bob, arne så blir det link=hei, link=bob, link=arne U see? Tror det er sent på kvelden fordi jeg skjønte faktisk ikke den :-) Men fungerte den koden jeg ga deg så lenge du byttet litt på innholdet av href til slik du ville ha det? ;-)
Wackamole Skrevet 7. april 2008 Skrevet 7. april 2008 Jeg tror jeg ville lagt alle taggsene i en array (aner ikke hvordan ), også hentet dem ut... få se koden du har nå, kanskje jeg kan hjelpe deg med di linkene
Rasmus Skrevet 20. april 2008 Skrevet 20. april 2008 Jeg tror jeg ville lagt alle taggsene i en array (aner ikke hvordan ), også hentet dem ut... få se koden du har nå, kanskje jeg kan hjelpe deg med di linkene Bruk explode
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå