M.E.
Lt. Commander
- Registriert
- Jan. 2007
- Beiträge
- 1.923
Hallo zusammen,
Ich implementiere gerade eine Tagsuche mit PHP und habe Probleme damit Treffer richtig auszuwerten.
Ich vermute, dass es damit zusammenhängt, dass ich die Strings die ich vergleiche aus unterschiedlichen Quellen (txt-Datei und Übergabeparameter) erhalte, konnte den konkreten Grund aber leider noch nicht ausmachen.
Laut Spezifikation von strcasecmp kommt 0 heraus, wenn zwei Strings gleich sind (Case-Insensitive).
Leider ist das bei mir aber nicht der Fall, was ich mit folgender Zeile, die ich in der for-Schleife ergänzt habe ausprobiert habe:
Ich erhalte folgende Ergebnisse:
Woran kann das liegen?
Ich habe bereits versucht die TXT in verschiedenen Kodierungen abzuspeichern (UTF8 mit/ohne BOM, ANSI, ...), leider ohne Erfolg...
MfG
M.E.
Ich implementiere gerade eine Tagsuche mit PHP und habe Probleme damit Treffer richtig auszuwerten.
Ich vermute, dass es damit zusammenhängt, dass ich die Strings die ich vergleiche aus unterschiedlichen Quellen (txt-Datei und Übergabeparameter) erhalte, konnte den konkreten Grund aber leider noch nicht ausmachen.
PHP:
<?
# $search_keys ist Übergabeparameter aus der URL
$token = strtok($search_keys," ");
while($token)
{
#... ein paar for-schleifen
$tagarray = file(".../tags.txt"); #hier stehen die tags drinnen
for($k=0; $k<sizeof($tagarray); $k++)
{
if (strcasecmp($token, $tagarray[$k]) == 0){
echo "Hab was gefunden!";
}
}
#...
}
?>
Leider ist das bei mir aber nicht der Fall, was ich mit folgender Zeile, die ich in der for-Schleife ergänzt habe ausprobiert habe:
PHP:
echo $token." und ".$tagarray[$k]." => ".strcasecmp($token, $tagarray[$k])."<br>";
Ich erhalte folgende Ergebnisse:
Einfach statt == 0 auf == -2 umzusteigen geht nicht, da das ja auch bei "Blau und Draußen" herauskommt.Blau und Grau => -5
Blau und Blau => -2
Blau und Baum => 11
Blau und Vogel => -20
Blau und Vögel => -20
Blau und Sonne => -17
Blau und Draußen => -2
Blau und Ast => 1
Woran kann das liegen?
Ich habe bereits versucht die TXT in verschiedenen Kodierungen abzuspeichern (UTF8 mit/ohne BOM, ANSI, ...), leider ohne Erfolg...
MfG
M.E.