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

时间:2016-04-29 15:29:37

标签: php html

我是PHP /编程的新手,所以你可以理解我的沮丧。不要误会我的意思。

我的目标是在PHP中创建一个无序列表并以html格式显示它。

我能够成功创建无序列表,并且显示正确。

我的问题是当我尝试使用fopen();& fwrite();

我得到的错误是,当我切换到我的.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);

1 个答案:

答案 0 :(得分:1)

我认为您希望将所有数据存储在变量中并最终将该数据写入文件,而不是打印(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>";