时间: 2021-07-31 作者:daque
你不妨在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; ",$in_txt) 两个在一道的空格将形成两个空格的转义符($nbsp)。 对于2,nl2br($in_txt)是最佳的采用,如许以是的换行就换成 "<br>"了。 对于3,安定地表露用户输出的html代码,php中也有特意的因变量。 htmlspecialchars($in_txt)就不妨了。 其余,即使$in_txt是从mysql数据库中提出的,那么他在往日插时髦 确定要运用addslashes(),相映的,掏出时就确定要stripslashes()。 归纳: 即使$in_txt是用户输出的文本,普遍不妨如许输入: echo ereg_replace(" {2}"," ",nl2br(htmlspecialchars(stripslashes($in_txt))));