Mac Umlaute Formularauswertung
Frank
- php
Hallo zusammen,
leider habe ich im Archive keine entsprechenden Postings gefunden. Darum hier meine Frage an Euch.
Über ein Formular kann ein Besucher meiner Seite einen Suchbegriff eingeben. Er sucht dann in einem ASCII-File nach dem passenden String/Wort. Die Suche wird über nachstehendes PHP-Script bewerkstelligt. Doch leider werden bei MAC-Usern (Browser-unabhängig) keine Treffer angezeigt, sobald Sie Wörter mit Umlauten suchen!
Woran kann das liegen? Wie könnte das behoben werden?
Hier das Formular:
<form action="suche.php" method="post" target="_self">
<input size="20" name="query">
<input type="submit" name="submit" value="SUCHE">
</form>
Hier einige Zeilen aus dem ASCII-File aus dem gesucht wird:
<a href="i0000060.php"> | Suchbegriffa |</a> (Kommentar)<br>
<a href="i0000060.php"> | Suchbegriffb |</a> (Kommentar)<br>
<a href="i0000060.php"> | Suchbegriffc |</a> (Kommentar)<br>
<a href="p0000160.php"> | Suchbegriffd |</a> (Kommentar)<br>
Hier das PHP Script, das die Suche durchfürht:
<?php
// open file
$file = file('./ASCII-file.txt');
// loop thought file
foreach ($file as $line)
{
// exec if found
if ((stristr($line,$query)) == true)
{
// use pipe separator to expolde each line
$tab = explode("|",$line);
// mark query bold
$tab_1 = preg_replace("/((<[^>]*)|$query)/ie",'"\2"=="\1"?"\1":"<b>\1</b>"', $tab[1]);
// show line without pipe
$string = "$tab[0]"."$tab_1"."$tab[2]";
echo $string;
}
}
?>
Ich hoffe meine Frage ist verständlich!
gruß und danke
Frank
Moin!
Über ein Formular kann ein Besucher meiner Seite einen Suchbegriff eingeben. Er sucht dann in einem ASCII-File nach dem passenden String/Wort. Die Suche wird über nachstehendes PHP-Script bewerkstelligt. Doch leider werden bei MAC-Usern (Browser-unabhängig) keine Treffer angezeigt, sobald Sie Wörter mit Umlauten suchen!
Dann wird dir wohl der Mac-Browser standardmäßig eine andere Zeichencodierung senden, als du es erwartest.
Woran kann das liegen? Wie könnte das behoben werden?
Sorge für eindeutige und einheitliche Zeichencodierungen.
Schritt 1: Suche dir aus der Fülle möglicher Werte einen einzigen aus. Typisch wäre beispielsweise "ISO-8859-1", "ISO-8859-15" oder "UTF-8".
Schritt 2: Sorge dafür, durch Serverkonfiguration und Meta-Tags, dass der Browser in jedem Fall über deine Wahl informiert wird.
Schritt 3: Sorge durch Angabe des accept-charset-Attributs im <form> auch dafür, dass diese Wahl ebenfalls beim Zurücksenden von Daten benutzt wird.
Schritt 4: Logischerweise muß deine Suchindexdatei dann dieselbe Codierung auch verwenden.
Moin!
...
- Sven Rautenberg
Hallo Sven,
vielen Dank für das 'How to'. Ich hoffe ich kann das auch so umsetzten.
Darf ich nochmal nachfragen, wenn es nicht so klappt wie ich will?
Gruß Frank :-)
Moin!
Darf ich nochmal nachfragen, wenn es nicht so klappt wie ich will?
Natürlich darfst du nachfragen - solange bis es klappt, du es verstanden hast, oder sich jemand zu genervt fühlt. :)
Und wenn du Bonuspunkte sammeln willst, dann fragst du direkt hier in DIESEM Thread nach, sofern er dann noch nicht ins Archiv gewandert ist.