Zoeken in string

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Sander

Sander

19/12/2005 13:20:00
Quote Anchor link
Is er een functie om te zoeken in een string naar een voorwaarde, en die zo werkt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
if(!functie($waarde, '.')) {

//Ga door.

}else{

//Error waarde zit erin!

}
?>


de functie strpbrk geeft namelijk een error

(Fatal error: Call to undefined function: strpbrk() in /adres/ on line 75)
omdat die de positie terug geeft!
 
PHP hulp

PHP hulp

24/11/2024 14:13:33
 
Jan Koehoorn

Jan Koehoorn

19/12/2005 13:24:00
Quote Anchor link
strpos toch?

en dan gewoon:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
  if (strpos ($string, '.')) {
    // waarde zit er in
  }
  else {
    // waarde zit er niet in
  }
?>
Gewijzigd op 19/12/2005 13:26:00 door Jan Koehoorn
 
Sander

Sander

19/12/2005 13:27:00
Quote Anchor link
Dit geeft de positie aan, ik moet juist alleen hebben dat die true or false terug geeft!
 
Willem vp

Willem vp

19/12/2005 13:34:00
Quote Anchor link
Ja, en? Wat is het probleem? Als de waarde er niet in zit krijg je FALSE, als 'ie er wel in zit krijg je een waarde (dus TRUE).

EDIT: Afgaande op de door jou gegeven foutmelding lijkt het probleem me overigens niet dat strpbrk() een positie teruggeeft (in principe is elke niet-FALSE waarde TRUE) maar meer dat je PHP4 gebruikt, en die heeft de functie strpbrk() nog niet.
Gewijzigd op 19/12/2005 13:38:00 door Willem vp
 
- SanThe -

- SanThe -

19/12/2005 13:35:00
Quote Anchor link
strstr

(PHP 3, PHP 4 , PHP 5)
strstr -- Vindt eerste voorkomen van een string
Beschrijving
string strstr ( string haystack, string needle)

Geeft alles van haystack van het eerste voorkomen van needle tot het einde.

Als needle niet gevonden wordt, retourneert deze functie FALSE.

Als needle geen string is, wordt deze geconverteerd naar een integer en toegepast als de ordinale waarde van dat karakter.

Opmerking: Onthoud dat deze functie hoofdletter-gevoelig is. Voor niet hoofdletter-gevoelige toepassingsdoeleinden kan je stristr() gebruiken.
 
Jan Koehoorn

Jan Koehoorn

19/12/2005 13:49:00
Quote Anchor link
@ Willem: ik denk dat SanThe's oplossing beter is, want strpos kan ook 0 retourneren als needle op positie 0 van haystack gevonden wordt.
 
Willem vp

Willem vp

19/12/2005 14:42:00
Quote Anchor link
@Jan;

Kwestie van goed programmeren ;-)

if (strpos ("dinges","dinges") !== FALSE)
{
# gevonden
}
 
Eric Cartman

Eric Cartman

19/12/2005 15:57:00
Quote Anchor link
if (strpos('dinges', 'dinges') == TRUE) {
# gevonden
}

Dat lijkt me beter...
 
Jelmer -

Jelmer -

19/12/2005 16:26:00
Quote Anchor link
@Jip: Wat als de string nu al op punt 0 zit? Dan geeft strpos 0 terug, en 0 staat zo ongeveer gelijk aan FALSE. Dus dan zou een 3 dubbele = wel degelijk van toepassing zijn.

(Niet uitgestest overigens, puur geredeneerd vanuit de tekst van PHP.net)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.