Umwandlung eines Zeichenstrings macht Probleme ^^

Pho3nix

Mitglied
Hey, also ich hab momentan ein kleines Problem und weiß auch nicht wirklich weiter wie ich das Lösen kann.
Also ich hab bisher das hier:
Code:
$Zahlen = explode("-", $Eingabe);
      $a = 0;
    for($i = sizeof($Zahlen)-1; $i >= 0; $i--){
      $Rechnung = $Rechnung + ($Zahlen[$i] * pow(52,$a));
      $a++;
    }

Der code funktioniert so weit.Sprich wenn ich $Eingabe das => "1-1-1" übergeben wird, dann Rechnet der das auch in einen Zahlenstring.
Nur möchte ich jetzt genau das Umgekehrte haben. Ich gebe z.B. "12345" als Variable über und ich erhalte das dann als String.

Ich hab grad schon ziehmlich viel probiert mit Modulo und so weiter, aber nichts wirklich hat mir die gewünschte Ausgabe gegeben :(
Vllt liegts auch daran, dass ich mich grad auch überhaupt nicht mehr konzentrieren kann ^^, aber ich bekomms grad echt nicht geschissen -.-

Wäre nett wenn mir irgendwer eine Hilfestellung geben könnte, mit der ich weiterkomme.

MFG
Pho3niX
 
Versuch mal das:

PHP:
/**
 * Separiert die Zahlen in einem String durch einen Bindestrich und gibt das Ergebnis zurück
 * @example "12345" => "1-2-3-4-5"
 * @param string $digits Die zu separierenden Zahlen
 * @return string Die separierten Zahlen
 */
function separate_digits($digits)
{
  // Variable vorbereiten
  $separate = "";
  // Über alle Zahlen laufen
  for($i = 0; $i < strlen($digits); $i++)
  {
    // Wenn bereits Inhalt in $separate (ab dem zweiten Durchlauf), füge Bindestrich an
    if($separate) $separate .= '-';
    // Füge Zahl an
    $separate .= $digits[$i];
  }
  // Gebe Ergebnis zurück
  return $separate;
}

echo separate_digits("12345");
 
nee das ist noch nicht ganz was ich suche.
Also aus 1 wird 1.
und aus z.B. 53 soll 1-1 werden. und aus 105 soll z.B. 2-1 werden(ich hoffe ich hab grad auf die schnelle das richtig gerechnet :D)

Wie z.B. eine Hex umrechnung, nur das statt 16 eine 52 da ist ;) und das da nach jeder Zahl ein Bindestrich kommt...(Damit man nicht durcheinanderkommt, weil bei hex werden auch noch Buchstaben mit reingenommen ^^)
 
Was soll das werden, wenn es mal fertig ist? Möglicherweise hab ich nen andern Trick, statt das zurück zu rechnen. Weißt du wie Passwort-Hashes zum Authentifizieren verwendet werden? Ich vermute, du willst die eingegebenen Daten mit zuvor berechneten Werten vergleichen, stimmts?
 
nein. Das sollten keine Passworthashes werden^^ Das wird nachher ich einen Zahlenstring umgewandelt. Das alles soll mir nur etwas helfen die Übersicht zu behalten in der Datenbank.
Erst wird es von Buchstaben (von klein a - groß Z) Umgewandelt in diesen String(sprich 1-2 ist dann ab)
und dieses 1-2 wird dann umgewandelt in einen integer und dieser wird halt in der Datenbank hochgezählt.
Jetzt muss ich das alles aber noch einmal Rückwärts machen, damit ich eine Ausgabe liefern kann, die der User haben möchte. Ja ich weiß es ist etwas umständlich, aber ich wollte diesen kleinen zwischenschritt haben, um die Übersicht zu haben :D

Ich hoffe du verstehst was ich meine, die Adresse sollte halt möglichst kurz sein und das ist noch wirklich das letzte Stück was mir grade fehlt.
 
das müsste das gesuchte sein:
PHP:
$input = 2811;
$output = array();
for($i = 0; $input > 0; $i++) {
	$num = $input % 52;
	$output[] = $num;
	$input = ($input - $num) / 52;
}
$output = implode("-", array_reverse($output));
echo $output;

btw.
hier mal ne etwas vereinfachte version deines original codes:
PHP:
$Eingabe = '1-2-3';
$Rechnung = 0;

$Zahlen = explode("-", $Eingabe);
for($a = 0, $i = sizeof($Zahlen)-1; $i >= 0; $i--, $a++){
	$Rechnung = $Rechnung + ($Zahlen[$i] * pow(52,$a));
}
echo $Rechnung;
 
joo danke, war grad die ganze Zeit weg und eben kam mir grad ne Idee und die hat auch funktioniert ;)

Naja aufjedenfall fuktioniert alles. Jetzt muss ich nurnoch warten bis die Domain dafür da ist:)
 
Zurück