2016-04-29 4 views
1

Ich bin sehr neu in PHP/Programmierung, so dass Sie meine Frustration verstehen können. Versteh mich nicht falsch, ich liebe es.Ich versuche, eine ungeordnete Liste in PHP zu erstellen und es in HTML-Datei anzuzeigen

Mein Ziel ist es, eine ungeordnete Liste in PHP zu erstellen und sie in HTML anzuzeigen.

Ich konnte erfolgreich die ungeordnete Liste erstellen, und es wird korrekt angezeigt.

Mein Problem ist, wenn ich versuche, es in eine HTML-Datei mit dem fopen(); & fwrite(); anzuzeigen.

Der Fehler, den ich bekomme, ist, dass es nur die letzten drei Werte in meinem Array anzeigen, wenn ich zu meiner .html-Datei umschalte. Mein Code ist unten, jeder Rat wird geschätzt.

$colors = array (
     0 => array ("red", "black", "white"), 
     1 => array ("yellow", "blue", "green"), 
     2 => array ("orange", "grey", "pink"), 
     3 => array ("purple", "brown", "clear"), 
); 

foreach ($colors as $value) { 
    echo "<ul>"; 
    $couleur = "<li>". implode ("</li><li>", $value) ."</li>"; 
    echo $couleur; 
    echo "</ul>"; 
} 

$y = fopen ("list.html", "w"); 
fwrite ($y, $couleur); 
+0

gibt es einen speziellen Grund, warum Sie müssen angezeigt werden diese auf der HTML-Datei und nicht direkt angezeigt werden sie von der Php-Datei: Sie könnten auch durch Bewegen der <ul> Tags außerhalb der Schleife eine lange Liste machen? Sie überschreiben auch $ couleur bei jeder foreach-Iteration. Versuchen Sie es mit '$ couleur [] = ...' – Matt

+0

Ja, Sie überschreiben '$ couleur' bei jeder Iteration Ihrer Schleife. Definieren Sie '$ couleur' als eine leere Zeichenfolge vor der Schleife; Echo nicht innerhalb der Schleife, sondern benutze '$ couleur. = ...', um deine Zeichenkette zu erstellen –

+0

Ändere $ couleur = zu $ ​​couleur. = für die Verkettung. –

Antwort

1

Statt Druck (echo), ich glaube, Sie alle Daten in einer Variablen speichern möchten, und schreiben, dass die Daten schließlich in Datei. Ansonsten sehen Sie sehen Sie es bei der Ausführung Ihres PHP-Skript, aber es wird nicht in die Datei geschrieben werden.

In Ihrer Version überschreiben Sie $couleur bei jeder Iteration (wie bereits von anderen angegeben), was erklärt, warum Sie nur das letzte Array erhalten. Sie können Strings mit dem .= Operator anhängen, die Ihren Code so aussehen, zum Beispiel machen würde:

$colors = array (
    0 => array ("red", "black", "white"), 
    1 => array ("yellow", "blue", "green"), 
    2 => array ("orange", "grey", "pink"), 
    3 => array ("purple", "brown", "clear"), 
); 

foreach ($colors as $value) { 
    $couleur .= "<ul>"; 
    $couleur .= "<li>". implode ("</li><li>", $value) ."</li>"; 
    $couleur .= "</ul>"; 
} 

$y = fopen ("list.html", "w"); 
fwrite ($y, $couleur); 

Beachten Sie, dass dies bietet Ihnen mit vier ungeordnete Listen. Ich bin mir nicht sicher, ob du das willst.

$couleur = "<ul>"; 
foreach ($colors as $value) { 
    $couleur .= "<li>". implode ("</li><li>", $value) ."</li>"; 
} 
$couleur .= "</ul>"; 
+0

super, danke Jungs. So eine einfache Lösung, genau das, was ich brauchte. – uno10

Verwandte Themen