时光不改's 记忆碎片

PHP常见函数总结

字数统计: 1.7k阅读时长: 6 min
2018/10/08 Share

1. empty()

定义
用于检查一个变量是否为空。
语法
bool empty (mixed $var)

empty本质上与!isset($var) || $var == false 等价。

2. substr()

定义
substr() 函数返回字符串的一部分。
注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。

语法
substr(string,start,length)

参数 描述
string 必需。规定要返回其中一部分的字符串。
start 必需。规定在字符串的何处开始。
length 可选。规定被返回字符串的长度。默认是直到字符串的结尾。
  • start参数
    • 正数 - 在字符串的指定位置开始
    • 负数 - 在从字符串结尾开始的指定位置开始
    • 0 - 在字符串中的第一个字符处开始
  • length参数
    • 正数 - 从 start 参数所在的位置返回的长度
    • 负数 - 从字符串末端返回的长度

3. strpos()

定义
查找字符串在另一字符串中第一次出现的位置
语法
strpos(string,find,start)
注释
1、函数区分大小写
2、该函数二进制安全
相关函数:

  • strrpos() - 查找字符串在另一字符串中最后一次出现的位置(区分大小写)
  • stripos() - 查找字符串在另一字符串中第一次出现的位置(不区分大小写)
  • strripos() -查找字符串在另一字符串中最后一次出现的位置(不区分大小写)

4 strncmp()

定义
比较两个字符串(区分大小写)
语法
strncmp(string1,string2,length)
注释
strncmp() 是二进制安全的,且区分大小写。

5.explode()/implode()

定义
使用一个字符串分割另一个字符串,并返回由字符串组成的数组。/把数组元素合为一个字符串
语法
explode(separator,string,limit)
implode(separator,array)
|参数 |描述|
|—–|—–|
|separator |必需。规定在哪里分割字符串。|
|string |必需。要分割的字符串。|
|limit |可选。规定所返回的数组元素的数目。|
limit可能的值:

  • 大于 0 - 返回包含最多 limit 个元素的数组
  • 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
  • 0 - 会被当做 1, 返回包含一个元素的数组
参数 描述
separator 可选。规定数组元素之间放置的内容。默认是 “”(空字符串)。
array 必需。要组合为字符串的数组。

注释
1、“separator”参数不能是一个空字符串。
2、该函数是二进制安全的。

6.serialize()

定义
产生一个可存储的值的表示
语法
string serialize ( mixed $value )
serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。

这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。

想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。

当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 _ _sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 _ _wakeup() 成员函数。
实例

1
2
3
4
5
6
7
8
<?php
$a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut');

//序列化数组
$s = serialize($a);
echo $s;
//输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}
?>

7.foreach()

定义
遍历数组的简单方式
语法

1
2
3
4
foreach (array_expression as $value)
​ statement
foreach (array_expression as $key => $value)
​ statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。

8.in_array()

定义
搜索数组中是否存在指定的值。
语法
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
|参数 |描述|
|——-|——-|
|needle | 必需。规定要在数组搜索的值。|
|haystack |必需。规定要搜索的数组。|
|strict |可选。如果该参数设置为 TRUE,则 in_array() 函数检查搜索的数据与数组的值的类型是否相同。|

9.preg_replace()

定义
执行一个正则表达式的搜索和替换。
语法
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

搜索 subject 中匹配 pattern 的部分, 以 replacement 进行替换。

参数 描述
$pattern 要搜索的模式,可以是字符串或一个字符串数组。
$replacement 用于替换的字符串或字符串数组。
$subject 要搜索替换的目标字符串或字符串数组。
$limit 可选,对于每个模式用于每个 subject 字符串的最大可替换次数。 默认是-1(无限制)。
$count 可选,为替换执行的次数。

返回值
如果 subject 是一个数组, preg_replace() 返回一个数组, 其他情况下返回一个字符串。

如果匹配被查找到,替换后的 subject 被返回,其他情况下 返回没有改变的 subject。如果发生错误,返回 NULL。

9.file_get_contents()

定义
file_get_contents() 函数把整个文件读入一个字符串中。

和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。

file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法。如果操作系统支持,还会使用内存映射技术来增强性能。

语法
file_get_contents(path,include_path,context,start,max_length)

参数 描述
path 必需。规定要读取的文件。
include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 “1”。
context 可选。规定文件句柄的环境。是一套可以修改流的行为的选项。若使用 null,则忽略。
start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
max_length 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。

9.file()

定义
定义和用法
file() 函数把整个文件读入一个数组中。

与 file_get_contents() 类似,不同的是 file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。

如果失败,则返回 false。

语法
file(path,include_path,context)
|参数 |描述|
|—–|—–|
|path |必需。规定要读取的文件。|
|include_path |可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 “1”。|
|context |可选。规定文件句柄的环境。context 是一套可以修改流的行为的选项。若使用 null,则忽略。|

CATALOG
  1. 1. 1. empty()
  2. 2. 2. substr()
  3. 3. 3. strpos()
  4. 4. 4 strncmp()
  5. 5. 5.explode()/implode()
  6. 6. 6.serialize()
  7. 7. 7.foreach()
  8. 8. 8.in_array()
  9. 9. 9.preg_replace()
  10. 10. 9.file_get_contents()
  11. 11. 9.file()