2016-09-30 4 views
-1

Ich habe eine Reihe von Wörtern/Wortgruppe, die ich in einer Zeichenfolge übereinstimmen möchte. Wenn in der Zeichenfolge möchte ich in eine Datenbanktabelle einfügen, aber es muss die gesamte Zeichenfolge oder den Ausdruck übereinstimmen. Zum Beispiel:PHP Match Array von Wörtern in String

$string = "This is a Sample sting of information"; 
$words = array('This is', 'Test', 'sample', 'information', 'sting of information'); 

Es wäre daher überein: Dies ist Probe Informationen Stachel Informationen

auch nicht beachtet werden.

Ich habe so weit gekommen, aber ich bin fest:

$string = "This is a Sample sting of information"; 
$words = array('This is', 'Test', 'sample', 'information', 'sting of information');   
foreach ($words as $word) { 
     if (strstr($string,$word) !== false) { 
      echo $word." - NO<br>"; 
     } 
     else { 
      echo $word." - YES<br>"; 
     } 
    } 
+0

Nach all den Tippfehlern Ich bin nicht sehr überrascht, dass es nicht übereinstimmt: information> ** informaion ** – CD001

+0

Ihr Code ist in Ordnung, Sie müssen nur ändern wie 'if (true) {true} else {false } 'in Ihrem Beispiel' if (strstr ($ string, $ wort)! == false) { echo $ wort. "- YES
"; } else { echo $ wort. "- NO
"; } ' – devpro

+0

'! == false' bedeutet TRUE nicht FALSE – devpro

Antwort

0

Versuchen Sie, diese

foreach ($words as $word) { 
if(stripos($string, $word) !== false) { 
    echo "Yes"."<br>"; 
}else{ 
    echo "no"; 
} 
} 
+0

Danke, seine nicht übereinstimmende Probe und seine Groß-und Kleinschreibung i denken. – user1315422

+0

@ user1315422 aktualisiert die Antwort mit stripos, es funktioniert, wie Sie beschrieben haben – Shrikant

+0

weiß nicht, wo ist OP jetzt – devpro

1

Ich glaube, Sie denken if (strstr($string,$word) !== false) { dies die falsche zurückkehren?

Nein, dies gibt TRUE zurück, wenn ein Schlüsselwort oder eine Wortgruppe gefunden wird.

Was brauchen Sie hier?

1 - Sie müssen nur Ihre Status als JA ändern, wo Sie NO verwenden.

2 - Ändern Sie Ihren Status als NEIN, wo Sie YES verwenden.

3 - Für die Groß- und Kleinschreibung Wert können Sie stristr()

Modifiziertes Beispiel verwenden:

<?php 
$string = "This is a Sample sting of information"; 
$words = array('This is', 'Test', 'sample', 'information', 'sting of informtaion');   

foreach ($words as $word) { 
    var_dump(stristr($string,$word) !== false); // this will help you to understand, what is happening here. 
    if (stristr($string,$word) !== false) { 
     echo $word." - YES<br>"; 
    } 
    else { 
     echo $word." - NO<br>"; 
    } 
} 

?> 

Und beachten Sie auch, dass, wie @ CD001 sagte in Kommentar Sie einen Tippfehler haben information != informtaion

Beachten Sie, dass eine case-sensitive-Funktion für Groß-/Kleinschreibung ist ive müssen Sie stristr();

+0

Danke, ich denke immer noch seine Groß-und Kleinschreibung obwohl als Beispiel nicht gefunden – user1315422

+0

@ user1315422 Benutzer aktualisiert, müssen Sie verwenden 'stristr' – devpro

+0

@ user1315422: Haben Sie die Lösung überprüft? – devpro