• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

[Veraltet] PhP Prob. bitte Helfen

DeletedUser

Gast
Also ich hatte die Idee einen Generator für Namen zu machen also man gibt seinen Name ein und dann werden die Buchstaben in Alpha Beta Gamma und eben Zeichen die zu den Buchstaben passen umgewandelt...

Nightfighter hat mir dann eben sowas grob geproggt... er ersetzt auch aber gibt falsch aus... Er ist auch ratlos

Der Code:

PHP:
<html>
<head>
<title>New Name</title>
</head>
<body>
<?php
//Name => Variable
$name = $_POST["name"];
//Variable => Kleinbuchstaben
strtolower  ($name);
//normale buchstaben :
$normal = 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");
//Neue Buchstaben: 
$new = array("&alpha;" , "&beta;" , "&cent;" , "&delta;" , "&epsilon;" , "&fnof;" , "g" , "h" , "&iota;" , "j" , "&kappa;" , "i" , "m" , "	&eta;" , "&sigma;" , "p" , "q" , "&Gamma;" , "s" , "t" , "&upsilon;" , "&gamma;" , "&omega;" , "&yen;" , "&zeta;");
//Zeichen ersetzen und in Variable speichern :
$neuername = str_replace($normal, $new, $name);
$neuername = htmlspecialchars($neuername);
//Textausgabe :
echo $neuername;
//Over and Out :
?>
</body>
</html>

Ich habe eben alles als specialchars angegeben da sonst nur ?!xy>D=$!(? so komische Zeichen kommen is ja auch logisch ;)

Greez king...
 

DeletedUser

Gast
Es wäre sehr hilfreich ein paar Testergebnisse zu sehen ;-)
€: Warum eigentlich " &eta;" und nicht einfach "&eta;" ?
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Bei str_replace wird alles in der Reihenfolge des Arrays durchgejagt, d.h. "b" wird erst zu "&beta;" und dann zu "&b&eps&i&sigma;ta;i&sigma;&eta;;ta;", da PHP nach allen anderen zeichen des array sucht. Ein E ist auch in "&beta;" vorhanden, also wird das ersetzt durch "eta", das widerum hat ein T, das ersetzt wird usw. Wie man diesen dummen Effekt jetzt aushebelt fällt mir auf die Schnelle spontan nix ein.
€: Doch, es fällt mir ein. Ist doch einfach... Das Wort in einzelne Buchstaben zerlegen und diese dann ersetzen, am besten durch ein einziges array ( $arr["a"]="&alpha;"; $arr["b"]="&beta;"; usw. )

Grüße
 
Zuletzt bearbeitet von einem Moderator:

DeletedUser

Gast
Bei str_replace wird alles in der Reihenfolge des Arrays durchgejagt, d.h. "b" wird erst zu "&beta;" und dann zu "&b&eps&i&sigma;ta;i&sigma;&eta;;ta;", da PHP nach allen anderen zeichen des array sucht. Ein E ist auch in "&beta;" vorhanden, also wird das ersetzt durch "eta", das widerum hat ein T, das ersetzt wird usw. Wie man diesen dummen Effekt jetzt aushebelt fällt mir auf die Schnelle spontan nix ein.
€: Doch, es fällt mir ein. Ist doch einfach... Das Wort in einzelne Buchstaben zerlegen und diese dann ersetzen, am besten durch ein einziges array ( $arr["a"]="&alpha;"; $arr["b"]="&beta;"; usw. )

Grüße

Ich verstehe deinen Lösungsvorschlag nicht ganz =) aber sonst danke =)
 

DeletedUser

Gast
ich dachte an so was hier:

PHP:
$name = $_POST["name"];
strtolower  ($name); 
//array mit den buchstaben
$new=array();
$new["a"]="&alpha;";
$new["b"]="&beta;";
$new["c"]="&cent;";
//und so weiter...
$name_arr = str_split($name);
foreach ( $name_arr as $i){
  $letter=$new[$i];
  $new_name.=$letter;
}
echo $new_name;

str_repace kannst du ja aus oben besagten gründen nicht benutzen, also musst du dir was neues überlegen ;-)
 
Oben