Andreas: Problem beim Zählen

Hi,
wer mein vorheriges Thema gelesen hat weiß ungefähr worum es geht. Ich trenne von einer Bild URL (http://www.domain.de/pics/0.jpg) das .jpg ab, zähle die Nummer um eins hoch und füge alles wieder zusammen. Jetzt habe ich nur folgendes Problem, dass die Arrays die ich verwende bei der Zahl 19 rumspinnen. Wenn ich die Zahl 19 habe und diese um eins hochzähle, erhalte ich die Nummer 110 anstatt 20. Weiß jemand woran das liegen könnte?

Gruss Andreas

  1. Hallo Andreas,

    wer mein vorheriges Thema gelesen hat weiß ungefähr worum es geht.

    Und warum machst Du nicht in Deinem vorigen Thema weiter? [pref:t=51593&m=283569]

    Jetzt habe ich nur folgendes Problem, dass die Arrays die ich verwende bei der Zahl 19 rumspinnen. Wenn ich die Zahl 19 habe und diese um eins hochzähle, erhalte ich die Nummer 110 anstatt 20. Weiß jemand woran das liegen könnte?

    Bei mir funktioniert das ganze anstandslos. Kann es sein, dass bei Dir nicht 19 sondern 109 in der URL steht, _bevor_ sie ersetzt wird?

    Viele Grüße,
    Christian

    1. Ich hab noch mal geschaut. Aber es steht in der URL wirklich 19 drin und nicht 109. Das ganze ist schon recht seltsam. Aber hier noch mal der bisherige Code. Hab es aber doch noch mit ereg gemacht.

      <?php
      $bildurl = $_GET['url'];

      ereg("^(.+)([0-9]+)(.jpg)$", $bildurl, $array1);
      $array1[2] = $array1[2]-1;
      $bildurl = $array1[1].$array1[2].$array1[3];

      if ($array1[2] < "0")
      echo "";
      else
      echo "<a href="?url=$bildurl" target="_self"><img src="../images/previous.gif" border="0" alt="Vorheriges Bild"</a>";
      ?>

      Also am Code an sich kann ich keinerlei Fehler entdecken.

      Gruss Andreas

      1. Hi,

        Ich hab noch mal geschaut. Aber es steht in der URL wirklich 19 drin und nicht 109. Das ganze ist schon recht seltsam. Aber hier noch mal der bisherige Code.
        ereg("^(.+)([0-9]+)(.jpg)$", $bildurl, $array1);

        Das führt bei http://www.domain.de/pics/19.jpg dazu, daß
        der erste geklammerte Ausdruck 'http://www.domain.de/pics/1' (so viele beliebige Zeichen wie möglich) enthält,
        der zweite enthält die 9, der dritte '.jpg'.

        Du mußt verhindern, daß die erste(n) Ziffer(n) zur ersten Klammer gerechnet werden.
        Z.b. indem Du dafür sorgst, daß der / das letzte Zeichen der ersten Klammer ist...

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Hi,
          und wie mache ich das am Besten, dass der / das letzte Zeichen der ersten Klammer ist? Ich steh glaub grad voll auf dem Schlauch.

          Danke im Voraus.

          Gruss Andreas

      2. Hallo Andreas,

        Hab es aber doch noch mit ereg gemacht.

        Warum?

        ereg("^(.+)([0-9]+)(.jpg)$", $bildurl, $array1);

        Du hast keinen einzigen Link gelesen, den ich Dir im anderen Thread gepostet habe. Sonst wüßtest Du, dass

        a) *nichts* für ereg spricht
        b) .+ zuviel frisst
        c) du den Quantifier mit einem nachgestellten Fragezeichen oder dem U-Modifier nicht so gierig machen kannst - allerdings nur bei preg

        Viele Grüße,
        Christian

        1. Hi,

          ereg("^(.+)([0-9]+)(.jpg)$", $bildurl, $array1);
          Du hast keinen einzigen Link gelesen, den ich Dir im anderen Thread gepostet habe. Sonst wüßtest Du, dass
          a) *nichts* für ereg spricht
          b) .+ zuviel frisst
          c) du den Quantifier mit einem nachgestellten Fragezeichen oder dem U-Modifier nicht so gierig machen kannst - allerdings nur bei preg

          d) einfach ein / oder ein [^0-9] ans Ende des ersten Klammerinhalts und es geht auch mit ereg...

          cu,
          Andreas

          --
          Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
          http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
          1. @MudGuard
            Danke. Klappt prima.

            Gruss Andreas

  2. Jetzt habe ich nur folgendes Problem, dass die Arrays die ich verwende bei der Zahl 19 rumspinnen. Wenn ich die Zahl 19 habe und diese um eins hochzähle, erhalte ich die Nummer 110 anstatt 20. Weiß jemand woran das liegen könnte?

    Rate mal mit Rosenthal.. Wie gedenkst Du soll jemand einen Fehler in Deinem Code finden, wenn Du Deinen Code zur Geheimsache erklärst?

    Gruß,
      soenk.e