-1

看这个:

<?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 !

代替:

this is my link1, link2, link3 and link4!

为什么是这样?

"link1" 和 "," 或 "link4" 和 "!" 之间有多余的空格。还有一个有趣的事实是,如果在 "\n" 之后有一个空格 .. 它可以工作。

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

如何避免这个错误/错误?

4

2 回答 2

3

观察到的行为不是错误;它与 HTML 标准中的定义完全相同。

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

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

echo str_replace("\n", '', "<p>this is my <a href='#'>\nlink1\n</a>\n, (...)");
于 2012-12-02T20:36:12.323 回答
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”即可。这是一个换行符,浏览器将其“转换”为空格。

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

于 2012-12-02T20:27:10.080 回答