Anzahl der Variablen sind begrenzt?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anzahl der Variablen sind begrenzt?

    Hallo Zusammen,

    für ein Projekt habe ich mal ein Test-Script erstellt.
    Aus einer "daten_01.txt" werden aus 12 Zeilen jeweils 32 Zeichen ausgelesen.
    (das Auslesen funktioniert gut)

    Die 32 Zeichen werden dann an "function calendar (..)" übergeben und zur Test
    jeweils das Letzte Zeichen pro Zeile über ein "echo" befehl ausgegeben.
    (und hier beginnt mein Problem)

    Das ganze Script funktioniert NUR wenn ich nur 31 Zeichen pro Zeile auslese.
    Ergänze ich auf 32 Zeichen, d.h ich lese nun 32 Zeichen aus und versuche
    an "fuction calendar(..)" zu übergeben dann funktioniert mein Script nicht mehr.


    So sieht mein txt Datei aus.

    **************************** daten_01.txt**************

    1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 1 1 1 2 2 2 2 2 1 1 1 2 2 1 A
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 B
    1 1 1 1 2 1 1 1 2 1 1 1 2 2 2 2 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 C
    2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 1 1 2 1 2 1 2 1 2 2 2 2 2 1 D
    1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 1 1 1 2 2 2 2 2 1 1 1 2 2 2 E
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 F
    1 1 1 1 2 1 1 1 2 1 1 1 2 2 2 2 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 G
    2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 1 1 2 1 2 1 2 1 2 2 2 2 2 1 H
    1 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 1 1 1 2 2 2 2 2 1 1 1 2 2 2 I
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 J
    1 1 1 1 2 1 1 1 2 1 1 1 2 2 2 2 1 1 1 1 1 2 1 1 1 2 1 1 1 1 1 K
    2 2 2 2 2 1 1 1 1 1 1 1 2 2 2 2 2 1 1 2 1 2 1 2 1 2 2 2 2 2 1 L

    **********************************************************
    und so ist mein Test-Script, hier mit 32 Zeichen auslesen pro Zeile, so wie sie nicht
    funktioniert.

    <html>
    <head>

    <title>Jahresüberblick</title>


    <?php

    function calendar($b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$b10,$b11,$b12,$b13,$b14,$b15,$b16,$b17,$b18,$b19,$b20, $b21,
    $b22,$b23,$b24,$b25,$b26,$b27,$b28,$b29,$b30,$b31,$b32)


    {

    $b_[1]=$b1;
    $b_[2]=$b2;
    $b_[3]=$b3;
    $b_[4]=$b4;
    $b_[5]=$b5;
    $b_[6]=$b6;
    $b_[7]=$b7;
    $b_[8]=$b8;
    $b_[9]=$b9;
    $b_[10]=$b10;
    $b_[11]=$b11;
    $b_[12]=$b12;
    $b_[13]=$b13;
    $b_[14]=$b14;
    $b_[15]=$b15;
    $b_[16]=$b16;
    $b_[17]=$b17;
    $b_[18]=$b18;
    $b_[19]=$b19;
    $b_[20]=$b20;
    $b_[21]=$b21;
    $b_[22]=$b22;
    $b_[23]=$b23;
    $b_[24]=$b24;
    $b_[25]=$b25;
    $b_[26]=$b26;
    $b_[27]=$b27;
    $b_[28]=$b28;
    $b_[29]=$b29;
    $b_[30]=$b30;
    $b_[31]=$b31;
    $b_[32]=$b32;


    echo $b_[31];
    }

    ?>

    </head>


    <body>




    <?php


    /**
    * @author Medion
    * @copyright 2007
    */

    $fp = fopen("daten_01.txt","r");

    while (!feof($fp)){

    $text = fgets($fp,500);
    $array = explode(" ",$text);


    $d1=$array[0];
    $d2=$array[1];
    $d3=$array[2];
    $d4=$array[3];
    $d5=$array[4];
    $d6=$array[5];
    $d7=$array[6];
    $d8=$array[7];
    $d9=$array[8];
    $d10=$array[9];
    $d11=$array[10];
    $d12=$array[11];
    $d13=$array[12];
    $d14=$array[13];
    $d15=$array[14];
    $d16=$array[15];
    $d17=$array[16];
    $d18=$array[17];
    $d19=$array[18];
    $d20=$array[19];
    $d21=$array[20];
    $d22=$array[21];
    $d23=$array[22];
    $d24=$array[23];
    $d25=$array[24];
    $d26=$array[25];
    $d27=$array[26];
    $d28=$array[27];
    $d29=$array[28];
    $d30=$array[29];
    $d31=$array[30];
    $d32=$array[31];


    calendar($d1,$d2,$d3,$d4,$d5,$d6,$d7,$d8,$d9,$d10,$d11,$d12,$d13,$d14,$d15,$d16,$d17,$d18,$d19,$d20, $d21,$d22,$d23,$d24,$d25,$d26,$d27,$d28,$d29,$d30,$d31,$d32);

    }

    fclose($fp);

    ?>

    </body>
    </html>
    Danke und Grüße

  • #2
    Was du da machst ist Quatsch. Warum lässt du die Zeilen nicht in einem Array wie es sein soll und übergibst dieses an die Funktion?
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Comment


    • #3
      Hallo,

      da hast Du wahrscheinlich Recht.
      Möglicherweise wäre das Problem viel einfacher zu lösen. Hier muss ich noch üben..(wie man sieht, bin ein Anfänger)
      Du meinst etwa so?

      [color=blue]function xy (Array[0], Array[1], Array[2],...etc.)[/color]

      Aber auch so müsste funktionieren. Frage ist, wieso geht es bis 31 Zeichen und bei Ergänzung auf 32 steigts aus.
      Das kann ich mir nicht erklären.
      Wenn ich 32 Zeichen auslesen könnte, wäre schon eine riesige Hilfe für mich.
      Danke und Grüße

      Comment


      • #4
        Was tontechniker meint ist das hier:
        PHP Code:
        <html>
        <head>

        <title>Jahresüberblick</title>

        <?php
        function calendar($array)
        {
              echo 
        $array[31];
        }
        ?>

        </head>
        <body>

        <?php
        /**
        * @author Medion
        * @copyright 2007
        */

        $fp fopen("daten_01.txt","r");

        while (!
        feof($fp))
        {
            
        $text fgets($fp,500);
            
        $array explode(" ",$text);

            
        calendar($array);
        }

        fclose($fp);
        ?>
        </body>
        </html>
        Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

        Comment


        • #5
          Hallo,
          und genau das funktioniert nicht bzw. kann nicht funktionieren.
          Wenn ich wie Du schreibst

          [color=blue]calendar($array);[/color]

          eingebe, liest mir die ganze 32 Zeichen aus. Also mehr als 31 Zeichen.

          Wenn ich aber die Mühe mache und etwa so eingebe:

          [color=blue]calendar( $array[0], $array[1], .........$array[31])[/color]

          dann funktionierts.

          und so funktioniert schon wieder nicht:

          [color=red]calendar( $array[0], $array[1], .........$array[32])[/color]

          Also irgendwie hat es doch mit der Anzahl der Variablen zu tun??!!
          Danke und Grüße

          Comment


          • #6
            PHP Code:
            calendar$array[0], $array[1], .........$array[32]) 
            FALSCH!! Dass Array $array müsste 33 Elemente 0-32 haben. Du hast in deiner Textdatei aber nur 32 (0-31).

            PHP Code:
            calendar$array[0], $array[1], .........$array[31]) 
            Das sind genau 32 Elemente. 0 Das Erste, 31 das Letzte der Zeile in der Textdatei(Buchstabe)

            Also irgendwie hat es doch mit der Anzahl der Variablen zu tun??!!
            Genau. $array[32] existiert gar nicht. Siehe Kommentar weiter oben.


            Aufpassen: Arrays in Programmiersprachen fangen mit 0(!) nicht mit 1 an.
            ps: Dein Script in deinem Ersten Post geht bei mir ohne Probleme.
            Last edited by Rolandbar; 04-11-2007, 10:37.
            Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

            Comment


            • #7
              Du hast Recht,
              und ich bin ein....

              Ich sehe schon, habe falsche Daten übermittelt. SORRY mein Fehler.

              Also:

              [color=blue]calendar($array[0], $array[1], ......$array[30]);[/color]

              das läuft.

              [color=red]calendar($array[0], $array[1], ......$array[31]);[/color]

              das läuft nicht.
              Danke und Grüße

              Comment


              • #8
                Und jetzt übergibst du noch das ganze Array so wie Roland es in seinem ersten Post gezeigt hat. Dann kannst du auch alle Elemente durchlaufen und anzeigen, egal wie viele es sind.
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Comment


                • #9
                  das läuft nicht.
                  Ich hätte beim Ersten Post schon schreiben sollen, dass du Bitte Das hier liest. Vor allem der Punkt "Der Fehler" ist wichtig.
                  Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                  Comment


                  • #10
                    Rolandbar,

                    wenn Du sagst, bei Dir läufts..
                    Ich werde noch Wahnsinnig.... Wieso läufts bei mir nicht?!
                    Danke und Grüße

                    Comment


                    • #11
                      Schreibe doch bitte was bei dir nicht geht. Keine Ausgabe? Fehler von PHP? Falsche Ausgabe?

                      Die Ausgabe bei mir war:
                      1 2 1 1 2 1 1 1 2 1 1 1
                      Oder wenn ich beim Script im Ersten Post, bei der Funktion Calendar das echo $b_[31]; in echo $b_[32]; mache:
                      A B C D E F G H I J K L

                      Schreibe doch mal, mit welcher PHP Version du Testest. 5.2.4 bei mir

                      mfg Roland
                      Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                      Comment


                      • #12
                        Hallo,
                        da ist mein Gesamtskript erneut:
                        code:
                        PHP Code:
                        html>
                        <head>

                        <title>Jahresüberblick</title>


                        <?php

                        function calendar($b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$b10,$b11,$b12,$b13,$b14,
                        $b15,$b16,$b17,$b18,$b19,$b20,$b21,$b22,$b23,$b24,$b25,$b26,
                        $b27,$b28,$b29,$b30,$b31)

                         
                        {
                            
                        $b_[1]=$b1;
                        $b_[2]=$b2;
                        $b_[3]=$b3;
                        $b_[4]=$b4;
                        $b_[5]=$b5;
                        $b_[6]=$b6;
                        $b_[7]=$b7;
                        $b_[8]=$b8;
                        $b_[9]=$b9;
                        $b_[10]=$b10;
                        $b_[11]=$b11;
                        $b_[12]=$b12;
                        $b_[13]=$b13;
                        $b_[14]=$b14;
                        $b_[15]=$b15;
                        $b_[16]=$b16;
                        $b_[17]=$b17;
                        $b_[18]=$b18;
                        $b_[19]=$b19;
                        $b_[20]=$b20;
                        $b_[21]=$b21;
                        $b_[22]=$b22;
                        $b_[23]=$b23;
                        $b_[24]=$b24;
                        $b_[25]=$b25;
                        $b_[26]=$b26;
                        $b_[27]=$b27;
                        $b_[28]=$b28;
                        $b_[29]=$b29;
                        $b_[30]=$b30;
                        $b_[31]=$b31;
                        /*$b_[32]=$b32;*/


                        echo $b_[31];
                        }

                        ?>
                        </head>


                        <body>

                        <?php


                        /**
                         * @author Medion
                         * @copyright 2007
                         */

                        $fp fopen("daten_01.txt","r");
                                
                          while (!
                        feof($fp)){ 
                          
                               
                        $text  fgets($fp,500);
                               
                        $array explode(" ",$text); 
                           
                             
                        calendar($array[0],$array[1],$array[2],$array[3],$array[4],$array[5],
                        $array[6],$array[7],$array[8],$array[9],$array[10],$array[11],$array[12],
                        $array[13],$array[14],$array[15],$array[16],$array[17],$array[18],
                        $array[19],$array[20],$array[21],$array[22],$array[23],$array[24],
                        $array[25],$array[26],$array[27],$array[28],$array[29],$array[30]);

                        }   
                          
                         
                        fclose($fp); 

                        ?>


                        </body>
                        </html>
                        und nur so funktionierts.
                        So bald ich beim Funktionsaufruf die Liste mit [color=red]$array[31] [/color]ergänze und
                        im function calendar (..) die Liste mit [color=red]$b32[/color] ergänze und in dem Function selbst dementsprechend [color=red]$b_[32]=$b32;[/color]
                        einsetze (muss ja sein) dann scheiterts bereits beim Fuktionsaufruf.

                        Ich habe, meines Wissens PHP 5 installiert oder zumindest ab PHP5.

                        Die Fehlermeldung lautet:

                        [color=red]undefined offset in line 75 [/color](Funktionsaufrufszeile) bezogen auf der gesamte Variablenliste in der Funktionsaufrufszeile.
                        Dieser Fehlermeldung verschwindet sofort so bald ich nur 31 Zeichen auslese.
                        Last edited by asp2php; 04-11-2007, 22:06.
                        Danke und Grüße

                        Comment


                        • #13
                          kannst du dich bitte mal endlich von diesem Scheiß hier verabschieden. Wie oft möchtest du das noch gesagt bekommen???

                          PHP Code:
                          function calendar($b1,$b2,$b3,$b4,$b5,$b6,$b7,$b8,$b9,$b10,$b11,$b12,$b13,$b14,
                          $b15,$b16,$b17,$b18,$b19,$b20,$b21,$b22,$b23,$b24,$b25,$b26,
                          $b27,$b28,$b29,$b30,$b31)

                           
                          {
                              
                          $b_[1]=$b1;
                          $b_[2]=$b2;
                          $b_[3]=$b3;
                          $b_[4]=$b4;
                          $b_[5]=$b5;
                          $b_[6]=$b6;
                          $b_[7]=$b7;
                          $b_[8]=$b8;
                          $b_[9]=$b9;
                          $b_[10]=$b10;
                          $b_[11]=$b11;
                          $b_[12]=$b12;
                          $b_[13]=$b13;
                          $b_[14]=$b14;
                          $b_[15]=$b15;
                          $b_[16]=$b16;
                          $b_[17]=$b17;
                          $b_[18]=$b18;
                          $b_[19]=$b19;
                          $b_[20]=$b20;
                          $b_[21]=$b21;
                          $b_[22]=$b22;
                          $b_[23]=$b23;
                          $b_[24]=$b24;
                          $b_[25]=$b25;
                          $b_[26]=$b26;
                          $b_[27]=$b27;
                          $b_[28]=$b28;
                          $b_[29]=$b29;
                          $b_[30]=$b30;
                          $b_[31]=$b31

                          Comment


                          • #14
                            Bitte Code umbrechen.

                            undefined offset komisch... Ich glaube den Index 31 gibt es nicht.

                            Setze mal folgenden Code VOR den Funktionsaufruf:
                            PHP Code:
                            echo '<pre>';
                            print_r($array);
                            echo 
                            '</pre>'
                            In der Ausgabe kannst du dann sehen wie gross die Arrays in jedem Schleifendurchlauf waren.
                            Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                            Comment


                            • #15
                              Natürlich gibt es das Offset nicht, die Datei hat halt nur 32 Zeilen ... und nochmal:
                              kannst du dich bitte mal endlich von diesem Scheiß hier verabschieden. Wie oft möchtest du das noch gesagt bekommen???
                              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                              Comment

                              Working...
                              X