SiWi: Problem bei Verweisen.

Ich habe ein Problem mit folgendem Code:

<ul>
<?php
$array = file("news.txt");
$array = array_reverse($array);
$j=0;
for($i=0; $i<=sizeof($array); $i = $i+1)
{
switch ($j)
{
 case 0 : echo "<li><a href='$array[$i]'>" ; break;
 case 1 : echo "$array[$i]</a>";break;
 case 2 : echo "$array[$i]</li>"; $j=0; break;

}
$j++;

}
?>
</ul>

news.txt:

20.04.06
Allgemein
test.txt

Normal müsste es doch einen Link auf test.txt geben mit dem Titel allgemein und da hinter 20.04.2006.

Ich erhalte aber folgende Ausgabe(Seitenquelltext):

<ul>
<li><a href='
'>test.txt
</a>Allgemein
</li>20.04.06
</a></li></ul>

Woran könnte das liegen?

  1. hi,

    Normal müsste es doch einen Link auf test.txt geben mit dem Titel allgemein und da hinter 20.04.2006.

    Ich erhalte aber folgende Ausgabe(Seitenquelltext):

    <ul>
    <li><a href='
    '>test.txt

    Du möchtest im Manual im Kapitel über Strings den Abschnitt Variablen-Analyse (parsing) lesen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Du möchtest im Manual im Kapitel über Strings den Abschnitt Variablen-Analyse (parsing) lesen.

      Hab ich gemacht. Komme aber trotzdem auf keinen grünen Zweig. Kann mir jemand sagen, wie der Code lauten muss? Vielleicht versteh ichs dann.

      1. Hat keiner eine Ahnung?

        1. echo $begrüßung;

          Hat keiner eine Ahnung?

          Doch natürlich. Du solltest nur nicht ignorieren, wenn dir schon jemand sagt, wie du den Fehler finden kannst. Also hier nochmal zum mitschreiben:

          echo '<pre>';
            print_r($array);

          Das fügst du nach der Zeile mit dem array_reverse ein und dir wird sogleich auffallen, warum dein Code nicht wie gewünscht läuft.

          echo "$verabschiedung $name";

          1. Doch natürlich. Du solltest nur nicht ignorieren, wenn dir schon jemand sagt, wie du den Fehler finden kannst. Also hier nochmal zum mitschreiben:

            Sorry.
            Habs jetzt mal gemacht. Ausgabe:
            Array
            (
                [0] =>

            [1] => test.txt

            [2] => Allgemein

            [3] => 20.04.06

            )

            Deswegen funktionierts nicht. In der ersten Zeile der Datei ist aber Text. Warum kommmt in die den ersten Eintrag eine leere Zeile?

            1. Hallo SiWi.

              In der ersten Zeile der Datei ist aber Text. Warum kommmt in die den ersten Eintrag eine leere Zeile?

              Lasse dir einmal folgendes ausgeben:

              echo '"'.file_get_contents('news.txt').'"';
              (Entweder bei header('content-type: text/plain'); oder mit voran gestelltem echo '<pre>';)

              Einen schönen Freitag noch.

              Gruß, Ashura

              --
              sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
              „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
              [HTML Design Constraints: Logical Markup]
            2. echo $begrüßung;

              Deswegen funktionierts nicht. In der ersten Zeile der Datei ist aber Text. Warum kommmt in die den ersten Eintrag eine leere Zeile?

              Die ersten werden die letzten sein :-) und das vor allem dann, wenn man array_reverse() verwendet. Sprich: da wird wohl eine Leerzeile am Ende deiner Datei sein.

              echo "$verabschiedung $name";

  2. echo $begrüßung;

    Ich habe ein Problem mit folgendem Code:
    $array = file("news.txt");
    $array = array_reverse($array);

    Wenn man einen Fehler erhält, den man nicht erwartet hat, sollte man seine Variableninhalte mit seinen Erwartungen vergleichen. Im Konkreten solltest du dir den Inhalt von $array mal genauer ansehen. print_r($array) mit vorangehendem <pre> eignet sich dazu.

    for($i=0; $i<=sizeof($array); $i = $i+1)

    Außerdem solltest du beim Entwickeln das error_reporting auf E_ALL setzen, damit du auch Hinweise bekommst, dass das <= im weiteren Verlauf deines Scripts einen Fehler verursacht.

    echo "$verabschiedung $name";