Tabellen automatisch zeichnen

  • Moin


    ich wollte mein script soweit verändern dass wenn in der link.txt eine zeile auftaucht wo kein | stich vorkommt,
    die tabelle unterbrochen wird eine Überschrift und eine neue tabelle angefanngen wir.


    Das habe ich auch hin bekomme. Jetzt habe ich aller dings das problem das die 1 ste. spalte weder varbig noch die schrift center ist :?:


    hir mal der code:



    Und hir link.txt


    Code
    http://www.google.de/|Suchmaschine
    http://www.sempervideo.de/|Lehrvideo ´s
    hallo das ist ein test...
    http://www.gmx.net/|eMail
    http://www.wer-kennt-wen.de/|Kumunety
    http://www.google.de/|Suchmaschine
    http://www.sempervideo.de/|Lehrvideo ´s
    hallo das ist ein test...
    http://www.gmx.net/|eMail
    http://www.wer-kennt-wen.de/|Kumunety
  • Hi,


    einfacher geht es wenn Du Deine Tabellen mit CSS formatierst.
    Ich habe mal Deinen Code etwas umgestaltet, auch ist es einfacher zu testen wenn Du keine doppelten Links hast.
    Schau mal ob Du damit klarkommst. Falls nicht, einfach noch mal fragen.


    Link.txt

    Code
    http://www.google.de/|Suchmaschine
     http://www.sempervideo.de/|Lehrvideo´s
     hallo das ist ein test...
     http://www.gmx.net/|eMail
     http://www.facebook.com|Network
     http://www.bing.de/|Suchmaschine
     http://vimeo.com/groups/opensourcegrafik|Grafik Tutorials
     hallo das ist ein test...
     http://www.yahoo.com/|eMail
     http://www.wer-kennt-wen.de/|Kumunety


    index.php

    PHP
    <span class="syntaxhtml"><br /><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><br /><html><br />    <head><br />        <title></title><br />        <style type="text/css"><br />            thead th<br />            {<br />                background-color: 00a;<br />                color: #fff;<br />                padding: 7px;<br />            }<br />            .odd<br />            {<br />                background-color: #979797;<br />            }<br />            .even<br />            {<br />                background-color: #FFFF00;<br />            }<br />            td<br />            {<br />                padding: 5px 10px;<br />            }<br />        </style><br />    </head><br />    <body><br />    <h1>&Uuml;berschrift</h1><br />    <span class="syntaxdefault"><?php<br />    <br />        $lines </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> file</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Link.txt"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        $nr </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        <br />        start_table</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">        foreach </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$lines as $line</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            $nr</span><span class="syntaxkeyword">++;<br /></span><span class="syntaxdefault">            if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$line</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"|"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// ist ein Link, dann zu den anderen Links<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                display_table_row</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$line</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}</span><span class="syntaxdefault">    <br />            else </span><span class="syntaxcomment">// Überschrift<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{</span><span class="syntaxdefault">    <br />                $nr</span><span class="syntaxkeyword">--;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Überschriften werden nicht gezählt<br /></span><span class="syntaxdefault">                echo </span><span class="syntaxstring">"</table>"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// vorherige Tabelle beenden <br /></span><span class="syntaxdefault">                echo </span><span class="syntaxstring">"<h2>$line</h2>"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Überschrift ausgeben und neue Tabelle beginnen<br /></span><span class="syntaxdefault">                start_table</span><span class="syntaxkeyword">();<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"</table>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    <br />        </span><span class="syntaxcomment">// Hilfsfunktionen für die Ausgabe<br /></span><span class="syntaxdefault">    <br />        function start_table</span><span class="syntaxkeyword">()<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<thead>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<tr>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<th>Nr.</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<th>Link</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<th>Beschreibung</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"</tr>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"</thead>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />        function display_table_row</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$row</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            list </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$url</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $beschreibung</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> explode </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"|"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $row</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">            global $nr</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            <br />            if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> bcmod </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$nr</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                echo </span><span class="syntaxstring">"<tr class=\"even\">"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            else<br />            </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">                echo </span><span class="syntaxstring">"<tr class=\"odd\">"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<td>$nr</td>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<td><a href=\"$url\">$url</a></td>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"<td>$beschreibung</td>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">"</tr>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    <br />    ?><br /></span>    <br />    </body><br /></html><br /><br /></span>


    LG

  • Erst mal danke für die Antwort,


    werde ich mal ausbrobiren wenn ich daheim bin.


    aber eigentlich wollte ich das als ergenzungs übung zur php-video kurs reihe machen.
    und ich frage mich warumm die erste zeile nicht mit einbezogen wird.


    trozdem danke für deinen vorschlag


    mfg

  • Hi,

    Zitat

    ich frage mich warumm die erste zeile nicht mit einbezogen wird.


    hm so ganz verstehe ich nicht was Du meinst. So sieht es bei mir im FireFox aus.


    [attachment=0]<!-- ia0 -->ScreenShot.png<!-- ia0 -->[/attachment]


    LG

  • zeile 7 ist bg-color weiß und die schrift nicht zentriert


    ich bin leider noch auf der arbeit
    deshalb kann ich kein bild hochladen


    ich benutze scriptly
    und auch der firefox zeigt mir das so an

  • Du solltest dich nie auf die Browservorschau von FileZilla verlassen, dort sieht es oft nicht so aus, wie in Browser.


    Hast du die Datei denn mal im Browser angeschaut? Dort müsste sie eigentlich richtig aussehen.

  • ja habe ich also mit dem script von mir schaut das so aus meine frage ist eigentlich nur warum er die erste zeile won der 2 ten tabelle
    nicht ein färbt


    mit dem script von CyberGirl klappt das wunder bar.

  • Hi richter100385


    ich habe den Fehler gefunden. Der Code der die Zeile ausgibt muß in den if-Block rein und dann geht es.
    Hier ist der Code:

    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />echo </span><span class="syntaxstring">"<h1><b><u>&Uuml;berschrift</u></b></h1>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxcomment">// $datei ist der handler<br />// fopen öffnet eine Datei<br />// ("DateiName.endung", "Rechte");<br /></span><span class="syntaxdefault">$datei </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> fopen </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Link.txt"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"r"</span><span class="syntaxkeyword">);<br /></span><span class="syntaxcomment">// print_r ($datei);<br /></span><span class="syntaxdefault">$nr </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">'<table border="1" width="100%">'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"<thead>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"  <tr>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"    <th>Nr.</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"    <th>Link</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"    <th>Beschreibung</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"  </tr>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"</thead>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxcomment">// fgets liest in $datei zeile für zeile aus und<br />// speichert das ergebnis in $inhalt eine<br />// zeile darf max. 4096 zeichen lang sein.<br />// das 4097 te zeichen behandelt er als währe es in<br />// einer neuen Zeile.<br /></span><span class="syntaxdefault">while </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$inhalt </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> fgets </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$datei</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 4096</span><span class="syntaxkeyword">))<br />{<br /></span><span class="syntaxdefault">    $nr</span><span class="syntaxkeyword">++;<br /></span><span class="syntaxdefault">    if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">stristr </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$inhalt</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">"|"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"</table>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"<h2>$inhalt</h2>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">'<table border="1" width="100%">'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"<thead>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"  <tr>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"    <th>Nr.</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"    <th>Link</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"    <th>Beschreibung</th>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"  </tr>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"</thead>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    else<br />    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        list </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$url</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $beschreibung</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> explode </span><span class="syntaxkeyword">(</span><span class="syntaxstring">"|"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $inhalt</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">// ############################################################<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">//if (bcmod ($nr, 2) == 1)<br /></span><span class="syntaxdefault">            if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$nr </span><span class="syntaxkeyword">%</span><span class="syntaxdefault"> 2 </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">'<tr style="background-color: #FFFF00;" align="center" >'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        else<br />        </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">            echo </span><span class="syntaxstring">'<tr style="background-color: #979797;" align="center" >'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">        </span><span class="syntaxcomment">// #############################################################<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"<td>$nr</td>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"<td><a href=\"$url\">$url</a></td>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"<td>$beschreibung</td>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">        echo </span><span class="syntaxstring">"</tr>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /></span><span class="syntaxdefault">echo </span><span class="syntaxstring">"</table>"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">?><br /></span><br /></span>


    LG

  • CyberGirl:
    Hab ich dann auch gesehen. Ich dachte, es bezieht sich auf den Code von dir und da, es bei dir funktionierte und bei richter100385 nicht, also dachte ich, es könnte an der Browservorschau liegen.
    Das es aber nirgendwo funktionierte, hab ich dann auch gesehen.

  • Danke das ihr einen anfänger so unter die arme greift.
    ich schreibe jetzt mal wie ich den code verstehe.



    jetzt noch eine frage zeile 43 wurde ersetzt durch:

    Code
    if ($nr % 2 == 1)


    warum nicht mit der funktion?

  • Ich würd mal sagen, weils kürzer ist.
    Die bc-Funktionen haben zwar eine größere Genauigkeit, als die Rechenoperatoren, aber das ist beim Rest ausrechnen mit zwei Ganzzahlen unwichtig.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!