Das Contao Camp 2020 in Hamburg. LEIDER ABGESAGT!
Ergebnis 1 bis 6 von 6

Thema: Arbeiten mit php im Template Ordner

  1. #1
    Contao-Nutzer Avatar von Voselix
    Registriert seit
    03.04.2012.
    Ort
    53879 Euskirchen
    Beiträge
    245

    Standard Arbeiten mit php im Template Ordner

    Hallo Zusammen,

    ich habe eine xls Datei oder eine txt Datei mit Semikolon getrennt erhalten und soll die Inhalte auf einer Seite Darstellen.

    Die Text-Datei kriege ich bereits Zeilenweise dargestellt.

    Jetzt würde ich gerne die Zeilen in Worte aufteilen mittels explode(";",???????????);
    und per echo Formatiert ausgeben.

    Zusätzlich soll die erste Zeile nicht angezeigt werden und auch gewisse spalten nicht (1,3,x) hier mal ein Auszug aus der txt Datei:

    Nummer;Name;G1;G2;Home;Email;EmailLeitung;Sitz
    191600100;verein Ant-Loooppp 1922;1922;0;http://;ant-loop@emmail.de;;Ant-looooooiiiiooopp
    (1. Spalte nicht anzeigen, 2. Spalte H4 formatiert anzeigen, 3. Spalte nicht anzeigen, eine Zeile Drunter Spalte 4...usw.)

    Hier mal mein php code zum Zeilenweise darstellen:
    PHP-Code:
    // Liest eine Datei in ein Array. 
    $lines file('files/ciiiiloooStammdaten-201611188888.txt');

    // Durchgehen des Arrays und Anzeigen des Quelltexts inkl. Zeilennummern
    foreach ($lines as $line_num => $line) {
        echo 
    "Z #<b>{$line_num}</b> : " htmlspecialchars($line) . "<br>";

    und dann noch der ansatz aus den $line die aufteilung hinzukriegen:
    $lines = explode(";",$content);

    foreach($lines as $eintrag){ ???

    das löst aber alles Fehler aus und die Seite bleibt weiss...

    Könnte mir jemand dabei helfen??

    Danke vorab - LG Vosi

  2. #2
    Contao-Fan
    Registriert seit
    03.01.2012.
    Beiträge
    535

    Standard

    Ich verstehe dein Vorhaben nicht ganz.

    In deiner txt-Datei sind Worte mit Semikolon getrennt und die möchtest du nun untereinander ausgeben?

  3. #3
    Contao-Fan
    Registriert seit
    03.01.2012.
    Beiträge
    535

    Standard

    Mir fällt nur auf, dass du $content schreibst, es die Variable sonst aber in deinem Beispiel nicht gibt?

    Hilft dir dieser Code?

    Code:
    <?php
    // Durchgehen des Arrays und Anzeigen des Quelltexts inkl. Zeilennummern
    foreach ($lines as $line_num => $line) {
        echo "Z #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br>";
        
    		$line = explode(";", $line);
    		
    		foreach($line AS $word) {
    			echo $word . "<br>";
    		}
    } 
    ?>

  4. #4
    Contao-Nutzer Avatar von Voselix
    Registriert seit
    03.04.2012.
    Ort
    53879 Euskirchen
    Beiträge
    245

    Standard

    danke---das ist schon mal ein Vortschritt :-)

    eine Idee, wie ich die einzelnen Abschnitte formatieren kann?

  5. #5
    Contao-Fan
    Registriert seit
    03.01.2012.
    Beiträge
    535

    Standard

    Du kannst sie in der echo-Zeile beliebig formatieren.

    Wenn du aber Spalten unterschiedlich formatieren willst, gibt es viieeeele Möglichkeiten.

    Man könnte z.B. mit einer Zählvariable arbeiten, die du mit 0 als Wert initialisiert und bei jedem foreach-Durchlauf um 1 erhöhst. Diesen Wert kannst du dann abfragen und z.B. die erste Spalte ausblenden bzw. gar nicht ausgeben lassen.

    Oder du machst eine if-Abfrage und fragst direkt ab, ob der String = "Nummer" ist.

    Edit:
    Man kann natürlich auch mit CSS nth-of-type arbeiten.

  6. #6
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.619
    User beschenken
    Wunschliste

    Standard

    Die Datei sollte in templates/ liegen, nicht in files/.

    Zuerst solltest du dir ein sauberes Array konstruieren, welches du dann in einer foreach-Schleife ausgeben kannst.
    PHP-Code:
    <?php

    // Liest eine Datei in ein Array
    $lines file('templates/ciiiiloooStammdaten-201611188888.txt');

    // Aufbau eines sauberen Arrays
    $data = array();

    foreach (
    $lines as $line) {
        
    $data[] = explode(';'$line);
    }

    dump($data);
    Kannst du auch direkt versuchen, wird aber erstmal unübersichtlicher sein (ungetestet):
    PHP-Code:
    <?php

    // Liest eine Datei in ein Array
    $lines file('templates/ciiiiloooStammdaten-201611188888.txt');

    $headlines = array();
    $data = array();

    // Ausgabe
    foreach ($lines as $i => $line) {
      if(
    $i == 0)
      {
        
    $headlines explode(';'$line);
        continue;
      }

      
    $data[$i] = explode(';'$line);

      echo 
    'Head Spalte 2: ' $headlines[1].'<br>';
      echo 
    'Value Spalte 2: ' $data[$i][1].'<br>';
      echo 
    'Head Spalte 4: ' $headlines[3].'<br>';
      echo 
    'ValueSpalte 4: ' $data[$i][3].'<br>'.'<br>';
    }

    dump($headlines$data);
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •