I';我试图在php中创建一个无序列表,并将其显示为html文件


I'm trying to create an unordered list in php and display it to html file

我对PHP/编程很陌生,所以你可以理解我的沮丧。别误会,我很喜欢。

我的目标是用PHP创建一个无序列表,并将其显示在html中。

我成功地创建了无序列表,并且它显示正确。

我的问题是当我尝试使用fopen();&CCD_ 2。

我得到的错误是,当我切换到.html文件时,它只显示数组中的最后三个值。我的代码如下,如有任何建议,不胜感激。

$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);

我认为您希望将所有数据存储在一个变量中,并最终将数据写入文件,而不是打印(echo)。否则,将在执行PHP脚本时看到它,但它不会被写入文件。

在您的版本中,每次迭代都要覆盖$couleur(正如其他人已经指出的那样),这就解释了为什么只得到最后一个数组。您可以使用.=运算符附加字符串,这将使您的代码看起来像这样,例如:

$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);

请注意,这为您提供了四个无序列表。我不确定这是否是你想要的;您还可以通过将<ul>标签移动到循环之外来列出一个长列表:

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