Anzahl der Variablen sind begrenzt?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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]

    Kommentar


    • #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

      Kommentar


      • #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

        Kommentar


        • #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

          Kommentar


          • #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.
            Zuletzt geändert von Rolandbar; 04.11.2007, 11:37.
            Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

            Kommentar


            • #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

              Kommentar


              • #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]

                Kommentar


                • #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

                  Kommentar


                  • #10
                    Rolandbar,

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

                    Kommentar


                    • #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

                      Kommentar


                      • #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.
                        Zuletzt geändert von asp2php; 04.11.2007, 23:06.
                        Danke und Grüße

                        Kommentar


                        • #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

                          Kommentar


                          • #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

                            Kommentar


                            • #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]

                              Kommentar

                              Lädt...
                              X