我是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);
答案 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>";