php爆炸foreach奇怪的换行符

时间:2016-06-23 15:36:35

标签: php foreach explode line-breaks

我有一个填充了000000&等颜色代码的文本区域。 ffffff每种颜色都在一条单独的行上,所以它看起来像:

000000
111111
222222

现在我将这些转换为实际的内联背景颜色:

$bgclass = $params->get('bgclass');
$bgcolors = $params->get('bgcolors');

$bglines = explode("\n", $bgcolors);
if ( !empty($bglines) ) {
  echo "<style>";
  foreach ( $bglines as $bgline ) {
    echo "." . $bgclass . "-" . $bgline . "{background:#" . $bgline . ";}" . "\r\n";
  }
  echo "</style>";
}

现在输出如下:

<style>
.bg-000000
{background:#000000
;}
.bg-111111
{background:#111111
;}
.bg-222222
{background:#222222
;}
</style>

如何让输出像这样:

<style>
.bg-000000{background:#000000;}
.bg-111111{background:#111111;}
.bg-222222{background:#222222;}
</style>

2 个答案:

答案 0 :(得分:3)

explode()只需\r\n代替:

$bglines = explode("\r\n", $bgcolors);

另一种选择是trim()

$bglines = explode("\n", $bgcolors);
$bglines = array_map('trim', $bglines);

如果这是一个文件(正如我原先想的那样),那么我会使用file()将文件读入数组并删除行结尾:

$bglines = file('/path/to/file.txt', FILE_IGNORE_NEW_LINES);

答案 1 :(得分:0)

我不确定您发布的方法有什么问题,但这可能对您有帮助。

12341234123412341234123412341234