Avatar billede leshrac Nybegynder
02. marts 2009 - 09:39 Der er 9 kommentarer og
1 løsning

Søger simpel funktion

Har lige ledt lidt på PHP.net, men er rimelig presset og skal bare bruge en funktion som kan finde ud af om der er en string i en string

eks.:

Jeg spiller håndbold dagen lang

Jeg skal finde ud af om ordet håndbold er i sætningen... uden at explode og løbe ordene igennem :)

Mvh
John
Avatar billede mstorgaard Praktikant
02. marts 2009 - 09:44 #1
if(preg_match('/håndbold/',$string)) {
  return true;
}
Avatar billede leshrac Nybegynder
02. marts 2009 - 09:51 #2
Har aldrig rigtig selv forstået at skrive preg_match... den er rimelig kompleks at sætte sig ind i synes jeg :)

Hvis jeg nu vil skrive flere stringe end håndbold... hvad gør jeg så?

Bare skriv næste comment som et reply :) så får du pts :D
Avatar billede psychopixi Nybegynder
02. marts 2009 - 09:52 #3
Mht. performance er det nok mere snedigt at benytte strpos (eller stripos, hvis det er ligegyldigt om der benyttes blokbogstaver eller små bogstaver):
<?php
$string = "Jeg spiller håndbold dagen lang";
$find = "håndbold";
if(strpos($string,$find) !=== false){
  echo "Strengen indeholder ordet '$find'";
}
?>
Avatar billede psychopixi Nybegynder
02. marts 2009 - 09:54 #4
Mht. til preg_match bruger den "regular expressions", hvilket betyder at du blot kan bruge: "/[håndbold|fodbold|skak]/"
Avatar billede leshrac Nybegynder
02. marts 2009 - 09:57 #5
Jamen performance er noget vi er glade for.. så kigger lige på strpos :)
Avatar billede tjaz Nybegynder
02. marts 2009 - 10:01 #6
Hvis bare du skal finde ud af om det findes i sætningen kan du også bruge strstr
Avatar billede psychopixi Nybegynder
02. marts 2009 - 10:07 #7
#6
strpos er efter mine erfaringer hurtigere end strstr.
Jeg vil tro at grunden til dette er at strstr retunerer en streng (den retunerer hele strengen du søger i, inklusiv det du søger efter), hvor strpos kun retunerer en integerisk værdi.
Avatar billede psychopixi Nybegynder
02. marts 2009 - 10:08 #8
#6
Faktisk står der på php.net:
"If you only want to determine if a particular needle  occurs within haystack , use the faster and less memory intensive function strpos() instead."
Avatar billede leshrac Nybegynder
02. marts 2009 - 10:19 #9
Det er også dit eksempel jeg har brugt psychopixi...

Hvis du lige smider et svar vil det være fint :)
Avatar billede psychopixi Nybegynder
02. marts 2009 - 10:28 #10
Hermed svar:)
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