PHP:字符转义不能使用双引号,除非有<;预处理>;标签?

PHP:字符转义不能使用双引号,除非有<;预处理>;标签?,php,string,Php,String,有人能告诉我哪里出了问题吗 //outputs : Hi, my name is Jackal I like PHP <?php echo "Hi, my name is Jackal \nI like PHP"; ?> //输出:嗨,我叫Jackal,我喜欢PHP echo "Hi, my name is Jackal <br />I like PHP"; 如果我使用pre-tag //outputs: Hi, my name is Jackal //

有人能告诉我哪里出了问题吗

//outputs : Hi, my name is Jackal I like PHP
<?php
echo "Hi, my name is Jackal \nI like PHP";
?>
//输出:嗨,我叫Jackal,我喜欢PHP
echo "Hi, my name is Jackal <br />I like PHP";
如果我使用pre-tag

//outputs: Hi, my name is Jackal
//         I like PHP
<pre>
<?php
echo "Hi, my name is Jackal \nI like PHP";
?>
//输出:嗨,我叫Jackal
//我喜欢PHP
echo "Hi, my name is Jackal <br />I like PHP";
有人能解释为什么角色转义不起作用吗?
谢谢

,因为在您的浏览器中,
\n
只显示一个空格,不会显示为换行符,除非您使用预先格式化的HTML标记

echo "<pre>Hi, my name is Jackal \nI like PHP</pre>";
e、 g.浏览器中将显示以下换行符:

<p>Hello,
World!</p>
<br> 
echo“嗨,我叫Jackal
我喜欢PHP”;
echo "Hi, my name is Jackal <br />I like PHP";
或者这个也可以:

echo“嗨,我的名字叫Jackal\nI喜欢PHP”;
echo "Hi, my name is Jackal <br />I like PHP";

可以看出,
标记用于显示预格式化文本,因此
\n
显示为换行符。

因为在浏览器中
\n
仅显示空白,除非使用预格式化HTML标记
,否则不会显示为换行符

echo "<pre>Hi, my name is Jackal \nI like PHP</pre>";
\n
e、 g.浏览器中将显示以下换行符:

<p>Hello,
World!</p>
<br> 
echo“嗨,我叫Jackal
我喜欢PHP”;
echo "Hi, my name is Jackal <br />I like PHP";
或者这个也可以:

echo“嗨,我的名字叫Jackal\nI喜欢PHP”;
echo "Hi, my name is Jackal <br />I like PHP";

可以看出,
标记用于显示预格式化文本,因此
\n
显示为换行符。

字符转义正在工作。看看源代码,你会发现新的一行。为了使它在浏览器中可见,您需要一个html标记(

),或者包装
字符转义正在工作。看看源代码,你会发现新的一行。为了使其在浏览器中可见,您需要一个html标记(

)或包装
,如果您的html中有:

\n
echo nl2br("Hi, my name is Jackal \nI like PHP");
<p>Hello
    there</p>
你好, 世界

它出现在一行还是两行上

通常,答案是:空白被压缩成一个空格

但是,
的默认CSS为
空白:pre
,它不压缩空白


您应该
echo“
,或者将
空白:pre
(或者更好的是,
空白:pre-wrap
)应用于容器元素。

如果HTML中有此项:

<p>Hello
    there</p>
你好, 世界

它出现在一行还是两行上

通常,答案是:空白被压缩成一个空格

但是,
的默认CSS为
空白:pre
,它不压缩空白


您应该
echo“
,或者将
空白:pre
(或者更好的是,
空白:pre wrap
)应用到容器元素。

PHP正在解释该换行符。查看网页的源代码。您将看到源代码中有两行

但是,HTML处理换行符的方式不同。要在HTML中执行换行,请使用

标记。这将使HTML输出在网页上超过2行。但是,在源代码中,它仍将显示为一行(除非添加该换行符)


所做的是告诉HTML引擎输出准确的字符串,因为文本是预格式化的,包括解释该换行符。另外请注意,您应该在预格式化的块末尾添加一个结束标记。

PHP解释该换行符。查看网页的源代码。您将看到源代码中有两行

但是,HTML处理换行符的方式不同。要在HTML中执行换行,请使用

标记。这将使HTML输出在网页上超过2行。但是,在源代码中,它仍将显示为一行(除非添加该换行符)

所做的是告诉HTML引擎输出准确的字符串,因为文本是预格式化的,包括解释该换行符。另外请注意,您应该在预格式化的块末尾添加一个结束标记

是代码中的换行符(在写入文件时工作,但不输出到屏幕)

或者,您也可以使用nl2br,如下所示

是代码中的换行符(在写入文件时工作,但不输出到屏幕)

或者,您也可以使用nl2br,如下所示


php中的
newline
字符实际上是
echo
s新行本身

然而,php的
echo
语句的输出仍然是web浏览器的源代码。因此,浏览器会压缩所有额外的换行符和空格。例如:


尽管有空白。要解决这个问题,请使用

/

标记告诉浏览器换行,而不是告诉php换行。

php中的
换行符实际上是一个新行

然而,php的
echo
语句的输出仍然是web浏览器的源代码。因此,浏览器会压缩所有额外的换行符和空格。例如:


尽管有空白。要解决此问题,请使用

/

标记告诉浏览器换行,而不是告诉php换行。

您好,它确实显示在两行中。非常感谢。嗨,是的,它确实出现在两行中。非常感谢。非常感谢。它有两行。太棒了,如果这篇文章回答了你的问题,请点击左边的复选标记,让这成为你接受的答案。谢谢!它有两行。太棒了,如果这篇文章回答了你的问题,请点击左边的复选标记,让这成为你接受的答案。为什么建议使用XHTML?较旧的浏览器不支持XHTML。如果您是为较新的浏览器设计的,HTML5有更多的功能。如果您是为广泛的浏览器设计的,HTML4.01