[php] komt een 1 ofmeer woorden voor in een string

Pagina: 1
Acties:

  • BramT
  • Registratie: Oktober 2001
  • Laatst online: 20:32
Hier ben ik weer.. ff een simpel (denk ik) probleempje; maar kom er weer 's niet uit (php rulez, maar met strings heb ik altijd ruzie).

ik wil weten (met een TRUE of FALSE) of een woord voorkomt in een string. Probleem is, hij moet op meerdere woorden checken. En lijkt me niet handig om voor ieder woord een apart commando te geven (zijn er nogal wat).

Dus bram probeert iets van:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?
$dezedoennietmee = "/[niet,rommel]/";

echo "de woorden NIET en ROMMEL moeten een TRUE geven...<br><br>";

$zin1 = "deze zin is dus goed";
$zin2 = "deze zin is dus niet goed"; //want bevat NIET

echo "$zin1<br>";
$komtvoor = strpos($zin1,$dezedoennietmee);
if ($komtvoor === true) $resultaat = "true"; else $resultaat = "goed!!!!";
echo "resultaat : $resultaat<br><br>";

echo "$zin2<br>";
$komtvoor = strpos($zin2,$dezedoennietmee);
if ($komtvoor === true) $resultaat = "true"; else $resultaat = "goed!!!!";
echo "resultaat : $resultaat<br><br>";
?>

resultaat is hier alleen altijd false (in de IF statement). krijg geen syntax error ofzo...

kan strpos() werken met die "/blabla/" dingen? hoe doe ik het anders?

alvast bedankt...

You are the all-dancing, all-singing crap of the world - Jack


  • RdeTuinman
  • Registratie: Mei 2001
  • Laatst online: 16-08 07:25
Wat dacht je van eregi
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
$dezedoennietmee = "(niet|rommel)";

echo "de woorden NIET en ROMMEL moeten een TRUE geven...<br><br>";

$zin1 = "deze zin is dus goed";
$zin2 = "deze zin is dus niet goed"; //want bevat NIET

echo "$zin1<br>";
if (eregi($dezedoennietmee,$zin1)) $resultaat = "Komt voor"; else $resultaat = "Komt niet voor!!!!";
echo "resultaat : $resultaat<br><br>";

echo "$zin2<br>";
if (eregi($dezedoennietmee,$zin2)) $resultaat = "Komt voor"; else $resultaat = "Komt niet voor!!!!";
echo "resultaat : $resultaat<br><br>";
?>

PS. Nu ziet ie ook 'nietmachine' als overeenkomst, maar dat is ook wel op te lossen door op spaties te controleren ;)

Verwijderd

ik zou nooit strpos gebruiken, maar strstr (aangezien als het getal wel voorkomt, maar op positie 0, dan geeft ie toch false terug).
code:
1
if(strstr($bericht, "NIET") || strstr($bericht, "ROMMEL")) echo "True";

Zoiets?

  • BramT
  • Registratie: Oktober 2001
  • Laatst online: 20:32
benankt mensen

gebruik nu de oplossing van de Tuinman...

thanks again

You are the all-dancing, all-singing crap of the world - Jack