Pwned (27.12.2012)
Thema: [PHP] Umlaute parsen
-
27.12.2012, 17:21 #1
- Registriert seit
- 18.11.2011
- Beiträge
- 457
- Blog Entries
- 1
Thanked 296 Times in 94 Posts[PHP] Umlaute parsen
Ich bräuchte für ein Projekt von mir ein Script, das Umlaute eines Satzes in ae etc umwandelt, bevor diese in eine Datenbank geschrieben werden. Ich habe da schon etwas gebastelt, das allerdings nicht funktioniert.
Code:if($_GET['action'] == "add") { $question = htmlspecialchars(htmlentities(trim(mysql_real_escape_string($_GET['q'])))); $ip = $_SERVER['REMOTE_ADDR']; $answer = htmlspecialchars(htmlentities(trim(mysql_real_escape_string($_GET['a'])))); $umlaute = array("ä", "ü", "ö"); $insteadumlaute = array("ae", "ue", "oe"); $filteredanswer = str_replace($umlaute, $insteadumlaute, $answer); $filteredquestion = str_replace($umlaute, $insteadumlaute, $question); $sql = "INSERT INTO `questions` SET `question` = '$filteredquestion', `answer` = ' $filteredanswer', `ip` = '$ip'"; mysql_query($sql); }
Rumänien
Es sollte Rumänien heißen, replaced dann Rumaenien. Weiß einer warum?
-
27.12.2012, 17:28 #2
- Registriert seit
- 15.11.2011
- Beiträge
- 7.822
- Blog Entries
- 5
Thanked 9.355 Times in 3.195 PostsAW: Umlaute parsen
htmlentities wandelt alle Zeichen zu denen es einen HTML-Code gibt in ihre entsprechenden HTML-Codes um.
Du musst also entweder die entsprechenden HTML-Codes (SELFHTML: HTML/XHTML / Referenz /HTML-Zeichenreferenz) zum ersetzen nutzen oder einfach erst Ersetzen und dann htmlentities() aufrufen.
Btw: htmlspecialchars() brauchst du nicht zusätzlich wenn du htmlentities() nutzt.
htmlspecialchars() wandelt nur Sonderzeichen um, htmlentities() alle zu denen es einen HTML-Code gibt.
-
The Following User Says Thank You to DMW007 For This Useful Post:
-
27.12.2012, 19:25 #3
- Registriert seit
- 18.11.2011
- Beiträge
- 457
- Blog Entries
- 1
Thanked 296 Times in 94 PostsAW: Umlaute parsen
Wenn ich htmlentities() weglass, funktioniert das mit den Umlauten schon mal. Allerdings funktioniert das scharfe s nicht, dort wird noch ß ausgegeben. Gibt es was, das ich hier beachten muss? Über diverse Suchmaschinen habe ich keine Lösung gefunden.
-
27.12.2012, 19:32 #4
- Registriert seit
- 15.11.2011
- Beiträge
- 7.822
- Blog Entries
- 5
Thanked 9.355 Times in 3.195 PostsAW: Umlaute parsen
Codier mal den String
PHP-Code:$filteredanswer = utf8_encode($filteredanswer);
-
27.12.2012, 19:50 #5
- Registriert seit
- 18.11.2011
- Beiträge
- 457
- Blog Entries
- 1
Thanked 296 Times in 94 PostsAW: [PHP] Umlaute parsen
Funktioniert nicht, es wird ß ausgegeben. Ich dachte mir, das ß eventuell mit ss replacen, da es beim Knuddels-Quiz ja keine Rolle spielt, ob man ß oder ss schreibt. Schöner wäre es aber trotzdem mit ß
-
28.12.2012, 17:17 #6
- Registriert seit
- 15.11.2011
- Beiträge
- 7.822
- Blog Entries
- 5
Thanked 9.355 Times in 3.195 PostsAW: [PHP] Umlaute parsen
Ist dein Ausgabescript denn auch UTF8-Codiert gespeichert?
Kann man in praktisch jedem Texteditor irgendwo einstellen.
Notepad++ hat dafür zb einen eigenen Menüpunkt
Ich würde zudem die Kodierung immer auch im HTML-Dokument setzen
PHP-Code:<meta charset="utf-8" />
-
29.12.2012, 11:44 #7
- Registriert seit
- 17.12.2011
- Beiträge
- 143
Thanked 74 Times in 52 PostsAW: [PHP] Umlaute parsen
PHP-Code:function replace($string)
{
$_umlauts = array('ä', 'ö', 'ü');
$_replace_umlauts = array('ae', 'oe', 'ue');
$replaced = str_replace($_umlauts, $_replace_umlauts, $string);
print $replaced;
}
replace('ich hösse ängrybürds');
Ich würde es aber auch wie DMW lösen.Geändert von Integer (29.12.2012 um 11:51 Uhr)
Ähnliche Themen
-
VB.Net Json String richtig parsen???
Von soulreafer im Forum .NetAntworten: 1Letzter Beitrag: 06.07.2013, 17:15 -
vBulletin - Umlaute werden als ? dargestellt
Von Devon im Forum Web-ApplicationsAntworten: 4Letzter Beitrag: 03.02.2013, 13:41 -
Befehle "parsen"
Von Frankfurt am Main im Forum Knuddels AllgemeinAntworten: 2Letzter Beitrag: 22.10.2012, 15:32 -
:-Token (Module) parsen/schreiben
Von Brainy im Forum SourcecodeAntworten: 3Letzter Beitrag: 11.07.2012, 20:01
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.