Bertel Lund Hansen wrote:
> Johan Holst Nielsen skrev:
>
>> strpos er altså ikke sundt.
>
> Det lyder som om der er noget programmæssigt galt med den. Det er
> der ikke.
Jah, måske lidt forkert formulering. Men mener heller ikke det er korrekt.
>
>> F.eks. vil jeg gerne finde alle ordene "et" i en sætning... hvordan vil
>> du gøre det?
>
> strpos($text,' et ');
Hjælper intet, hvis der f.eks. er et komma, punktum, udråbstegn,
spørgsmåltegn, kolon, semikolon osv. efter tegnet.
> Hvis du også vil have dem med der indleder en sætning, må du
> supplere med strpos($text,'Et ');.
Det er bare en bøvlet måde at gøre det på. Og er efter min mening langt
fra godt at lære folk (selvfølgelig afhængig af situationen). Hvis det
er en sætning der skal matches så er der rigtig mange muligheder
" et "
"Et "
" et."
" et,"
" et!"
" et?"
" et:"
" et;"
Vil du så lave 8 strpos for hver? Faktisk (med mindre det blot er
boolean value man er ude efter - så kan man lave en strtolower eller
bruge stripos) - så skulle du også lave "Et?" og "Et!" osv. Lige
pludselig er det næsten hurtigere at læse hele bogen om grundlæggende
regular expressions end at forsøge at snyde sig udenom dem.
> Men nu skrev jeg altså også: Hvis man ikke har brug for styrken i
> regulære udtryk ...
>
> Jeg sagde ikke at man aldrig skulle bruge det.
Enig - alt afhænger af situation. Det så ud til Allan kunne bruge dit
script - hvilket er fint. Er blot bange for nogle kopierer det, uden at
tænke over "konsekvenserne" :)
--
Johan Holst Nielsen
Freelance PHP Developer -
http://phpgeek.dk