您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

PHP中动态HTML的输出技术

添加时间:2014-7-27 1:18:40  添加: 思海网络 
你可以在php程序中的任何地方使用 echo ""; 来输出你想输出的内容。 

不过你将遇到以下麻烦: 

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)))); 

关键字:PHP、输出、程序

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站