fatmike182
Agnotologe
|
Hallo, ich glaub, das Problem liegt leider am charset oder so und nicht am regex, aber trotzdem: Es soll in ei Input was eingegeben werden & bei submit-Pressen dann ein ordner mit diesem Namen erstellt werden. Sonderzeichen sind dabei daher zu entfernen & Space durch Unterstrich. zu ersetzen (sowie Umlaute, ß durch Ae,Oe,Ue...sz) es liegt alles in 1 file: head <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
if submit-key exists (submit gedrückt) echo $_POST['newstitle']."<br />";
$allowed = "/[^a-z0-9\\-\\_]/i";
echo "<br />".preg_replace($allowed,"",$_POST['newstitle'])."<br />";
das funktioniert. Nur a-Z, 0-1 und -, _ zugelassen Daher möcht ich davor noch Umlaute & ß ersetzen: $replacethis = array('Ä', 'Ö', 'Ü', 'ä', 'ö', 'ü', 'ß', ' ');
$bythat = array('Ae', 'Oe', 'Ue', 'ae', 'oe', 'ue', 'sz', '_');
echo $foldertitle = str_replace($replacethis, $bythat, $_POST['newstitle']);
das funktioniert schon nicht mehr. " " wird durch "_" ersetzt, aber Umlaute,ß nicht. Wo hab ich was vergessen?
|
DirtyHarry
aka robobimbo
|
klingt vielleicht komisch, aber - ist das sourcefile auch in utf-8 abgespeichert?
|
fatmike182
Agnotologe
|
wo könnte das noch gesetzt werden außer beim meta? Lt Firefox page info: UTF-8
|
COLOSSUS
AdministratorGNUltra
|
Wieso machst du es nicht richtig und schoen, und nutzt die entsprechende Landessprachen-Locale und POSIX Character Classes in den RegEx? Ich nehme mal an, dass sogar PHP das kann Ah, OK - ich sehe grade, dass du die Umlaute ja filtern und ersetzen, nicht erlauben willst. Zu schnell gelesen. Bei HTTP zaehlt das Charset aus dem HTTP-Header. Dieser <HTML META>-Krempel ist afaik MAY/SHOULD, muss also nicht vom Client ausgewertet werden. Und das Sourcefile der PHP-Anwendung musst da nutauerlich auch in UTF-8 abspeichern, sonst werden deine literale niemals die eingehenden Daten matchen.
|
fatmike182
Agnotologe
|
mah, so ein Dreck. Ich hab keine Ahnung, wo ich das bei coda einstellen/umstellen kann... Hab Dreamweaver geöffnet, UTF-8 eingestellt, neues File geöffnet & eingepasted. Resultat: alles funktioniert. ein <?php header('Content-Type: text/html; charset=utf-8'); ?>
ganz am Anfang hat nix gebracht. Der Fehler war also scheinbar wirklich nur beim Abspeichern. Wie hätt ich das schneller lösen können?
|
Ringding
Pilot
|
Der Fehler war also scheinbar wirklich nur beim Abspeichern. Wie hätt ich das schneller lösen können? In dem du deinen Editor besser kennenlernst. Der Texteditor ist das wichtigste Werkzeug eines Entwicklers, da kann man schon ein bisschen Zeit investieren, um sich damit auseinanderzusetzen.
|
Ringding
Pilot
|
Wieso machst du es nicht richtig und schoen, und nutzt die entsprechende Landessprachen-Locale und POSIX Character Classes in den RegEx? Ich nehme mal an, dass sogar PHP das kann Also die Unicode-Unterstützung von PHP ist echt denkbar schlecht; ich fürchte also, dass deine Annahme nicht gerechtfertigt ist. In PHP 6 soll das allerdings kommen.
|