strlen()
:返回给定的字符串string
的长度。例子如下:
mb_strlen:( string
$str[, string
$encoding= mb_internal_encoding() ] )
参数
str
:要检查长度的字符串。encoding
: 参数为字符编码。如果省略,则使用内部字符编码。区别于
strlen
它可以通过设置字符编码从而返回对应的字符数,很好的处理了中文字符串的长度问题。
addslashes ( string
$str) : string
返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(
'
)、双引号("
)、反斜线(\
)与 NUL(**NULL
** 字符)。
bin2hex ( string
$str) : string
把二进制的参数
str
转换为的十六进制的字符串。转换使用字节方式,高四位字节优先。
chop
:是rtrim()
的别名该函数删除
str
末端的空白字符(或者其他指定字符)并返回。
chr ( int $ascii ) : string
返回相对应于
ascii
所指定的单个字符。此函数与 ord() 是互补的。
crypt ( string
$str[, string
$salt] ) : string
返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。
基于标准 DES 算法的 crypt() 在输出内容的开始位置返回两个字符的盐值。它也只使用
str
的开始 8 个字符,所以更长的以相同 8 个字符开始的字符串也将生成相同的结果(当使用了相同的盐值时)。CRYPT_STD_DES
- 基于标准 DES 算法的散列使用 “./0-9A-Za-z” 字符中的两个字符作为盐值。在盐值中使用非法的字符将导致 crypt() 失败。CRYPT_EXT_DES
- 扩展的基于 DES 算法的散列。其盐值为 9 个字符的字符串,由 1 个下划线后面跟着 4 字节循环次数和 4 字节盐值组成。它们被编码成可打印字符,每个字符 6 位,有效位最少的优先。0 到 63 被编码为 “./0-9A-Za-z”。在盐值中使用非法的字符将导致 crypt() 失败。CRYPT_MD5
- MD5 散列使用一个以 $1$ 开始的 12 字符的字符串盐值。CRYPT_BLOWFISH
- Blowfish 算法使用如下盐值:“$2a$”,一个两位 cost 参数,“$” 以及 64 位由 “./0-9A-Za-z” 中的字符组合而成的字符串。在盐值中使用此范围之外的字符将导致 crypt() 返回一个空字符串。两位 cost 参数是循环次数以 2 为底的对数,它的范围是 04-31,超出这个范围将导致 crypt() 失败。 PHP 5.3.7 之前只支持 “$2a$” 作为盐值的前缀,PHP 5.3.7 开始引入了新的前缀来修正一个在Blowfish实现上的安全风险。可以参考» this document来了解关于这个修复的更多信息。总而言之,开发者如果仅针对 PHP 5.3.7及之后版本进行开发,那应该使用 “$2y$” 而非 “$2a$”CRYPT_SHA256
- SHA-256 算法使用一个以 $5$ 开头的 16 字符字符串盐值进行散列。如果盐值字符串以 “rounds=$” 开头,N 的数字值将被用来指定散列循环的执行次数,这点很像 Blowfish 算法的 cost 参数。默认的循环次数是 5000,最小是 1000,最大是 999,999,999。超出这个范围的 N 将会被转换为最接近的值。 CRYPT_SHA512
- SHA-512 算法使用一个以 $6$ 开头的 16 字符字符串盐值进行散列。如果盐值字符串以 “rounds=$” 开头,N 的数字值将被用来指定散列循环的执行次数,这点很像 Blowfish 算法的 cost 参数。默认的循环次数是 5000,最小是 1000,最大是 999,999,999。超出这个范围的 N 将会被转换为最接近的值 以不同散列类型使用
crypt()
htmlentities ( string
$string[, int
$flags= ENT_COMPAT | ENT_HTML401 [, string
$encoding= ini_get("default_charset") [, bool
$double_encode= **
TRUE** ]]] ) : string
将字符转换为 HTML 转义字符
implode ( string
$glue, array
$pieces) : string
将一个一维数组的值转化为字符串
参数:
glue
:默认为空的字符串。pieces
:你想要转换的数组。
md5_file ( string
$filename[, bool
$raw_output= **
FALSE** ] ) : string
计算指定文件的 MD5 散列值
参数:
filename
:文件名.raw_output
:如果被设置为 **TRUE
**,那么报文摘要将以原始的 16 位二进制格式返回.、
str_replace($search,$replace,$subject,$count)
子字符串替换
参数:
search
:查找的目标值,也就是 needle。一个数组可以指定多个目标。replace
:search
的替换值。一个数组可以被用来指定多重替换。subject
:执行替换的数组或者字符串。也就是 haystack。如果
subject
是一个数组,替换操作将遍历整个subject
,返回值也将是一个数组。count
:如果被指定,它的值将被设置为替换发生的次数。
str_split ( string
$string[, int
$split_length= 1 ] ) : array
将一个字符串转换为数组.
参数:
string
:输入字符串。split_length
:每一段的长度。返回值:如果指定了可选的
split_length
参数,返回数组中的每个元素均为一个长度为split_length
的字符块,否则每个字符块为单个字符。如果
split_length
小于 1,返回 **FALSE
**。如果split_length
参数超过了string
超过了字符串string
的长度,整个字符串将作为数组仅有的一个元素返回。
split ( string
$pattern, string
$string[, int
$limit] ) : array
用正则表达式将字符串分割到数组中
本函数返回一个字符串数组,每个单元为
string
经区分大小写的正则表达式pattern
作为边界分割出的子串。如果设定了limit
,则返回的数组最多包含limit
个单元,而其中最后一个单元包含了string
中剩余的所有部分。如果出错,则 split() 返回 **FALSE
**。
strcmp ( string
$str1, string
$str2) : int
二进制安全字符串比较
参数:
str1
:第一个字符串。str2
:第二个字符串。
返回值:如果
str1
小于str2
返回 < 0; 如果str1
大于str2
返回 > 0;如果两者相等,返回 0。
strcasecmp ( string
$str1, string
$str2) : int
二进制安全比较字符串(不区分大小写)。
与
strcmp
返回值一样
strstr($haystack,$needle,$before_needle)
查找字符串的首次出现.
参数:
$haystack
:输入字符串。$needle
:如果needle
不是一个字符串,那么它将被转化为整型并且作为字符的序号来使用。$before_needle
:若为 **TRUE
**,strstr()
将返回needle
在haystack
中的位置之前的部分。返回值:
返回字符串的一部分或者 **
FALSE**(如果未发现
needle)。
substr ( string
$string, int
$start[, int
$length] ) : string
返回字符串的子串,返回字符串
string
由start
和length
参数指定的子字符串。参数:
string
:输入字符串。必须至少有一个字符start
:如果start
是非负数,返回的字符串将从string
的start
位置开始,从 0 开始计算。例如,在字符串 “abcdef
” 中,在位置0
的字符是 “a
”,位置2
的字符串是 “c
” 等等。
preg_match ( string
$pattern, string
$subject[, array
&$matches[, int
$flags= 0 [, int
$offset= 0 ]]] ) : int
执行匹配正则表达,搜索
subject
与pattern
给定的正则表达式的一个匹配.参数:
$pattern
:要搜索的模式,字符串类型。$subject
:输入字符串。$matches
:如果提供了参数matches
,它将被填充为搜索结果。 $matches[0]将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。$flags
:可以被设置为以下标记值的组合:PREG_OFFSET_CAPTURE
- 如果传递了这个标记,对于每一个出现的匹配返回时会附加字符串偏移量(相对于目标字符串的字节数)。 注意:这会改变填充到
matches
参数的数组,使其每个元素成为一个由 第0
个元素是匹配到的字符串,第1
个元素是该匹配字符串 在目标字符串subject
中的偏移量。
$offset
:可选参数offset
用于 指定从目标字符串的某个位置开始搜索(单位是字节)
preg_match_all ( string
$pattern, string
$subject[, array
&$matches[, int
$flags= **
PREG_PATTERN_ORDER** [, int
$offset= 0 ]]] ) : int
执行一个全局正则表达式匹配,搜索
subject
中所有匹配pattern
给定正则表达式 的匹配结果并且将它们以flag
指定顺序输出到matches
中.在第一个匹配找到后, 子序列继续从最后一次匹配位置搜索.
参数与
preg_match
类似
intval($var,$base)
获取变量的整数值
参数:
var
:要转换成 integer 的数量值base
:转化所使用的进制
返回值:成功时返回
var
的 integer 值,失败时返回 0。 空的 array 返回 0,非空的 array 返回 1最大的值取决于操作系统。 32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。举例,在这样的系统上,
intval('1000000000000')
会返回 2147483647。64 位系统上,最大带符号的 integer 值是 9223372036854775807。字符串有可能返回 0,虽然取决于字符串最左侧的字符。 使用 整型转换 的共同规则
floatval($var): float
获取变量的浮点值,返回变量
var
的 float 数值。
strval($var):string
获取变量的字符串值
参数:
$var
settype($var,$type):bool
设置变量的类型
参数:
var
:要转换的变量。type
:`type` 的可能值为:的可能值为: - “boolean” (或为“bool”,从 PHP 4.2.0 起) - “integer” (或为“int”,从 PHP 4.2.0 起) - “float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用) - "string" - "array" - "object" - “null” (从 PHP 4.2.0 起)
返回值:成功时返回 **
TRUE
**, 或者在失败时返回 **FALSE
**。
使用if和switch写一个例子
如下:
用for foreach while
等循环结构写一个例子,结合前面的逻辑比较。
For循环
Foreach
:foreach 循环只适用于数组,并用于遍历数组中的每个键/值对。while循环
:只要指定的条件为真,while 循环就会执行代码块。