Merkwürdiges Verhalten von Join/explode

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

  • Merkwürdiges Verhalten von Join/explode

    Hallo Allerseits

    Ich habe folgendes Problem.

    Ich lade aus einer Text Datei mehrer Zeilen in ein Array. Wenn ich dann die Anweisung Join/explode darauf anwende, wird der String zsammengesetzt, aber es wird immer die Ziffer '1' davor geschrieben.

    Woher resultiert dieses Verhalten und wie kann man es unterbinden ?

    MFG

    Thomas Hugel

  • #2
    Quellcode??
    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Hi

      Bitte hier die Codeschnipsel

      MFG Thomas Hugel



      $design = getarray("../lager/design.txt");
      $htmls[6] = join(" ",$design);

      -------ergebnis mit echo ----
      1 <body text="#FFDF0" bgcolor..............

      -------- funktion getarray --------
      function getarray($filename)
      {
      if (!file_exists($filename)) return $vec[0]=0;
      $fp = fopen($filename , "r");
      $vec[-1] = true;
      $i=-1;
      while($vec[$i])
      {
      $i++;
      $vec[$i] = trim(fgets($fp, 750));
      }//while
      fclose($fp);
      return $vec;
      }


      --------- Inhalt design.txt ---------------
      <body text="#FFDF0" bgcolor="#FFFFFF" link="#00FFAF" alink="#00AFFF" vlink="#00A050" background="../mannpic/back.gif">
      <style type="text/css">
      <!--
      a:link { text-decoration:none; font-weight:bold; color:#00FFFF;}
      a:visited { text-decoration:none; font-weight:bold; color:#FF3F00;}
      a:hover { text-decoration:none; font-weight:bold; background-color:#FFFF00;}
      a:active { text-decoration:none; font-weight:bold; background-color:#CCFFFF;}
      -->
      body {background-image:url(../mannpic/back.gif); background-repeat:repeat; background-attachment:fixed; padding:0px;}
      </style>

      Kommentar


      • #4
        muss an deiner selbstgebastelten funktion liegen ..
        da ich momentan zu faul bin, folgendes:

        PHP-Code:
        $arr implode(""file("../lager/design.txt")); 
        geht einfacher und schneller denk ich mal
        Zuletzt geändert von Coragon Rivito; 26.01.2003, 17:52.
        mfg,
        [color=#0080c0]Coragon[/color]

        Kommentar


        • #5
          PHP-Code:
          ...
          -------
          ergebnis mit echo ----
          <body text="#FFDF0" bgcolor..............

          -------- 
          funktion getarray --------
          ... 
          was soll die "1" vor <body... ?

          Kommentar


          • #6
            hm, ne 1 ausgeben ? *rofl*
            mfg,
            [color=#0080c0]Coragon[/color]

            Kommentar


            • #7
              Hi

              Um noch mal zu betonen , die "1" ist das Problem ich weis nicht wo die plötzlich auftaucht.


              Bei verwendung von :

              $arr_=_implode("",_file("../lager/design.txt"));

              bekomme ich folgende Fehlermeldung :

              Fatal error: Call to undefined function: implode() in e:

              MFG

              Thomas Hugel

              Kommentar


              • #8
                wie sieht die txt-datei denn aus?
                Fehlen sonst irgendwelche Daten?
                Deiner kennt die Funktion implode() nicht? Problem!!!

                @the others: Die eins die ihr da gesehen habt, ist nur die Ausgabe, nicht der PHP-Quelltext.

                Kommentar


                • #9
                  Du hast da drinne ja auch mal true benutzt. Kann es sein, dass die 1 im Sinne von True ausgegeben wird. Also wenn False, dass dann ne 0 da rauskommt?

                  Ansonsten ist in den snippets nichts zu finden, was ne 1 erzeugen könnte...

                  Kommentar


                  • #10
                    die 1 kommt vom $vec[-1] = true;

                    warum machst du es nicht so:

                    PHP-Code:
                    function getarray($filename)
                    {
                    if (!
                    file_exists($filename)) return $vec[0]=0;
                    $vec file($filename);
                    for (
                    $i 0$i <= count($vec); $i++) {
                      
                    $vec[$i] = trim($vec[$i]);
                    }
                    return 
                    $vec;

                    Kommentar


                    • #11
                      Hi

                      $design = getarray("../lager/design.txt");
                      $j++;
                      $speich[$j] = implode(" ",$design).$nl;

                      Läuft ohne Fehler, also kommt er mit der Anweisung implode klar !

                      hiermit kommt er nicht klar !

                      $speich[$j]_=_implode("",_file("../lager/design.txt"));
                      Parse error: parse error in e:\wampp13a

                      $arr_=_implode("",_file("../lager/design.txt"));
                      Fatal error: Call to undefined function: implode() in e:\wampp13a

                      Natürlich gäbe es die Lösung einfach das erste Zeichen weg zu schneiden, nur wenn es auf eine anderen Server läuft, geht diese Action ins leere.


                      Die design.txt datei . ist ganz normaler Text mit folgenden Inhalt:
                      <body text="#FFDF0" bgcolor="#FFFFFF" link="#00FFAF" alink="#00AFFF" vlink="#00A050" background="../mannpic/back.gif">
                      <style type="text/css">
                      <!--
                      a:link { text-decoration:none; font-weight:bold; color:#00FFFF;}
                      a:visited { text-decoration:none; font-weight:bold; color:#FF3F00;}
                      a:hover { text-decoration:none; font-weight:bold; background-color:#FFFF00;}
                      a:active { text-decoration:none; font-weight:bold; background-color:#CCFFFF;}
                      -->
                      body {background-image:url(../mannpic/back.gif); background-repeat:repeat; background-attachment:fixed; padding:0px;}
                      </style>

                      MFG

                      Thomas Hugel

                      Kommentar


                      • #12
                        Original geschrieben von thugel
                        hiermit kommt er nicht klar !

                        $speich[$j]_=_implode("",_file("../lager/design.txt"));
                        Parse error: parse error in e:\wampp13a

                        hmmm was hast du eigentlich mit den unterstrichen vor? willst du uns damit nur andeuten, daß du da leerstellen hast, oder stehen die wirkich so in deinem quelltext?

                        hast du jetzt mal meine variante ausprobiert?

                        Kommentar


                        • #13
                          Hi

                          Weiss gar vorher die unterstriche kommen, sie wurden bei mir nicht angezeigt. Ich checke das mal, das köönte unter umständen die Ursache für die Fehlfunktion dieser Anweisung ist.

                          MFG

                          Thomas Hugel

                          Kommentar


                          • #14
                            ich glaube die unterstriche ballert das forum hier rein, wenn man vorher den [ php ] tag zum markieren benutzt hat - dann werden beim zitieren leerzeichen durch unterstriche ersetzt...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Hi

                              Tatsächlich nach dem entfernen der Unterstriche, läuft die Anweisung fehlerfrei.

                              Die "1" taucht dort nicht auf, die scheint tatsächlich mit der lade funktion ($vec[-1] = true; ) zusammen zu hängen, werde das mal checken.

                              Ansonsten danke ich alllen für die kompetenten Antworten und Vorschlägen die zur Lösung meines Problemes beigetragen haben.



                              MFG
                              Thomas Hugel

                              Kommentar

                              Lädt...
                              X