Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
15
ZUGRIFFE
973
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    flippar ist offline Rookie
    Registriert seit
    Apr 2012
    Ort
    Greifswald, Germany, Germany
    Beiträge
    7
    Hallo ich brauche Hilfe bei folgendem Problem:

    Ich möchte mehrere Textdateien mit einem Script auslesen .

    Die Textdateien Sind Immer folgendermaßen aufgebaut:

    LINKSA:
    LinksA1
    LinksA2
    LinksA3

    LINKSB
    LinksB1
    LinksB2
    LinksB3

    LINKSC
    LinksC1
    LinksC2
    LinksC3

    LINKSD
    LinksD1
    LinksD2
    LinksD3

    Ich möchte diese nun so auslesen dass ich quasi jedesmal den 1./2./3. Link in einem Array habe
    und diese dann per Echo ausgeben kann.

    Also echo : Blabla $LinksA[0] blubb blubb $LinksB[0] bli bla blu $LinksC[0] und $LinksD[0]

    Ich habe leider große Probleme mit dem explode und komme da auf keinen Grünen Zweig.

    Besonderheit ist noch, dass die Anzahl der Links je nach Txt Datei variiert. Also es je nach Textdatei auch mal bis LinksA20 gehen kann.


    Wäre über Hilfe dankbar. Bin verzweifelt
     

  2. #2
    Avatar von einfach nur crack
    einfach nur crack ist offline mag Cookies & Kekse
    Registriert seit
    May 2007
    Ort
    ::1
    Beiträge
    2.425
    Aber das Muster ist wie folgt:
    • Überschrift
    • drei Links
    • Leerzeile
    • (fang wieder bei Punkt 1 an)
     
    Wir alle hier helfen gerne in unserer Freizeit weiter und versuchen Probleme gemeinsam zu lösen. Deshalb wäre es nett, wenn man das entsprechend mit einer positiven Bewertung oder einem Danke honoriert.

    Bei folgenden Sachen kann ich Dir übrigens helfen:
    PHP
    JavaScript
    Ruby
    CoffeeScript
    CSS
    – Webtechnologien
    – UNIX-Shell

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  3. #3
    flippar ist offline Rookie
    Registriert seit
    Apr 2012
    Ort
    Greifswald, Germany, Germany
    Beiträge
    7
    Ja genau. Nur es sind nicht immer 3 Links. Das sollte über eine kleine Veränderung im Skript halt anpassbar sein.
    LinksA , LinksB etc. haben aber immer die gleiche Anzahl an Unterpunkten ( hier halt 3)
     

  4. #4
    Avatar von chmee
    chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.781
    Nachdem Du die Datei eingelesen hast.. Wonach suchst Du denn, um die Einträge zu unterscheiden? ich würde dem Trenner/der Überschrift etwas Eindeutiges geben, zB zwei Rauten am Anfang, damit wir für den Code einen sinnvollen Unterscheider geben können für

    (A) das ist ne Überschrift
    (B) hier beginnt ein neues Array

    Beispiel-Textdatei
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    ##LINKSA
    www.phreekz.de
    www.dslr-kleinanzeigen.de
    www.xbmc.org
    ##LINKSB
    www.google.de
    www.tutorials.de
    ##LINKSC
    www.fotografie.de
    www.cinema.de
    www.coding.de
    Interessant ist, mit welchem Texteditor die Textdatei geschrieben wurde, ist das Zeilenende (besser Zeilenumbruch) mit \n oder mit \r\n gesetzt? Sollte man diese noch löschen?
    PHP-Code:
    <?php
    $array 
    file("/textdatei.txt");

    $linkarray=array();
    $index=-1;

    foreach(
    $array as $row)
    {
      if(
    strpos($row,"##")!=0)
      {
        
    $index++;
        
    $linkarray[$index]=array();
        
    $linkarray[$index][0]=$row;
        
    $linkarray[$index][1]=array();
      }
      else
      {
        
    $linkarray[$index][1][]=$row;
      }  
    }

    var_dump($linkarray);
    Leerzeichen betrachte ich nicht und das Wegnehmen der Rauten für eine "schönen" Trennertitel genauso wenig (auch nicht das Wegkürzen der Zeilenumbrüche), das kannst Du selbst einbauen UND der Code ist jetzt ohne Test hingekritzelt - es könnten Fehler drin sein..

    mfg chmee
    Geändert von chmee (16.04.12 um 19:24 Uhr)
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  5. #5
    flippar ist offline Rookie
    Registriert seit
    Apr 2012
    Ort
    Greifswald, Germany, Germany
    Beiträge
    7
    Das gibt nur leere Arrays aus.
     

  6. #6
    Avatar von timestamp
    timestamp ist offline Mitglied Käsekuchen
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.952
    Das sollte so funktionieren:
    PHP-Code:
    if(strpos($row,"##") ==0
    Wenn nicht, beantworte noch folgende Fragen:
    Wie sieht denn deine Textdatei aus? Ist sie im richtigen Verzeichnis?
     
    Tutorials.de Blog: Stacks und Queues

    Wie wird Dir schneller geholfen?
    *Bitte nur den Codeausschnitt posten. Keiner mag sich durch hunderte Zeilen Code wühlen.
    *Code in Tags setzen, dadurch aktiviert man Syntaxhighlighting. [php][/php] [java][/java]...
    *Code formatieren! Einrücken und Absätze machen erhöhen die Lesbarkeit ungemein, nicht nur für uns, auch für Dich
    *Den Fehler klar beschreiben. Mit "funktioniert nicht" weiß keiner was anzufangen.

  7. #7
    Avatar von chmee
    chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.781
    In diesem Fall muss es sogar typensicher sein, denn kein Fund würde auch als 0 oder false interpretiert werden, somit also
    PHP-Code:
    strpos($row,"##")===
    (und der Dateiname muß entweder ohne slash oder mit ./ angegeben sein. sorry.)
    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  8. #8
    flippar ist offline Rookie
    Registriert seit
    Apr 2012
    Ort
    Greifswald, Germany, Germany
    Beiträge
    7
    PHP-Code:
    array(11) { [0]=> array(2) { [0]=> string(9"##LINKSA " [1]=> array(0) { } } [1]=> array(2) { [0]=> string(15"www.phreekz.de " [1]=> array(0) { } } [2]=> array(2) { [0]=> string(26"www.dslr-kleinanzeigen.de " [1]=> array(0) { } } [3]=> array(2) { [0]=> string(13"www.xbmc.org " [1]=> array(0) { } } [4]=> array(2) { [0]=> string(9"##LINKSB " [1]=> array(0) { } } [5]=> array(2) { [0]=> string(14"www.google.de " [1]=> array(0) { } } [6]=> array(2) { [0]=> string(17"www.tutorials.de " [1]=> array(0) { } } [7]=> array(2) { [0]=> string(9"##LINKSC " [1]=> array(0) { } } [8]=> array(2) { [0]=> string(18"www.fotografie.de " [1]=> array(0) { } } [9]=> array(2) { [0]=> string(14"www.cinema.de " [1]=> array(0) { } } [10]=> array(2) { [0]=> string(13"www.coding.de" [1]=> array(0) { } } } 
    Das ist jetzt das Ergebnis und leider immer noch nicht was ich möchte.
    Die Textdatei sieht so aus wie oben im vorigen Code-Post beschrieben.
     

  9. #9
    Avatar von timestamp
    timestamp ist offline Mitglied Käsekuchen
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.952
    PHP Nimmt es mit den Arraydeklarationen nicht so genau @chmee.
    Daher geht auch folgendes (erspart einem die leeren Arrayeinträge):

    PHP-Code:
    <?php
    $array 
    file("/textdatei.txt");

    $linkarray = array(); //auch nicht nötig, aber gehört zu schönem programmierstil dazu, finde ich
    $index=-1;

    foreach(
    $array as $row)
    {
      if(
    strpos($row,"##") === 0)
      {
        
    $index++;
        
    $linkarray[$index][0]=$row;
      }
      else
      {
        
    $linkarray[$index][1][]=$row;
      }  
    }
    Wo ist denn jetzt dein Problem?
    Du hast doch alles in dem Array was du brauchst. Du kannst es sogar direkt in der Schleife ausgeben lassen.
    Geändert von timestamp (16.04.12 um 23:18 Uhr) Grund: chmees anmerkung eingefügt
     
    Tutorials.de Blog: Stacks und Queues

    Wie wird Dir schneller geholfen?
    *Bitte nur den Codeausschnitt posten. Keiner mag sich durch hunderte Zeilen Code wühlen.
    *Code in Tags setzen, dadurch aktiviert man Syntaxhighlighting. [php][/php] [java][/java]...
    *Code formatieren! Einrücken und Absätze machen erhöhen die Lesbarkeit ungemein, nicht nur für uns, auch für Dich
    *Den Fehler klar beschreiben. Mit "funktioniert nicht" weiß keiner was anzufangen.

  10. #10
    Avatar von chmee
    chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.781
    Wie Du es möchtest, kannst Du Dir selbst zusammencoden. Wir haben Dir ein simples und funktionierendes Beispiel gebracht. Wir sind aber nicht dazu da, Wünsche zu befolgen Hilfe zur Selbsthilfe!

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  11. #11
    flippar ist offline Rookie
    Registriert seit
    Apr 2012
    Ort
    Greifswald, Germany, Germany
    Beiträge
    7
    Irgendwa stimmt da aber nicht. wenn ich jetzt einfach mal print $row mache gibt er mir "www.coding.de" aus. das ist aber die letzte zeile.

    Ihr sollt keine Wünsche befolgen sondern mir einfach bei meiner Frage helfen. Meine Selbsthilfe dauert nun schon Stunden darum bin ich hier!
     

  12. #12
    Avatar von chmee
    chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.781
    Das fertige Array heisst ja auch $linkarray - Aufbau sieht man in der Ausgabe mittels var_dump()

    mfg chmee
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  13. #13
    flippar ist offline Rookie
    Registriert seit
    Apr 2012
    Ort
    Greifswald, Germany, Germany
    Beiträge
    7
    Achso danke. Jetzt gibt er mir bei var_dump($linkarray); zwar alles aus aber bei var_dump($linkarray[1]); gibts wieder nur NULL

    Hier mal die Struktur:

    PHP-Code:
    array(1
    { [-
    1]=> array(1
    { [
    1]=> array(11

    [
    0]=> string(9"##LINKSA " 
    [1]=> string(15"www.phreekz.de " 
    [2]=> string(26"www.dslr-kleinanzeigen.de " 
    [3]=> string(13"www.xbmc.org " 
    [4]=> string(9"##LINKSB " 
    [5]=> string(14"www.google.de " 
    [6]=> string(17"www.tutorials.de " 
    [7]=> string(9"##LINKSC " 
    [8]=> string(18"www.fotografie.de " 
    [9]=> string(14"www.cinema.de " 
    [10]=> string(13"www.coding.de" } } } 


    EDIT: Ahh okay. die Struktur ist mir nun klar.
    Jetzt aber noch folgendes Problem: Wie mache ich es dass die Links unter ##LINKSC ein eigenes Array bekommen ?
    Geändert von flippar (16.04.12 um 22:22 Uhr)
     

  14. #14
    Avatar von chmee
    chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.781
    Du benutzt das Script von timestamp. Änder, wie von mir beschrieben in der Abfrage != nach ===

    Dann ist es so wie von mir angedacht, dann sieht die Struktur nämlich so aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    $linkarray => array(3)
     
    [0]=> array(2)
    [0][0]=> "##LINKSA"
    [0][1]=> array(3)
          [0]=> "www.phreekz.de"
          [1]=> "www.dslr-kleinanzeigen.de"
          [2]=> "www.xbmc.org"
     
    [1]=> array(2)
    [1][0]=> "##LINKSB"
    [1][1]=> array(2)
          [0]=> "www.google.de"
          [1]=> "www.tutorials.de"
     
    [2]=> array(2)
    [2][0]=> "##LINKSC"
    [2][1]=> array(3)
          [0]=> "www.fotografie.de"
          [1]=> "www.cinema.de"
          [2]=> "www.coding.de"
    Dann hast Du mit
    PHP-Code:
    echo count($linkarray); 
    Die Anzahl der Listen. Mit
    PHP-Code:
    echo $linkarray[0][0]; 
    Hast Du den Namen der Liste 0 und in
    PHP-Code:
    var_dump($linkarray[0][1]); 
    steckt das Array der Links zu 0.

    Aufgeräumter gehts wohl kaum. Mit zwei foreach-Schleifen ist das Ding wieder in jegliche html-Auflistung ausgeworfen.

    mfg chmee
    Geändert von chmee (17.04.12 um 08:50 Uhr) Grund: len() zu count()
     
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  15. #15
    flippar ist offline Rookie
    Registriert seit
    Apr 2012
    Ort
    Greifswald, Germany, Germany
    Beiträge
    7
    Okay hab jetzt soweit alles. Eine letzte Frage noch:
    PHP-Code:
    $anzahl count($ULlinksArray);
    $i ;
    while (
    $i <= $anzahl):
        echo 
    $ULlinksArray['$i];
        echo "<br>"
        $i++;
    endwhile; 
    Zur Erklärung : In $ULlinksArray sind die Links als Arrays gespeichert. Sie werden gezählt.
    Nun möchte ich dass alle einzeln in einer While Schleife ausgegeben werden.
    Also es quasi so aussieht:

    PHP-Code:
     echo $ULlinksArray[0];
        echo 
    "<br>"
     
    echo $ULlinksArray[1];
        echo 
    "<br>"
     
    echo $ULlinksArray[2];
        echo 
    "<br>"
     
    echo $ULlinksArray[3];
        echo 
    "<br>" 
    Bis quasi alle Links ausgegeben sind
     

Thema nicht erledigt
Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Textdatei auslesen
    Von Peter_Lustig im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 02.01.09, 13:59
  2. Antworten: 3
    Letzter Beitrag: 10.12.08, 12:01
  3. Textdatei auslesen
    Von ojamaney im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 08.01.08, 01:57
  4. Textdatei auslesen
    Von LordNikkon im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 3
    Letzter Beitrag: 12.08.04, 10:28
  5. Textdatei auslesen
    Von Franz im Forum PHP
    Antworten: 1
    Letzter Beitrag: 21.04.02, 17:10