目前我正在这样做:
$lines = file('data/index');
foreach ($lines as $value)
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
data/index
的内容是:
This is a test post|http://google.com
Another test post|http://google.com
但是,它只打印出该文件的最后一行。几乎就像每个“echo ”都被一个新的“echo ”覆盖一样。我显然没有正确地做到这一点。为什么它不起作用,我怎样才能让它按照我想要的方式运行?
最佳答案
在您的代码中,只有第三行是循环的一部分。如果你想让这两个语句都在循环中,你必须创建一个 block :
foreach ($lines as $value) {
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
}
此外,应避免使用 PHP echo
ing HTML。您应该将 PHP 嵌入到您的 HTML 中。它使您的代码(尤其是 HTML 标记)更易于维护并且不易出错。
引用:foreach
关于php - 数组迭代中的 echo 覆盖以前的 echo (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7868865/