Sonderzeichen in PHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angezeigt bekommen
array
code
datei
definition
ehrgeiz
exemplarischer code
format
gegebenen string
http
massig probleme
nachfolgender code
output
post
problem
sonderzeichen
tag
text
verschiedene zeichen
zeichen
-
Ihr kennt doch den tag/sonderzeichen">sonderzeichenersteller http://www.messletters.com/
Nun hat mich der Ehrgeiz gepackt und wollte auch sowas schreiben, in PHP statt Java aber.
nur werden die Sonderzeichen nicht richtig dargestellt...
Seht her:
<head> <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"> </head> <br><br><center><form method=\"post\"> Text, der Umgewandelt werden soll <br><br> <input type=\"text\" size=\"50\" name=\"text\"><br><br> <input type=\"submit\" value=\"umwandeln\"> </form> <? $text1 = $_POST[\'text\']; $muha0 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ!?*<>.,=+-()\"; $muha1 = \"abcdefghijklmnopqrstuvwxyz!?*<>.,=+-()\"; $muha2 = \"αв¢∂єƒgнιנкℓмησρqяѕтυνωχуz!؟●«».,=+-()\"; $muha3 = \"48(d3f9h!jk1mn0pqr57uvwxy2!?*<>.,=+-()\"; $muha4 = \"ÁßČĎĔŦĞĤĨĴĶĹМŃŐРQŔŚŤÚVŴЖŶŹ!؟●«».,=+-()\"; $muha5 = \"ค๒ς๔єŦﻮђเןкl๓ภ๏קợדֳtֲשּץאz!؟●«».,=+-()\"; $muha6 = \"äbċdëfġhïjklmnöpqrstüvwxÿż!?*<>.,=+-()\"; $muha7 = \"ábćdéfghíjklmńőpqŕśtúvwxýź!?*<>.,=+-()\"; $muha8 = \"ΛBᄃDΣFGΉIJΚᄂMֿӨPQƧƬײVXΥZ!?*◁▷.,=+-()\"; $muha9 = \"ム乃cd乇キgんノフズレᄊ刀oアq尺丂イu√wメリ乙!?*<>.,=+-()\"; $muha10 = \"ⓐⓑ©ⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ!?⊛<>๏,⊜⊕⊝()\"; $zeich0 = str_split($muha0); $zeich1 = str_split($muha1); $zeich2 = str_split($muha2); $zeich3 = str_split($muha3); $zeich4 = str_split($muha4); $zeich5 = str_split($muha5); $zeich6 = str_split($muha6); $zeich7 = str_split($muha7); $zeich8 = str_split($muha8); $zeich9 = str_split($muha9); $zeich10 = str_split($muha10); $text = str_replace($zeich0, $zeich1, $text1); $text2 = str_replace($zeich1, $zeich2, $text); $text3 = str_replace($zeich1, $zeich3, $text); $text4 = str_replace($zeich1, $zeich4, $text); $text5 = str_replace($zeich1, $zeich5, $text); $text6 = str_replace($zeich1, $zeich6, $text); $text7 = str_replace($zeich1, $zeich7, $text); $text8 = str_replace($zeich1, $zeich8, $text); $text9 = str_replace($zeich1, $zeich9, $text); $text10 = str_replace($zeich1, $zeich10, $text); ?> <br> <br><input CLASS=\'stdwidth\' type=\"text\" size=\"50\" value=\"<? echo $text2; ?>\"><br> <br><input CLASS=\'stdwidth\' type=\"text\" size=\"50\" value=\"<? echo $text3; ?>\"><br> <br><input CLASS=\'stdwidth\' type=\"text\" size=\"50\" value=\"<? echo $text4; ?>\"><br> <br><input CLASS=\'stdwidth\' type=\"text\" size=\"50\" value=\"<? echo $text5; ?>\"><br> <br><input CLASS=\'stdwidth\' type=\"text\" size=\"50\" value=\"<? echo $text6; ?>\"><br> <br><input CLASS=\'stdwidth\' type=\"text\" size=\"50\" value=\"<? echo $text7; ?>\"><br> <br><input CLASS=\'stdwidth\' type=\"text\" size=\"50\" value=\"<? echo $text8; ?>\"><br> <br><input CLASS=\'stdwidth\' type=\"text\" size=\"50\" value=\"<? echo $text9; ?>\"><br> <br><input CLASS=\'stdwidth\'type=\"text\" size=\"50\" value=\"<? echo $text10; ?>\"><br> <br>
Weiß wer woran das liegt?
Edit: ich seh grad dass die sonderzeichen hier auch nicht angezeigt werden... lol^^
hier die txt zum download: http://cbn-clan.at/much/new/umwandler.txt
Beitrag geändert: 28.2.2008 1:48:17 von bluekingmuch -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
das problem ist eigentlich ganz klar.
die sonderzeichen, die du gerne angezeigt bekommen möchtest, müssen ja kodiert dargestellt werden, also über &#..; das sind aber dann jeweils mehrere zeichen, die ein sonderzeichen repräsentieren. die funktion str_split() erzeugt aus einem gegebenen string ein array, jedes zeichen wird ein eintrag. somit hast du anstatt wir gewünscht (...,\"&#..;\",...) dann (...,\"&\",\"#\",..,\";\",...). deshalb werden deine zeichen nicht richtig angezeigt, weil du die zeichencodes auseinandertrennst.
mache doch anstatt erst einen string und daraus dann ein array, gleich ein array mit den einträgen. das sollte dein problem beheben.
btw, nach deinem head-tag fehlt noch der body-tag ;)
-
Hier mal ein exemplarischer Code. Das einfache erstellen der Arrays an Hand deiner Zeichenketten hätte nicht ausgereicht, da noch verschiedene Zeichen enthalten waren, die auch über den Zeichencode kodiert werden müssen.
Nachfolgender Code getestet und funktionsfähig ;)
<?php /* get post data */ if ($_SERVER[\'REQUEST_METHOD\'] == \'POST\') $text1 = $_POST[\'text\']; if (isset($text1) && trim($text1) != \'\') { /* definition of charsets */ $zeich0 = array( \"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\", \"N\", \"O\", \"P\", \"Q\", \"R\", \"S\", \"T\", \"U\", \"V\", \"W\", \"X\", \"Y\", \"Z\", \"!\", \"?\", \"*\", \"<\", \">\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich1 = array( \"a\", \"b\", \"c\", \"d\", \"e\", \"f\", \"g\", \"h\", \"i\", \"j\", \"k\", \"l\", \"m\", \"n\", \"o\", \"p\", \"q\", \"r\", \"s\", \"t\", \"u\", \"v\", \"w\", \"x\", \"y\", \"z\", \"!\", \"?\", \"*\", \"<\", \">\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich2 = array( \"α\", \"в\", \"¢\", \"∂\", \"є\", \"ƒ\", \"g\", \"н\", \"ι\", \"נ\", \"к\", \"ℓ\", \"м\", \"η\", \"σ\", \"ρ\", \"q\", \"я\", \"ѕ\", \"т\", \"υ\", \"ν\", \"ω\", \"χ\", \"у\", \"z\", \"!\", \"؟\", \"●\", \"«\", \"»\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich3 = array( \"4\", \"8\", \"(\", \"d\", \"3\", \"f\", \"9\", \"h\", \"!\", \"t\", \"k\", \"1\", \"m\", \"n\", \"0\", \"p:\", \"q\", \"r\", \"5\", \"7\", \"u\", \"v\", \"w\", \"x\", \"y\", \"2\", \"!\", \"5\", \"*\", \"<\", \">\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich4 = array( \"Á\", \"ß\", \"Č\", \"Ď\", \"Ĕ\", \"Ŧ\", \"Ğ\", \"Ĥ\", \"Ĩ\", \"Ĵ\", \"Ķ\", \"Ĺ\", \"М\", \"Ń\", \"Ő\", \"Р\", \"Q\", \"Ŕ\", \"Ś\", \"Ť\", \"Ú\", \"V\", \"Ŵ\", \"Ж\", \"Ŷ\", \"Ź\", \"!\", \"؟\", \"●\", \"«\", \"»\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich5 = array( \"ค\", \"๒\", \"ς\", \"๔\", \"є\", \"Ŧ\", \"ﻮ\", \"ђ\", \"เ\", \"ן\", \"к\", \"l\", \"๓\", \"ภ\", \"๏\", \"ק\", \"ợ\", \"ד\", \"ֳ\", \"t\", \"ֲ\", \"ש\", \"ּ\", \"ץ\", \"א\", \"z\", \"!\", \"؟\", \"●\", \"«\", \"»\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich6 = array( \"ä\", \"b\", \"ċ\", \"d\", \"ë\", \"f\", \"ġ\", \"h\", \"ï\", \"j\", \"k\", \"l\", \"m\", \"n\", \"ö\", \"p\", \"q\", \"r\", \"s\", \"t\", \"ü\", \"v\", \"w\", \"x\", \"ÿ\", \"ż\", \"!\", \"?\", \"*\", \"<\", \">\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich7 = array( \"á\", \"b\", \"ć\", \"d\", \"é\", \"f\", \"g\", \"h\", \"í\", \"j\", \"k\", \"l\", \"m\", \"ń\", \"ő\", \"p\", \"q\", \"ŕ\", \"ś\", \"u\", \"ú\", \"v\", \"w\", \"x\", \"ý\", \"ź\", \"!\", \"?\", \"*\", \"<\", \">\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich8 = array( \"Λ\", \"B\", \"ᄃ\", \"D\", \"Σ\", \"F\", \"G\", \"Ή\", \"H\", \"I\", \"Κ\", \"ᄂ\", \"L\", \"ֿ\", \"Ө\", \"O\", \"P\", \"\", \"Ƨ\", \"Ƭ\", \"ײ\", \"U\", \"\", \"W\", \"Υ\", \"Y\", \"!\", \"?\", \"*\", \"◁\", \"▷\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich9 = array( \"ム\", \"乃\", \"c\", \"d\", \"乇\", \"キ\", \"g\", \"ん\", \"ノ\", \"フ\", \"ズ\", \"レ\", \"ᄊ\", \"刀\", \"o\", \"ア\", \"q\", \"尺\", \"丂\", \"イ\", \"u\", \"√\", \"w\", \"メ\", \"リ\", \"乙\", \"!\", \"?\", \"*\", \"<\", \">\", \".\", \",\", \"=\", \"+\", \"-\", \"(\", \")\" ); $zeich10 = array( \"ⓐ\", \"ⓑ\", \"ⓒ\", \"ⓓ\", \"ⓔ\", \"ⓕ\", \"ⓖ\", \"ⓗ\", \"ⓘ\", \"ⓙ\", \"ⓚ\", \"ⓛ\", \"ⓜ\", \"ⓝ\", \"ⓞ\", \"ⓟ\", \"ⓠ\", \"ⓡ\", \"ⓢ\", \"ⓣ\", \"ⓤ\", \"ⓥ\", \"ⓦ\", \"ⓧ\", \"ⓨ\", \"ⓩ\", \"!\", \"?\", \"⊛\", \"<\", \">\", \"๏\", \",\", \"⊜\", \"⊕\", \"⊝\", \"(\", \")\" ); /* random charset - composition of the other ones */ $zeich11 = array(); for ($i = 0; $i < count($zeich0); $i++) { $x = rand(0, 10); eval(\"\\$zeich11[\\$i] = \\$zeich\".$x.\"[\\$i];\"); } /* create text versions */ $text = str_replace($zeich0, $zeich1, $text1); for ($i = 2; $i <= 11; $i++) eval(\"\\$text\".$i.\" = str_replace(\\$zeich1, \\$zeich\".$i.\", \\$text);\"); } ?> <html> <head> <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\"> <title>So klappt\'s :-)</title> </head> <body> <center> <form method=\"POST\"> <p>Text, der umgewandelt werden soll:</p> <input type=\"text\" size=\"50\" name=\"text\" value=\"<?php if (isset($text1) && trim($text1) != \'\') { echo $text1; } ?>\" /> <br/> <input type=\"submit\" value=\"Umwandeln\" /> </form> <?php /* output */ if (isset($text1) && trim($text1) != \'\') for ($i = 2; $i <= 11; $i++) { ?> <p><input type=\"text\" size=\"50\" value=\"<?php eval(\"echo \\$text\".$i.\";\"); ?>\" /></p> <?php } ?> </center> </body> </html>
Beitrag geändert: 28.2.2008 7:03:41 von pjhimself -
Liegt deine Quelldatei überhaupt im UTF-8 Format vor? Denn PHP hat massig Probleme damit eine Datei die zb. im ISO Format erstellt wurde als UTF auszugeben.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage