我正在使用自定义行定界符逐行读取PHP中的文件,但在将行字符连接回字符串后遇到困难。
$newhtml = "";
if ($handle) {
while (($line = stream_get_line($handle, 4096, "</br>")) !== false)
{
$newhtml = "{$line}{$newhtml}" . "</br>";
}
echo $newhtml;
fclose($handle);
我希望文件的每一行出现在不同的行上,但是该标记甚至没有显示在开发控制台中。
答案 0 :(得分:0)
实际上使用下面的现有代码块
while (($line = stream_get_line($handle, 4096, "</br>")) !== false) {
$newhtml = "{$line}{$newhtml}" . "</br>"; // problem happening here with =
}
每次while循环迭代都将覆盖$newhtml
值。因此,在迭代结束后,只会得到最后一个值。据我了解,您需要将每一行连接到$newhtml
变量。为此,只需像
$newhtml = "{$line}{$newhtml}" . "</br>";
到
$newhtml.= $line."</br>"; // with dot before =
在等号前查找一个多余的点(.
),然后再次删除不必要的{$ newhtml}变量
答案 1 :(得分:0)
从给出的代码中,我可以猜到要将最后一行放在第一行,可以为此使用数组:
<?php
if ($handle) {
$lines = [];
while (($line = stream_get_line($handle, 4096, "</br>")) !== false)
{
$lines[] = $line;
}
$reversed = array_reverse($lines);
echo join('<br>' $reversed);
fclose($handle);
}
但是,如果您只想显示文件中的行,则只需简化代码即可:
<?php
if ($handle) {
$lines = [];
while (($line = stream_get_line($handle, 4096, "</br>")) !== false)
{
echo $line . '<br>';
}
fclose($handle);
}