EneR: ersetzen

Hallo,
ICh möchte etwa aus den coordinaten ($coords) 100:101 100 in eine Variable ($x) speichern und 101 in eine zweite ($x).
Das geht nicht mit

$x = ereg_replace("***:","",$coords);
  $y = ereg_replace(":***","",$coords);

Gibt es dafür nicht eine andere möglichkeit?
natürlich sollte das mit z.B. auch 10:183 funktionieren.

MfG EneR

  1. Hallo,

    ICh möchte etwa aus den coordinaten ($coords) 100:101 100 in eine Variable ($x) speichern und 101 in eine zweite ($x).
    Gibt es dafür nicht eine andere möglichkeit?

    es gibt explode().

    Freundliche Grüße

    Vinzenz

  2. Hallo..
    Abgesehen davon, dass du garnicht sagst, wie und wo du das hier

    $x = ereg_replace("***:","",$coords);
      $y = ereg_replace(":***","",$coords);

    einsetzt, kann es so wohl auch nicht funktionieren. Nach dem ersten Ersetzen, kann er den Doppelpunkt nicht mehr finden, weil er schon mit $x ersetzt wurde.

  3. Hello,

    ICh möchte etwa aus den coordinaten ($coords) 100:101 100 in eine Variable ($x) speichern und 101 in eine zweite ($x).
    Das geht nicht mit

    $x = ereg_replace("***:","",$coords);
      $y = ereg_replace(":***","",$coords);

    list($x,$y) = each(explode(':',$coords));

    Nur mal so geraten, nicht überprüft...

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

    1. Hello,

      Hello,

      ICh möchte etwa aus den coordinaten ($coords) 100:101 100 in eine Variable ($x) speichern und 101 in eine zweite ($x).
      Das geht nicht mit

      $x = ereg_replace("***:","",$coords);
        $y = ereg_replace(":***","",$coords);

      list($x,$y) = each(explode(':',$coords));

      Nur mal so geraten, nicht überprüft...

      So, gelich mal überprüft und einen auf die Finger bekommen...

      Das each() ist hier überflüssig, weil Du ja nur die Werte haben willst und nicht die Indexe des gerade mit explode() erzeugten Arrays. Außerdem liefert es immer nur das erste Element zurück...

      Richtig wäre also

      list($x,$y) = explode(':',$coords);

      List ist ein Sprachkonstrukt. Die obige Anwweisung bedeutet also:

      überführe in die Variablen $x und $y (= zwei Stück) die Werte der ersten zwei Arraylemente von der rechten Seite.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

  4. Hi EneR,

    nicht besonders elegant, aber klappt:

    $coords = "100:101";
       $x      = substr("$coords", 0, 3);
       $y      = substr("$coords", 4, 3);

    Grüße & schönes WE, dicon

    1. Hello dicon,

      nicht besonders elegant, aber klappt:

      $coords = "100:101";
         $x      = substr("$coords", 0, 3);
         $y      = substr("$coords", 4, 3);

      Die Lösung ist so unvollständig und damit nutzlos.
      Wie lang die Ziffernketten sind, weiß EneR ja nicht.
      Also müsste er erst das Format prüfen, die Position des Doppelpunktes feststellen, und dann die Teilstrings übernehmen.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

  5. Vielen Dank Für die Zahlreichen Antworten!!!
    Funktioniert jetzt!!!

    EneR