Avatar billede jd Nybegynder
19. oktober 2000 - 22:07 Der er 9 kommentarer og
1 løsning

Find første punktum foran søgeord ?

Hejsa...

hvordan finder jeg det punktum der ligger tættes på, foran en pågældent ord i en streng?

Altså, en bruger skriver et søgeord, og med et query, henter alle indlæg i db\'en med dette ord i sig, hvorefter de skrives ud med en while-løkke. Men så skal jeg finde den (første) sætning hvor ordet findes i, og skrive den ud... altså, skal jeg have positionen for det punktum der ligger tættest på, foran søgeordet, i strengen $row[body] -hvordan?

/Jon@z
Avatar billede Brian Moos Lindberg Praktikant
20. oktober 2000 - 00:35 #1
Hmm... Læs dokumentationen igennem og find funktionen srtcspn.
- Nej, det er ikke nødvendigt, jeg har gjort det for dig:

$position = strcspn ($row[body], \".\")

Nu har du så længden af strengen frem til det første punktum - det skulle være det samme som positionen for det første punktum.

/Brian.
Avatar billede jd Nybegynder
20. oktober 2000 - 00:39 #2
Prøv du lige at læse spørgsmålet igennem!
Nu kender jeg ikke lige strcspn() men strpos() gør i hvert fald det du siger! Det er jo bare ikke det jeg spørger om!

/Jon@z
Avatar billede Brian Moos Lindberg Praktikant
20. oktober 2000 - 00:40 #3
...undskyld, men så forstår jeg ikke spørgsmålet. Kan du eventuelt lave et lille eksempel ?
Avatar billede jd Nybegynder
20. oktober 2000 - 00:49 #4
problemet er jo at jeg ikke bare skal finde det første punktum, men først finde ordet - hvilket der ikke er problemer i - hvorefter der skal findes det punktum der står tættest på ordet, foran, vel og mærket!

Hvis $row[body] nu indeholder dette:

Hej med dig, du lugter. Så du må hellere gå i bad. Bare et forslag.

-og man søger på \'gå\', så skal jeg have lavet en streng der ser sådan ud:

Så må du hellere gå i bad. Bar...

Altså 30 karakterer, startet der hvor sætningen med ordet er!

/Jon@z
Avatar billede jd Nybegynder
20. oktober 2000 - 00:51 #5
Altså 30 karakterer, startet der hvor sætningen med ordet starter!

-sådan skulle det have været! :O)
Avatar billede Brian Moos Lindberg Praktikant
20. oktober 2000 - 01:05 #6
ok, det gjorde det jo en smule mere kompliceret, men her er så en ny løsning:

$str1 = strcspn($row[body], \"gå\");
$pos = strrpos($str1, \".\");

så har du positionen af det sidste punktum før \"gå\". Er jeg igen helt galt i byen ?

/Brian.
Avatar billede jd Nybegynder
20. oktober 2000 - 14:49 #7
Nej, nu har du forstået det, men det fungerer ikke! $pos giver ikke noget output!
Det ville nu også undre mig hvis det var så let..

/Jon@z
Avatar billede jd Nybegynder
28. oktober 2000 - 16:58 #8
Er her ingen kloge hoveder der kan knække nøden?

/Jon@z
Avatar billede ulle_php Nybegynder
31. oktober 2000 - 08:53 #9
Det er nemt nok med kommandoen LIST();

Kontakt mig for mere info!
Avatar billede jd Nybegynder
03. november 2000 - 22:50 #10
øhh... hvad vil du med list() ?

Nå, jeg finder selv ud af noget...
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