一般状况下,网站后台程序在使用用户输入的字符串(通常都是经过HTML表单提交)以前,都必须对这些字符串进行格式化处理,以便使其符合程序运行的标准,防止错误和漏洞的产生。在下面的内容中,将介绍一些可用的PHP函数来实现这过程。 数据库
字符串的整理 浏览器
字符串整理的第一步是清理字符串中多余的空格或其余冗余的字符。固然若是不将字符串存入一个文件或数据库中,或者不将它和别的字符串进行比较,这一步骤不是必需的。所以,咱们能够视状况而定,灵活的对其进行整理。 函数
为了实现字符串整理功能,PHP提供了3个很是有用的函数。在接收用记提交字符串脚本的开始处,当咱们要给表单输入变量定义简短变量名称时,可使用trim()函数来整理用户输入的数据,具体用法以下所示: post
$username=trim($_POST['username']);
$password=trim($_POST['password']);
$email=trim($_POST['email']); 网站
trim()函数能够除去字符串开始位置和结束位置的空格,并将结果字符串返回。默认状况下,除去的字符是换行符和回车符(n和r)、水平和垂直制表符(t和x0B)、字符串结束符()和空格。除了这些默认的过滤字符串以外,也能够该函数的第二个参数中提供其余要过滤的特殊字符。根据特定用途,可能会使用到ltrim()和rtrim()函数。 ip
这两个函数的功能都相似于trim()函数,它们均可以将须要处理的字符串做为输入的参数,而后返回通过格式化的字符串。不一样之处在于:trim()函数将除去整个字符串先后的空格,ltrim()只从字符串的开始处(左边)去除空格,rtrim()只从字符串的结束处(右边)除去空格。 开发
格式化字符串 字符串
PHP提供了一系列可使用的函数来从新格式化字符串,这些函数的工做方式各不相同,能够在程序的多个地方使用,开发人员能够灵活的来使用它们。 get
一、nl2br()函数 email
nl2br()函数将字符串做为输入的参数,用XHTML中的<br />标记字符串的换行符。这对于将一很长的字符串显示在浏览器中是很是有利的。通常状况下,HTML会忽略纯空格,因此若是不使用nl2br()函数来过滤输出的结果,那么它看上去就是单独的一行(除非浏览器窗口进行了强制的换行)。
二、print()函数
一般咱们都习惯使用echo语句将字符串输出,在PHP中也支持print()结构,它实现的功能与echo相同,惟一不一样之处在于其具备返回值:true或false,表示输出成功或失败。除了print()还可使用printf()和sprintf(),来实现一些复杂的格式。它们的工做方式基本相同,只是printf()将一个格式化的字符串输出到浏览器中,而sprintf()返回一个格式化了的字符串。
三、改变字符串中的字母大小写
有时候须要对输入的字母大小写进行格式化,PHP提供了一些函数能够实现改变字符串中的字母大小写这一功能,这些函数及其做用以下所示:
strtoupper():将字符串中的字母转换为大写、strtolower():将字符串中的字母转换成小写、ucfirst():若是字符串的第一个字符是字母,就将该字符转换成大写、ucwords() 将字符串每一个单词的第一个字母转换为大写。
格式化字符串以便存储
对于字符中来讲,某些字符确定是有效的,可是当将数据插入到数据库中的时候可能会引发一些问题,由于数据库会将这些字符解释成控制符。这些有问题的字符就是引号(单引和双引)、反斜杠()和NULL字符。
PHP提供了两个专门用于转义字符串的函数。在将任何字符串写到数据库以前,若是你的PHP的默认配置尚未启用该功能,那么你就应该使用addslashes()将它们从新格式化,例如:
$post_content = addslashes(trim($_POST['post_content']));
和其余字符串格式化函数同样,addslashes()须要一个字符串做为转入参数,通过该函数处理,将返回一个从新格式化后的字符串。
自动添加或去除转义字符功能是由PHP的magic_quotes_gpc配置指令控制的。在PHP新版本的默认安装状况下,该指令是启用的。gpc表示GET、POST、COOKIE,是一个字母的组合。这就意味着,来自这些方法或方式的变量将被自动包括在引号内。使用get_magic_quotes_gpc()函数,能够检查系统中的这个指令是否已经启用。若是已经启用,在显示用户数据以前,必须调用stripslashes()函数;不然,转义字符会被显示出来。