php html不需要的空格,因为使用“\ n”换行符

时间:2012-12-02 20:19:50

标签: php html line-breaks

看看这个:

<?php
    echo "<p>this is my <a href='#'>\nlink1\n</a>\n, <a href='#'>\nlink2\n</a>\n, <a href='#'>\nlink3\n</a>\n and <a href='#'>\nlink4\n</a>\n!</p>\n";
?>

输出:

this is my link1 , link2 , link3 and link4 !

INSTEAD OF:

this is my link1, link2, link3 and link4!

为什么?

“link1”和“,”或“link4”和“!”之间存在不需要的空格。 而且有趣的是,如果“\ n”之后有一个空格..它可以工作。

这真的会扰乱我的工作(和工作流程)。

如何避免此错误/错误?

2 个答案:

答案 0 :(得分:3)

观察到的行为不是错误;它与HTML标准中定义的一样严格。

当您的浏览器看到换行符时,它会作为空格进行插入。 (空格可视化为空格字符) 如果您的浏览器看到多个(连续的)空格,它只会显示一个空格。

如果您不希望为换行显示空格,请在echo之前删除换行符 - 将字符串添加到浏览器中:

echo str_replace("\n", '', "<p>this is my <a href='#'>\nlink1\n</a>\n, (...)");

答案 1 :(得分:1)

<?php
    echo "<p>this is my <a href='#'>link1</a>,\n<a href='#'>link2</a>,\n<a href='#'>link3</a> and \n<a href='#'>link4</a>!</p>";
?>

应该修复它。 只需离开“\ n”即可。这是一个换行符和浏览器'转换'到空格。

\n是代码中的换行符。如果您想在浏览器中输出换行符。只需使用<br/>代替\n