PHP中动态HTML的输出技术_php基础

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

时间: 2024-11-03 03:20:51

PHP中动态HTML的输出技术_php基础的相关文章

PHP中动态HTML的输出技术

你可以在php程序中的任何地方使用 echo "hello world!"; 来输出你想输出的内容. 不过你将遇到以下麻烦: 1 - 当你试图在hello和world之间加入两个(或两个以上)空格, 你使用: echo "hello world!"; 你得到的输出还是一个空格,或者你在行首加入一个空格, 你的空格也将被忽略. 2 - 更糟的是输出用户输入的内容时,有心或无意的用户输入将 使你的输出变的一团糟,甚至给其他用户带来麻烦. 比如: <form act

iOS中动态更新补丁策略JSPatch运用基础二

iOS中动态更新补丁策略JSPatch运用基础二 一.引言     上篇博客中介绍了iOS开发中JSPatch引擎进行动态热修复的一些基础功能,其中包括向Objective-C类中添加类方法与成员方法.添加临时成员变量,使用JavaScript调用原生的Objective-C属性和方法等.本篇博客将基于上一篇继续介绍Objective-C中的一些特殊数据类型在JavaScript文件中的使用方法,博客中大部分内容扩展自JSPatch开源git的wiki:https://github.com/ba

iOS中动态更新补丁策略JSPatch运用基础一

iOS中动态更新补丁策略JSPatch运用基础         JSPatch是GitHub上一个开源的框架,其可以通过Objective-C的run-time机制动态的使用JavaScript调用与替换项目中的Objective-C属性与方法.其框架小巧,代码简洁,并且通过系统的JavaScriptCore框架与Objective-C进行交互,这使其在安全性和审核风险上都有很强的优势.Git源码地址:https://github.com/bang590/JSPatch. 一.从一个官方的小de

php中动态调用函数的方法_php技巧

本文实例讲述了php中动态调用函数的方法.分享给大家供大家参考.具体分析如下: php中你可以动态调用函数,分为以下步骤: 1. 定义一个函数 2. 将函数名(字符串)赋值给一个变量 3. 使用变量名代替函数名动态调用函数 详细代码如下所示: <?php function addition ($a, $b){ echo ($a + $b), "\n"; } $result = "addition"; $result (3,6); ?> 希望本文所述对大家

php+ajax实现无刷新动态加载数据技术_php实例

我们浏览有些网页的时候,当拉动浏览器的滚动条时到页底时,页面会继续自动加载更多内容供用户浏览.这种技术我暂且称它为滚屏加载技术.我们发现很多网站用到这种技术,必应图片搜索.新浪微博.QQ空间等将该技术应用得淋漓尽致. 滚屏加载技术,就是使用Javascript监视滚动条的位置,每次当滚动条到达浏览器窗口底部时,触发一个Ajax请求后台PHP程序,返回相应的数据,并将返回的数据追加到页面底部,从而实现了动态加载,其实就是一个典型的Ajax应用.本文将使用jQuery,结合PHP,mysql以及JS

简单的页面缓冲技术_php基础

作者:limodou 前言 其实说它为技术,也许不能说是真正的技术.这只不过是我自已想出来的页面处理的方法,当然与别人 的想法可能是一致的.不过我还是想给它一个好听的名字.那么我这里所指的页面缓冲是什么呢?就是指将动态生成的页面保存起来,供下一次的使用.这样下一次访问它可能就不需要动态生成了.就象提供了一个cache 一样.在我的网站上,也许你的网站也是如此,使用了象模板之类的技术,这样用户所看到的页面就 是动态生成的.但是一个页面对于你是这样,对于别人可能还是这样,即在一段时间内是不会变化的,

基于PHP与XML的PDF文档生成技术_php基础

摘要<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 本论文简要介绍了PHP.XML.PDF等技术的原理以及它们的应用情况.力图运用PHP面向对象的特性,构建出一套基于PHP和XML的在线PDF文档生成系统.文中详细探讨了整个系统的组成部分以及各自的实现过程.并在最后给出一个运用这套系统实现的动态创建报表的实例. Abstract This article introdu

php学习笔记 面向对象中[接口]与[多态性]的应用_php基础

复制代码 代码如下: <?php /* 接口技术 * * 接口是一种特殊的抽象类,抽象类又是一种特殊的类 * * 接口和抽象类是一样的作用 * * 因为在PHP是单继承的,如果使用抽象类,子类实现抽象类就不能再去继承其他的类了 * * 如果既想实现一些规范,又想继承其他类.就要使用接口. * * 接口和抽象类的对比 * * 1.作用相同,都不能创建对象,都需要子类去实现 * * 2.接口的声明和抽象类不一样 * * 3.接口被实现方式不一样 * * 4.接口中的所有方法必须是抽象方法,只能声明抽

PHP中创建并处理图象_php基础

在安装了一些第三方函数库之后,结合图形处理技能,你就可以迅速使用PHP创建和处理图像了.事实上,你也不需要很多几何学知识--因为我在中学的时候这门功课曾经不及格而现在却能使用PHP创建图像! 在使用基本的图像创建函数之前,需要安装GD库.要使用JPEG相关的图像创建函数还需要安装jpeg-6b.在图像中使用Type 1字体的时候还必须安装t1lib.asdf 在这里,你还需要对你的系统设置进行进一步地调整.首先安装t1lib并结束,然后是jpeg-6b.第三步安装GD函数库.确保以上三部分按顺序