EmCee: $passox gibt immer "Array" zurück obwohl eigendlich zahl...

HI!
Ich habe folgenden code hier:
-------------
<?php
//PassString V is undual.
$passv = 3107363994953.1x3.9463522735905E+14x7.9242753653697E+17x1.006382971402E+20x9.1681488694718E+22;

//split to array: $passox by x:
      $passox = explode("x", $passv);

//testprint
    print"<br />PassString OX is:<br />$passox<br />";
?>
--------------
Die ausgabe, die erfolgt ist "Array" (ohne "-Zeichen)..

Woran kann das liegen?

  1. abend,

    //split to array: $passox by x:

    [...]

    Die ausgabe, die erfolgt ist "Array" (ohne "-Zeichen)..
    Woran kann das liegen?

    explode liefert einen array. so wie du es auch bereits
    in deinem kommentar geschrieben hast (s.o.)

    mfg,
    (tanz das)
    Z.N.S.

    --
    <img src="http://www.dmp-web.de/comunicout/neubauten.gif" border="0" alt="">
  2. Hallo  EmCee,

    Ich habe folgenden code hier:

    <?php
    //PassString V is undual.
    $passv = 3107363994953.1x3.9463522735905E+14x7.9242753653697E+17x1.006382971402E+20x9.1681488694718E+22;

    //split to array: $passox by x:
          $passox = explode("x", $passv);

    //testprint
        print"<br />PassString OX is:<br />$passox<br />";
    ?>

    Die ausgabe, die erfolgt ist "Array" (ohne "-Zeichen)..

    Woran kann das liegen?

    Das liegt ganz einfach daran, das die Funktion explode() deinen Angegebenen String an den angegebenen Positionen ("x") abtrennt und in ein Array zwischenspeichert, wobei der Index des Arrays bei 0 beginnt und bis zur Anzahl des letzten Elementes geht, in deinem Beispiel hier von 0 bis (einschliesslich)4.
    Ansprechen kannst du die Werte zur Ausgabe indem du das so schreibst:

    echo "1.Element:".$passox[0]."<br>";
    echo "2.Element:".$passox[1]."<br>";
    ...
    echo "5.Element:".$passox[4]."<br>";

    Falls aber die Anzahl der Elemente variiert, musst du das ganze dynamisch lösen, zb so:

    $AnzahlElemente = count($passox);
    for($n=0;$n<$AnzahlElemente;$n++)
      {
      echo $n. ". Element:".$passox[$n]."<br>";
      }

    Die Funktion Count() liefert dir die Menge der Indexe zurück, die in diesem Array gespeichert sind, darauffolgend sagst du einfach du machst eine Schleife, die sich solange wiederholt, solange der interne Zähler ($n) kleiner als die Menge der ausgelesenen Indexe ($AnzahlElemente) ist.

    Was ich nicht verstehe, sollte das nicht ein String sein ?

    $passv = 3107363994953.1x3.9463522735905E+14x7.9242753653697E+17x1.006382971402E+20x9.1681488694718E+22;

    Laut deiner Schreibweise interpretiert PHP den Wert als Zahl, das dürfte so nicht funktionieren.(Zumindest glaube ich das :) )

    Grüsse,
    Daniel

    1. Hi!
      Das sind einzelne zahlen, welche ich vorher mit php errechnet habe, diese habe ich nun mit X verbunden, und dann an einen anderen server geschickt. Dieser nimmt sie auf und teilt sie wieder (das was da jetzt gerade war), dann sollte er(macht er aber momentan leider nicht :( )diese wieder zurükrechnen, und dadurch einen befehl erhalten, welcher dann in einem string steht. Dieser befehl sollte dann mit eval() ausgeführt werden, um eine antwort zu erhalten, ob die gewünschte anfrage möglich ist. Und so weiter, und so weiter...

      Naja, und der datenverkehr findet halt unter dieser "pseudoverschlüsselung" statt...

      Mfg, EmCee

  3. hallo! :-)

    <?php
    $passv = 3107363994953.1x3.9463522735905E+14x7.9242753653697E+17x1.006382971402E+20x9.1681488694718E+22;
          $passox = explode("x", $passv);

    foreach ($passox as $value){ print"PassString OX is: $value<br />";}

    ?>

    du kannst dort auch direkt deine decode-funktion aufrufen:

    $decoded="";
    foreach ($passox as $value){ $decoded.=decode($value);}
    eval($decoded);

    freundl. grüsse aus berlin, raik