2017-06-12 9 views
0

Wenn ich einen String mit dem Wort Gesellschaft haben und ich wünsche nur ganze Wörter, wie jede, begegne ich ein Problem mit strpos() suchen, wie folgt:PHP strpos - Suche nur ganze Wörter

if (strpos($desc, $row['phrase']) !== false) 
{ 
    // action 
} 

wird dieser Skript TRUE zurück, weil Firma einen Teil enthält: jeden, die da nicht hilfreich ist das Skript nur ganze Worte erfassen muss.

Das Unternehmen arbeitet

nicht das Wort enthält: jede

aber

Gibt es jede Änderung

das Wort enthält: "irgendein". Wie kann ich eine strpos-Funktion bearbeiten, um nur ganze Wörter zu suchen, d. H. Nicht Teil von ihnen?

Danke.

+0

Hier klicken https://stackoverflow.com/questions/4325956/how-to-find-a-whole-word-in-a-string-in-php-without-accidental-matches – EstevaoLuis

+1

Wörter werden in der Regel durch Leerzeichen getrennt .... 'strpos ($ desc," ". $ row ['Satz']. "") ' – Andreas

+0

@ slevy1 Warum denkst du, dass Duplikat falsch ist. Es benutzt \ b, das ist das Wort – Andreas

Antwort

0

Versuchen Sie diese Regex.

https://regex101.com/r/Evd3iF/1

$re = '/\b[Aa]ny\b/'; 
$str = 'Company any any. Any, '; 

If(preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0)){ 
     //string contains word 
} 

// Print the entire match result 
var_dump($matches); 

Das Wort kann auf Muster mit

$pattern = "/\b[" . strtoupper(Substr($word,0,1)) . strtolower(Substr($word,0,1)) . "]" . Substr($word,1); 

Bitte beachten Sie, ich diese Antwort schrieb auf meinem Handy gemacht werden, so einen Fehler in dem obigen Muster

ich kann gemacht
Verwandte Themen