PHP中动态HTML的输出技术


Posted in PHP onOctober 09, 2006

你可以在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))));

PHP 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
PHP新手上路(十)
Oct 09 PHP
PHP 多维数组排序(usort,uasort)
Jun 30 PHP
PHP中的use关键字概述
Jul 23 PHP
php实现图片等比例缩放代码
Jul 23 PHP
Yii2 rbac权限控制之菜单menu实例教程
Apr 28 PHP
php实现图片上传、剪切功能
May 07 PHP
php中mkdir()函数的权限问题分析
Sep 24 PHP
php 如何设置一个严格控制过期时间的session
May 05 PHP
php实现的pdo公共类定义与用法示例
Jul 19 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 PHP
PHP编程一定要改掉的5个不良习惯
Sep 18 PHP
也谈截取首页新闻 - 范例
Oct 09 #PHP
PHP4实际应用经验篇(6)
Oct 09 #PHP
PHP4实际应用经验篇(7)
Oct 09 #PHP
PHP4实际应用经验篇(9)
Oct 09 #PHP
PHP4实际应用经验篇(8)
Oct 09 #PHP
一个简单的MySQL数据浏览器
Oct 09 #PHP
PHP生成便于打印的网页
Oct 09 #PHP
You might like
DC游戏Steam周三特惠 《蝙蝠侠》阿卡姆系列平史低
2020/04/09 欧美动漫
php下保存远程图片到本地的办法
2010/08/08 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
jqPlot jquery的页面图表绘制工具
2009/07/25 Javascript
javascript XMLHttpRequest对象全面剖析
2010/04/24 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
一篇文章搞定JavaScript类型转换(面试常见)
2017/01/21 Javascript
javascript数组定义的几种方法
2017/10/06 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
总结JavaScript在IE9之前版本中内存泄露问题
2018/04/28 Javascript
vue动态改变背景图片demo分享
2018/09/13 Javascript
ajaxfileupload.js实现上传文件功能
2019/04/19 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
numpy数组之存取文件的实现示例
2019/05/24 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
python RSA加密的示例
2020/12/09 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
施工安全协议书
2013/12/11 职场文书
初三学生评语大全
2014/04/24 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
致800米运动员广播稿(10篇)
2014/10/17 职场文书
党员活动总结
2015/02/04 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
无罪辩护词范文
2015/05/21 职场文书
人与自然的观后感
2015/06/18 职场文书
先进基层党组织主要事迹材料
2015/11/03 职场文书