Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Miksi strpos ei löydä ääkkösellisiä sanoja

riksu [15.05.2018 09:47:26]

#

Moikka!

Kun käytän strpos-funktiota ääkkösien kanssa ei tulostuu mitään.
Miten saan ääkköselliset sanat löytymään strpos:lla?

novari [15.05.2018 10:13:40]

#

Keskustelussa laita hakuun alla olevilla sanoilla, niin löytyy kattava opastus ongelmaan.

PHP: strpos ja ö-kirjain

riksu [15.05.2018 12:49:59]

#

Pelkään, että minulla on vähän erilainen ongelma, koska kirjaimet näkyy oikein tai en sitten osannut käyttää edellä mainittua tarkistusta.

strpos löytää tekstistä yksittäisiä kirjaimia, myös sanoja, mutta jos sana sisältää ääkkösiä tulostukseksi tulee false eli ei löydä paikkaa, mistä ääkkösillinen sana alkaa.
Mitä neuvoksi?

VNabokov [15.05.2018 14:10:24]

#

Niin, siis sinun pitää käyttää funktiota mb_strpos

Jos tulee ongelmia, niin postaa myös koodi mitä tähän mennessä olet tehnyt.

Grez [15.05.2018 14:53:10]

#

Kuten tuolla mainitussa vanhassa keskustelussakin todettiin, niin jos molemmat (hakusana ja teksti) ovat samassa merkistössä, niin strpos pitäisi myös löytää kaikki ö:t sun muut.

strpos:in ongelma muissa kuin "tavu per merkki" tyylisissä koodauksissa ei ole se etteikö se löytäisi jotain vaan se, että se kertoo alkupaikan tavuina eikä kirjamina. Eli siis jos UTF8 -koodatusta "Öljyä" -tekstistä etsitään "yä" -merkkijonoa, niin sen pitäisi kyllä löytyä mutta löytymiskohdaksi ilmoitettaisiin 5. tavu kun etsijä saattaisi haluta tietää että 4. merkki.

Eli siis ensimmäinen homma on varmistaa että molemmat (tai kaikki) tekstit on samalla koodauksella ja sen jälkeen jos tarvitsee tietää monennestako merkistä löytyy niin käyttää mb_strpos -funktiota strpos asemesta. (Toki mb_strpos voi käyttää joka tapauksessa)

Myöskään mb_strpos ei löydä tekstejä jos etsittävä ja etsitty ovat eri merkistössä. Eli jos halutaan löytää "ö" merkkijonosta "Pöllö" tai halutaan löytää "ö" merkkijonosta "Pöllö"

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta