-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標準で定義されているとおりです。

ブラウザに改行が表示されると、空白として挿入されます。(空白はスペース文字として視覚化されます)。
ブラウザに複数の(連続した)空白が表示される場合、ブラウザには1つの空白のみが表示されます。

改行用のスペースを表示したくない場合はecho、ブラウザに文字列を入力する前に改行を削除してください。

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 に答える