我对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>";