background image

你可以在 php

 

程序中的任何地方使用

echo "hello world!"; 

 

来输出你想输出的内容。

 

不过你将遇到以下麻烦:

1 - 
当你试图在 hello 和 world

 

之间加入两个(或两个以上)空格,

 

你使用:
echo "hello world!"; 

 

你得到的输出还是一个空格,或者你在行首加入一个空格,

 

你的空格也将被忽略。

2 - 

 

更糟的是输出用户输入的内容时,有心或无意的用户输入将

 

使你的输出变的一团糟,甚至给其他用户带来麻烦。

 

比如:

<form action="output.php"> 
<textarea name="in_txt"> 
</textarea> 
<br> 
<input type="submit"> 
</form> 

 

如果用户输入中有不止一行的内容,那么你如果简单地
echo $in_txt; 

 

用户的换行将被忽略。

3 - 
还是上面的例子,大部分情况我们不希望用户输入 html 

 

代码,因为你不知道用户会输入什么。

 

用户甚至可以写一段代码使你网站所有的用户死机。

 

当然你不希望那样,但是你如果简单地
echo $in_txt; 

 

就不可能避免。

 

解决方法:
对于 1,可以使用 ereg_replace(" {2}","$nbsp;&nbsp;",$in_txt) 
两个在一起的空格将变成两个空格的转义符($nbsp

 

)。

对于 2,nl2br($in_txt)

 

是最好的选择,这样所以的换行就换成