PHP 常用函数集合

时间:2024-11-10 21:36:38

PHP is_numeric() 函数

由 陈 创建, 最后一次修改 2016-12-02

定义和用法

is_numeric() — 检测变量是否为数字或数字字符串

语法

bool is_numeric ( mixed $var )

如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE

参数 描述
var 允许传入任意参数。

技术细节

返回值: 如果 var 是数字和数字字符串则返回 TRUE,否则返回 FALSE。
   

实例

<?php
$Temperature = array(666,'w3cschool','666',null);

foreach ($Temperature as $key => $value) {
    
    if(is_numeric($value)){

print("参数是数字或数字字符串<br/>");
    }else{

print("参数不是数字或数字字符串<br/>");
    }
}
?>
--------------------------------------------------------

PHP array_column() 函数

实例

从记录集中取出 last_name 列:

<?php
// 表示由数据库返回的可能记录集的数组
$a = array(
array(
'id' => 5698,
'first_name' => 'Bill',
'last_name' => 'Gates',
),
array(
'id' => 4767,
'first_name' => 'Steve',
'last_name' => 'Jobs',
),
array(
'id' => 3809,
'first_name' => 'Mark',
'last_name' => 'Zuckerberg',
)
); $last_names = array_column($a, 'last_name');
print_r($last_names);
?>

输出:

Array
(
[0] => Gates
[1] => Jobs
[2] => Zuckerberg
)

定义和用法

array_column() 返回输入数组中某个单一列的值。

语法

array_column(array,column_key,index_key);
参数 描述
array 必需。规定要使用的多维数组(记录集)。
column_key

必需。需要返回值的列。

可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。

该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。

index_key 可选。用作返回数组的索引/键的列。

技术细节

返回值: 返回数组,此数组的值为输入数组中某个单一列的值。
 

--------------------------------------------------------

PHP array_search() 函数

实例

在数组中搜索键值 "red",并返回它的键名:

<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a);
?>

运行实例

定义和用法

array_search() 函数在数组中搜索某个键值,并返回对应的键名。

详细说明

array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。

在 PHP 4.2.0 之前,函数在失败时返回 null 而不是 false。

如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。

语法

array_search(value,array,strict)
参数 描述
value 必需。规定需要搜素的键值。
array 必需。规定被搜索的数组。
strict

可选。如果该参数被设置为 TRUE,则函数在数组中搜索数据类型和值都一致的元素。可能的值:

  • true
  • false - 默认

如果设置为 true,则在数组中检查给定值的类型,数字 5 和字符串 5 是不同的(参见实例 2)。

技术细节

返回值:

如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。

如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。

------------------------------------------------------------

PHP in_array() 函数

实例

在数组中搜索值 "Glenn" ,并输出一些文本:

<?php
$people = array("Bill", "Steve", "Mark", "David"); if (in_array("Mark", $people))
{
echo "匹配已找到";
}
else
{
echo "匹配未找到";
}
?>

运行实例

定义和用法

in_array() 函数搜索数组中是否存在指定的值。

注释:如果 search 参数是字符串且 type 参数被设置为 TRUE,则搜索区分大小写。

语法

in_array(search,array,type)
参数 描述
search 必需。规定要在数组搜索的值。
array 必需。规定要搜索的数组。
type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

说明

如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。

如果没有在数组中找到参数,函数返回 false。

注释:如果 search 参数是字符串,且 type 参数设置为 true,则搜索区分大小写。

技术细节

返回值: 如果在数组中找到值则返回 TRUE,否则返回 FALSE。

-----------------------------------------------------------------

PHP array_unique() 函数

实例

移除数组中重复的值:

<?php
$a=array("a"=>"red","b"=>"green","c"=>"red");
print_r(array_unique($a));
?>

运行实例

定义和用法

array_unique() 函数移除数组中的重复的值,并返回结果数组。

当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。

返回的数组中键名不变。

注释:被保留的数组将保持第一个数组项的键名类型。

语法

array_unique(array)
参数 描述
array 必需。规定数组。
sortingtype

可选。规定如何比较数组元素/项目。可能的值:

  • SORT_STRING - 默认。把项目作为字符串来比较。
  • SORT_REGULAR - 把每一项按常规顺序排列(Standard ASCII,不改变类型)。
  • SORT_NUMERIC - 把每一项作为数字来处理。
  • SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。

说明

array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。

技术细节

返回值: 返回被过滤的数组。

-------------------------------------------------------------------

PHP array_merge() 函数

实例

把两个数组合并为一个数组:

<?php
$a1=array("red","green");
$a2=array("blue","yellow");
print_r(array_merge($a1,$a2));
?>

运行实例

定义和用法

array_merge() 函数把一个或多个数组合并为一个数组。

提示:您可以向函数输入一个或者多个数组。

注释:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。

注释:如果您仅向 array_merge() 函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引(参见下面的实例 1)。

提示:该函数与 array_merge_recursive() 函数之间的不同是在处理两个或更多个数组元素有相同的键名的情况。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。

语法

array_merge(array1,array2,array3...)
参数 描述
array1 必需。规定数组。
array2 可选。规定数组。
array3 可选。规定数组。

技术细节

返回值: 返回合并的数组。

---------------------------------------------------------------------------------

PHP implode() 函数

实例

把数组元素组合为字符串:

<?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo implode(" ",$arr);
?>

运行实例

定义和用法

implode() 函数返回由数组元素组合成的字符串。

注释:implode() 函数接受两种参数顺序。但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在 string 参数之前才行。

注释:implode() 函数的 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。

注释:该函数是二进制安全的。

语法

implode(separator,array)
参数 描述
separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array 必需。要组合为字符串的数组。

技术细节

返回值: 返回由数组元素组合成的字符串。

---------------------------------------------------------------------------

PHP count() 函数

实例

返回数组中元素的数目:

<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>

运行实例

定义和用法

count() 函数返回数组中元素的数目。

语法

count(array,mode);
参数 描述
array 必需。规定数组。
mode

可选。规定模式。可能的值:

  • 0 - 默认。不对多维数组中的所有元素进行计数
  • 1 - 递归地计数数组中元素的数目(计算多维数组中的所有元素)

说明

count() 函数计算数组中的单元数目或对象中的属性个数。

对于数组,返回其元素的个数,对于其他值,返回 1。如果参数是变量而变量没有定义,则返回 0。

如果 mode 被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数。

技术细节

返回值: 返回数组中元素的数目。

-------------------------------------------------------------------------

PHP strtotime() 函数

实例

将英文文本日期时间解析为 Unix 时间戳:

<?php
echo(strtotime("now") . "<br>");
echo(strtotime("15 October 1980") . "<br>");
echo(strtotime("+5 hours") . "<br>");
echo(strtotime("+1 week") . "<br>");
echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "<br>");
echo(strtotime("next Monday") . "<br>");
echo(strtotime("last Sunday"));
?>

运行实例

定义和用法

strtotime() 函数将任何英文文本的日期或时间描述解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。

注意:如果年份表示使用两位数格式,则值 0-69 会映射为 2000-2069,值 70-100 会映射为 1970-2000。

注意:请注意 m/d/y 或 d-m-y 格式的日期,如果分隔符是斜线(/),则使用美洲的 m/d/y 格式。如果分隔符是横杠(-)或者点(.),则使用欧洲的 d-m-y 格式。为了避免潜在的错误,您应该尽可能使用 YYYY-MM-DD 格式或者使用 date_create_from_format() 函数。

语法

strtotime(time,now);
参数 描述
time 必需。规定日期/时间字符串。
now 可选。规定用来计算返回值的时间戳。如果省略该参数,则使用当前时间。

技术细节

返回值: 若成功则返回时间戳,失败则返回 FALSE。

----------------------------------------------------------------

PHP array_values() 函数

实例

返回数组的所有值(非键名):

<?php
$a=array("Name"=>"Bill","Age"=>"60","Country"=>"USA");
print_r(array_values($a));
?>

运行实例

定义和用法

array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名。

提示:被返回的数组将使用数值键,从 0 开始并以 1 递增。

语法

array_values(array)
参数 描述
array 必需。规定数组。

技术细节

返回值: 返回包含数组中所有的值的数组。

-------------------------------------------------------
import方法是ThinkPHP框架用于类库导入的封装实现,尤其对于项目类库、扩展类库和第三方类库的导入支持,import方法早期的版本可以和java的import方法一样导入目录和通配符导入,后来考虑到性能问题,在后续的版本更新中不断改进和简化了,所以现在的用法比较简单明了。调用格式:
import('类库名', '起始路径', '类库后缀')
imprt方法有一个别名vendor方法,专门用于导入第三方类库,区别在于起始路径和类库后缀默认值不同。
我们来分析下具体的用法:
导入系统基类库

系统基类库其实就是指的Think类库包,所在目录就是指框架的核心Lib目录,import方法可以用于导入系统基类库,例如:

import('Think.Util.Array');

复制代码

表示导入系统目录下面的Lib/Util/Array.class.php 类库文件,相当于我们这样使用

require THINK_PATH.'Lib/Util/Array.class.php';

复制代码

可以支持多级目录,例如:

import('Think.Util.U1.ClassA');

复制代码

import('Think.Util.U1.A2.ClassB');

复制代码

通过import方法导入类库后,就可以进行类库的实例化操作了。
导入扩展类库

扩展类库位于Extend/Library目录下面,这是系统的公共扩展类库目录,目前支持的扩展类库包只有ORG和Com包。

import('ORG.Util.Image');
    import('Com.Sina.OAuth');

复制代码

会导入扩展目录下面的第三方类库(分别是Extend/Library/ORG/Util/Image.class.php和Extend/Library/Com/Sina/OAuth.class.php
类库文件),第三方类库包只能支持ORG和Com两种,下面的子目录可以随意添加。
导入项目应用类库

如果没有指定起始导入路径的话,类库包Think、ORG、Com之外的都会被认为是导入项目应用类库,例如:

import("MyApp.Action.UserAction");
    import("MyApp.Model.InfoModel");

复制代码

表示导入MyApp项目的UserAction和InfoModel类库文件,由于通常,我们都是导入当前项目下面的类库,所以可以简写成:

import("@.Action.UserAction");
    import("@.Model.InfoModel");

复制代码

@符号表示导入当前项目下面的类库,这种方式也一定程度上方便了项目类库的代码移植,如果项目名称改变或者移动到其它项目下面的时候,写法不需要改变。
导入非标准类库文件

这里所说的非标准类库文件,主要是指位于特殊位置或者非.class.php后缀的类库文件。像导入基类库、扩展类库和项目类库都是基于框架规范的目录下面,如果我们需要导入项目的Common目录下面的MyClass.php文件,则可以采用:

import('Common.MyClass',APP_PATH,'.php');

复制代码

或者

import('MyClass',APP_PATH.'Common','.php');

复制代码

或者要导入当前目录下面的RBAC类库

import("RBAC.AccessDecisionManager",dirname(__FILE__),".php");

复制代码

还有一种特殊情况,是类库命名的特殊性。按照系统的规则,import方法是无法导入具有点号的类库文件的,因为点号会直接转化成斜线,例如我们定义了一个名称为User.Info.class.php 的文件的话,采用:

import("ORG.User.Info");

复制代码

方式加载的话就会出现错误,导致加载的文件不是ORG/User.Info.class.php 文件,而是ORG/User/Info.class.php 文件,这种情况下,我们可以使用:

import("ORG.User#Info");

复制代码

来导入。
第三方类库导入

ThinkPHP
的基类库都是以.class.php 为后缀的,这是系统内置的一个约定,当然也可以通过 import 的参数来控制,
为了更加方便引入其他框架和系统的类库,
系统还提供了一个import方法的别名vendor,专门用于导入第三方类库,并且默认的起始目录和类文件后缀有区别。第三方类库位于系统扩展目录下的Vendor
目录, 例如,我们把 Zend 的 Filter\Dir.php 放到 Vendor 目录下面,这个时候 Dir 文件的路径就是
Vendor\Zend\Filter\Dir.php,我们使用vendor 方法导入只需要使用:

Vendor('Zend.Filter.Dir');

复制代码

就可以导入Dir类库了。
Vendor方法也可以支持和import方法一样的基础路径和文件名后缀参数,例如:

Vendor('Zend.Filter.Dir',dirname(__FILE__),'.class.php');

复制代码

别名导入

除了命名空间的导入方式外,import方法还可以支持别名导入,要使用别名导入,首先要定义别名,我们可以在项目配置目录下面增加alias.php 用以定义项目中需要用到的类库别名,例如:

return array(
    'rbac' =>LIB_PATH.'Common/Rbac.class.php',
    'page' =>LIB_PATH.'Common/Page.class.php',
    );

复制代码

那么,现在就可以直接使用:

import("rbac");
    import("page");

复制代码

导入Rbac和Page类,别名导入方式禁止使用import方法的第二和第三个参数,别名导入方式的效率比命名空间导入方式要高效,缺点是需要预先定义相关别名。
可以为某些需要的类库定义别名,那么无需定义自动加载路径也可以快速的自动加载。
一般情况下,由于框架内部采用了自动加载方式,所以大多数情况下面不需要用户手动导入类库文件,通常用于导入扩展类库和第三方类库的情况居多。而且配合别名定义和自动加载路径的定义,也能减少用户手动导入类库的情况。
------------------------------------------------------------------
is_numcomma()检测变量是否是数字或逗号。
------------------------------------------------------------------

PHP join() 函数

实例

把数组元素组合为一个字符串:

<?php
$arr = array('Hello','World!','I','love','Shanghai!');
echo join(" ",$arr);
?>

运行实例

定义和用法

join() 函数返回由数组元素组合成的字符串。

join() 函数是 implode() 函数的别名。

注释:join() 函数接受两种参数顺序。但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在 string 参数之前才行。

注释:join() 函数的 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。

语法

join(separator,array)
参数 描述
separator 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。
array 必需。要组合为字符串的数组。

技术细节

返回值: 返回由数组元素组合成的字符串。

--------------------------------------------------------------------

PHP explode() 函数

实例

把字符串打散为数组:

<?php
$str = "Hello world. I love Shanghai!";
print_r (explode(" ",$str));
?>

运行实例

定义和用法

explode() 函数把字符串打散为数组。

注释:"separator" 参数不能是空字符串。

注释:该函数是二进制安全的。

语法

explode(separator,string,limit)
参数 描述
separator 必需。规定在哪里分割字符串。
string 必需。要分割的字符串。
limit

可选。规定所返回的数组元素的数目。

可能的值:

  • 大于 0 - 返回包含最多 limit 个元素的数组
  • 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组
  • 0 - 返回包含一个元素的数组

技术细节

返回值: 返回字符串的数组
PHP 版本: 4+
更新日志: 在 PHP 4.0.1 中,新增了 limit 参数。在 PHP 5.1.0 中,新增了对负数 limit 的支持。

实例

使用 limit 参数来返回一些数组元素:

<?php
$str = 'one,two,three,four'; // 零 limit
print_r(explode(',',$str,0)); // 正的 limit
print_r(explode(',',$str,2)); // 负的 limit
print_r(explode(',',$str,-1));
?>

------------------------------------------------------------------

ini_set

(PHP 4,PHP 5,PHP 7)

ini_set—设置一个配置选项的值

描述

字符串 ini_set(字符串 varname美元,字符串 美元的价值

设置一个配置选项的值。配置选项
将脚本的执行过程中保持这种新的价值,并将恢复
在剧本的结尾。

参数

变量名

不是所有可用的选项可以使用ini_set()。有一个列表中的所有可用的选项
附录

新的价值

对于期权的新价值。

返回值

如果成功返回旧值,错误的对失效。

实例

1例# INI选项设置


<?PHP
回声ini_get(“display_errors”);

如果(!ini_get(“display_errors”)){
    ini_set(“display_errors”,“1”);
}

回声ini_get(“display_errors”);
?>

参见

-------------------------------------------------------------------

PHP Date / Time 函数

PHP Date/Time 简介

Date/Time 函数允许您从 PHP 脚本运行的服务器上获取日期和时间。您可以使用 Date/Time 函数通过不同的方式来格式化日期和时间。

注释:这些函数依赖于服务器的本地设置。使用这些函数时请记住要考虑夏令时和闰年。

安装

PHP Date/Time 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。

Runtime 配置

Date/Time 函数的行为受到 php.ini 中设置的影响:

名称 描述 默认 PHP 版本
date.timezone 默认时区(所有的 Date/Time 函数使用该选项) "" PHP 5.1
date.default_latitude 默认纬度(date_sunrise() 和 date_sunset() 使用该选项) "31.7667" PHP 5.0
date.default_longitude 默认经度(date_sunrise() 和 date_sunset() 使用该选项) "35.2333" PHP 5.0
date.sunrise_zenith 默认日出天顶(date_sunrise() 和 date_sunset() 使用该选项) "90.83" PHP 5.0
date.sunset_zenith 默认日落天顶(date_sunrise() 和 date_sunset() 使用该选项) "90.83" PHP 5.0

PHP 5 Date/Time 函数

函数 描述
checkdate() 验证格利高里日期。
date_add() 添加日、月、年、时、分和秒到日期。
date_create_from_format() 返回根据指定格式进行格式化的新的 DateTime 对象。
date_create() 返回新的 DateTime 对象。
date_date_set() 设置新日期。
date_default_timezone_get() 返回由所有的 Date/Time 函数使用的默认时区。
date_default_timezone_set() 设置由所有的 Date/Time 函数使用的默认时区。
date_diff() 返回两个日期间的差值。
date_format() 返回根据指定格式进行格式化的日期。
date_get_last_errors() 返回日期字符串中的警告/错误。
date_interval_create_from_date_string() 从字符串的相关部分建立 DateInterval。
date_interval_format() 格式化时间间隔。
date_isodate_set() 设置 ISO 日期。
date_modify() 修改时间戳。
date_offset_get() 返回时区偏移。
date_parse_from_format() 根据指定的格式返回带有关于指定日期的详细信息的关联数组。
date_parse() 返回带有关于指定日期的详细信息的关联数组。
date_sub() 从指定日期减去日、月、年、时、分和秒。
date_sun_info() 返回包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。
date_sunrise() 返回指定日期与位置的日出时间。
date_sunset() 返回指定日期与位置的日落时间。
date_time_set() 设置时间。
date_timestamp_get() 返回 Unix 时间戳。
date_timestamp_set() 设置基于 Unix 时间戳的日期和时间。
date_timezone_get() 返回给定 DateTime 对象的时区。
date_timezone_set() 设置 DateTime 对象的时区。
date() 格式化本地日期和时间。
getdate() 返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
gettimeofday() 返回当前时间。
gmdate() 格式化 GMT/UTC 日期和时间。
gmmktime() 返回 GMT 日期的 UNIX 时间戳。
gmstrftime() 根据区域设置对 GMT/UTC 日期和时间进行格式化。
idate() 将本地时间/日期格式化为整数。
localtime() 返回本地时间。
microtime() 返回当前时间的微秒数。
mktime() 返回日期的 Unix 时间戳。
strftime() 根据区域设置对本地时间/日期进行格式化。
strptime() 解析由 strftime() 生成的时间/日期。
strtotime() 将任何英文文本的日期或时间描述解析为 Unix 时间戳。
time() 返回当前时间的 Unix 时间戳。
timezone_abbreviations_list() 返回包含夏令时、偏移量和时区名称的关联数组。
timezone_identifiers_list() 返回带有所有时区标识符的索引数组。
timezone_location_get() 返回指定时区的位置信息。
timezone_name_from_abbr() 根据时区缩略语返回时区名称。
timezone_name_get() 返回时区的名称。
timezone_offset_get() 返回相对于 GMT 的时区偏移。
timezone_open() 创建新的 DateTimeZone 对象。
timezone_transitions_get() 返回时区的所有转换。
timezone_version_get() 返回时区数据库的版本。

PHP 5 预定义的 Date/Time 常量

常量 描述
DATE_ATOM Atom (例如:2005-08-15T16:13:03+0000)
DATE_COOKIE HTTP Cookies (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_ISO8601 ISO-8601 (例如:2005-08-14T16:13:03+0000)
DATE_RFC822 RFC 822 (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC850 RFC 850 (例如:Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1036 RFC 1036 (例如:Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1123 RFC 1123 (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC2822 RFC 2822 (Sun, 14 Aug 2005 16:13:03 +0000)
DATE_RSS RSS (Sun, 14 Aug 2005 16:13:03 UTC)
DATE_W3C World Wide Web Consortium (例如: 2005-08-14T16:13:03+0000)

格式字串可以识别以下 format 参数的字符串 format 字符     说明     返回值例子
日     ---     ---
d     月份中的第几天,有前导零的 2 位数字     01 到 31
D     星期中的第几天,文本表示,3 个字母     Mon 到 Sun
j     月份中的第几天,没有前导零     1 到 31
l("L"的小写字母)     星期几,完整的文本格式     Sunday 到 Saturday
N     ISO-8601 格式数字表示的星期中的第几天(PHP 5.1.0 新加)     1(表示星期一)到 7(表示星期天)
S     每月天数后面的英文后缀,2 个字符     st,nd,rd 或者 th。可以和 j 一起用
w     星期中的第几天,数字表示     0(表示星期天)到 6(表示星期六)
z     年份中的第几天     0 到 365
星期     ---     ---
W     ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的)     例如:42(当年的第 42 周)
月     ---     ---
F     月份,完整的文本格式,例如 January 或者 March     January 到 December
m     数字表示的月份,有前导零     01 到 12
M     三个字母缩写表示的月份     Jan 到 Dec
n     数字表示的月份,没有前导零     1 到 12
t     给定月份所应有的天数     28 到 31
年     ---     ---
L     是否为闰年     如果是闰年为 1,否则为 0
o     ISO-8601 格式年份数字。这和 Y 的值相同,只除了如果 ISO 的星期数(W)属于前一年或下一年,则用那一年。(PHP 5.1.0 新加)     Examples: 1999 or 2003
Y     4 位数字完整表示的年份     例如:1999 或 2003
y     2 位数字表示的年份     例如:99 或 03
时间     ---     ---
a     小写的上午和下午值     am 或 pm
A     大写的上午和下午值     AM 或 PM
B     Swatch Internet 标准时     000 到 999
g     小时,12 小时格式,没有前导零     1 到 12
G     小时,24 小时格式,没有前导零     0 到 23
h     小时,12 小时格式,有前导零     01 到 12
H     小时,24 小时格式,有前导零     00 到 23
i     有前导零的分钟数     00 到 59>
s     秒数,有前导零     00 到 59>
u     毫秒 (PHP 5.2.2 新加)。需要注意的是 date() 函数总是返回 000000 因为它只接受 integer 参数, 而 DateTime::format() 才支持毫秒。     示例: 654321
时区     ---     ---
e     时区标识(PHP 5.1.0 新加)     例如:UTC,GMT,Atlantic/Azores
I     是否为夏令时     如果是夏令时为 1,否则为 0
O     与格林威治时间相差的小时数     例如:+0200
P     与格林威治时间(GMT)的差别,小时和分钟之间有冒号分隔(PHP 5.1.3 新加)     例如:+02:00
T     本机所在的时区     例如:EST,MDT(【译者注】在 Windows 下为完整文本格式,例如"Eastern Standard Time",中文版会显示"中国标准时间")。
Z     时差偏移量的秒数。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。     -43200 到 43200
完整的日期/时间     ---     ---
c     ISO 8601 格式的日期(PHP 5 新加)     2004-02-12T15:19:21+00:00
r     RFC 822 格式的日期     例如:Thu, 21 Dec 2000 16:01:07 +0200
U     从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数     参见 time()
-------------------------------------------------------------------------

preg_last_error

(PHP 5 >= 5.2.0, PHP 7)

preg_last_error — 返回最后一个PCRE正则执行产生的错误代码

说明

int preg_last_error
( void
)

返回最后一次PCRE正则执行的错误代码。

Example #1 preg_last_error() 示例


<?php

preg_match('/(?:\D+|<\d+>)*[!?]/', 'foobar foobar foobar');

if (preg_last_error() == PREG_BACKTRACK_LIMIT_ERROR) {
    print 'Backtrack limit was exhausted!';
}

?>

以上例程会输出:

Backtrack limit was exhausted!

返回值

返回下面常量中的一个(查看它们自身的解释):

  • PREG_NO_ERROR
  • PREG_INTERNAL_ERROR
  • PREG_BACKTRACK_LIMIT_ERROR (参见 pcre.backtrack_limit
  • PREG_RECURSION_LIMIT_ERROR (参见 pcre.recursion_limit
  • PREG_BAD_UTF8_ERROR
  • PREG_BAD_UTF8_OFFSET_ERROR (自 PHP 5.3.0 起)
  • PREG_JIT_STACKLIMIT_ERROR (自 PHP 7.0.0 起)

----------------------------------------------------------------------------------------------------

array_diff() 函数返回两个数组的差集数组。该数组包括了所有在被比较的数组中,但是不在任何其他参数数组中的键值。

在返回的数组中,键名保持不变。

语法

array_diff(array1,array2,array3...);
参数 描述
array1 必需。与其他数组进行比较的第一个数组。
array2 必需。与第一个数组进行比较的数组。
array3,... 可选。与第一个数组进行比较的其他数组。

提示和注释

提示:可用一个或任意多个数组与第一个数组进行比较。

注释:仅有值用于比较。

技术细节

返回值:
返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2array3 等等)中的键值。
------------------------------------------------------------------------------------------

json_decode

(PHP 5 > = 5.2.0,PHP 7,PECL的JSON > = 1.2.0)

json_decode—解码JSON字符串

描述

混合的 json_decode(字符串 JSON美元【,布尔 有关美元=错误的【,int 为深度= 512【,int $选项= 0] ] ])

以一个JSON编码的字符串转换为一个PHP变量。

参数

JSON

这个JSON 字符串解码。

此功能只适用于UTF-8编码的字符串。

<strong class="note">注</strong>:

协会

什么时候真的,返回目标将被转换成 联想阵列S.

深度

用户指定的递归深度。

选项

Bitmask的JSON解码选项。目前有两支 选项。第一个是json_bigint_as_string这 允许铸造大整数的字符串而不是漂浮,这是 默认。第二选项json_object_as_array具有相同的效果作为背景协会真的

返回值

返回的值编码JSON在适当的 PHP类型。价值观真正的无效的返回真的错误的无效的分别。无效的返回如果JSON不能 被解码或编码的数据比递归极限深度。

---------------------------------------------------------

addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。

预定义字符是:

  • 单引号(')
  • 双引号(")
  • 反斜杠(\)
  • NULL

提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。

注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

语法

addslashes(string)
参数 描述
string 必需。规定要转义的字符串。

技术细节

返回值:
返回已转义的字符串。

------------------------------------------------------------------------------------

stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。

提示:该函数可用于清理从数据库中或者从 HTML 表单中取回的数据。

语法

stripslashes(string)
参数 描述
string 必需。规定要检查的字符串。

技术细节

返回值: 返回已剥离反斜杠的字符串。