看看这个:
<?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”之后有一个空格..它可以工作。
这真的会扰乱我的工作(和工作流程)。
如何避免此错误/错误?
答案 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