Home >Backend Development >PHP Tutorial >PHP common function collection
This article mainly introduces the collection of commonly used functions in PHP, which has certain reference value. Now I share it with everyone. Friends in need can refer to it
Created by Chen, last modified 2016-12-02
is_numeric() — Check whether the variable is a number or a numeric string
bool is_numeric ( mixed $var )
Returns if var
is a number or a numeric string TRUE
, otherwise FALSE
is returned.
Parameter | Description |
---|---|
##var | Allow passing Enter any parameters.
If var is Returns TRUE for numbers and numeric strings, otherwise returns FALSE. |
|||
参数 | 描述 |
---|---|
array | 必需。规定要使用的多维数组(记录集)。 |
column_key |
必需。需要返回值的列。 可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。 该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。 |
index_key | 可选。用作返回数组的索引/键的列。 |
返回值: | 返回数组,此数组的值为输入数组中某个单一列的值。 |
--------------------------------------------------------
PHP Array 函数
在数组中搜索键值 "red",并返回它的键名:
a75c26f29b812b987d8e93cb78df764e"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,则在数组中检查给定值的类型,数字 5 和字符串 5 是不同的(参见实例 2)。 |
返回值: |
如果在数组中找到指定的键值,则返回对应的键名,否则返回 FALSE。 如果在数组中找到键值超过一次,则返回第一次找到的键值所匹配的键名。 |
------------------------------------------------------------
PHP Array 函数
在数组中搜索值 "Glenn" ,并输出一些文本:
2f3c5e570bbea39caaa2164190f641d4
运行实例
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 函数
移除数组中重复的值:
a75c26f29b812b987d8e93cb78df764e"red","b"=>"green","c"=>"red"); print_r(array_unique($a)); ?>
运行实例
array_unique() 函数移除数组中的重复的值,并返回结果数组。
当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。
返回的数组中键名不变。
注释:被保留的数组将保持第一个数组项的键名类型。
array_unique(array)
参数 | 描述 |
---|---|
array | 必需。规定数组。 |
sortingtype |
可选。规定如何比较数组元素/项目。可能的值:
|
array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。
返回值: | 返回被过滤的数组。 |
-------------------------------------------------------------------
PHP Array 函数
把两个数组合并为一个数组:
0dee88675f38520f42494b9983f23902
运行实例
array_merge() 函数把一个或多个数组合并为一个数组。
提示:您可以向函数输入一个或者多个数组。
注释:如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。
注释:如果您仅向 array_merge() 函数输入一个数组,且键名是整数,则该函数将返回带有整数键名的新数组,其键名以 0 开始进行重新索引(参见下面的实例 1)。
提示:该函数与 array_merge_recursive() 函数之间的不同是在处理两个或更多个数组元素有相同的键名的情况。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。
array_merge(array1,array2,array3...)
参数 | 描述 |
---|---|
array1 | 必需。规定数组。 |
array2 | 可选。规定数组。 |
array3 | 可选。规定数组。 |
返回值: | 返回合并的数组。 |
---------------------------------------------------------------------------------
PHP String 函数
把数组元素组合为字符串:
54b3667f5a66e4903417a93fbf414364
运行实例
implode() 函数返回由数组元素组合成的字符串。
注释:implode() 函数接受两种参数顺序。但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在 string 参数之前才行。
注释:implode() 函数的 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。
注释:该函数是二进制安全的。
implode(separator,array)
参数 | 描述 |
---|---|
separator | 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。 |
array | 必需。要组合为字符串的数组。 |
返回值: | 返回由数组元素组合成的字符串。 |
---------------------------------------------------------------------------
PHP Array 函数
返回数组中元素的数目:
d90fada51e98a8b7b9b05d403d38f7f0
运行实例
count() 函数返回数组中元素的数目。
count(array,mode);
参数 | 描述 |
---|---|
array | 必需。规定数组。 |
mode |
可选。规定模式。可能的值:
|
count() 函数计算数组中的单元数目或对象中的属性个数。
对于数组,返回其元素的个数,对于其他值,返回 1。如果参数是变量而变量没有定义,则返回 0。
如果 mode 被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数。
返回值: | 返回数组中元素的数目。 |
-------------------------------------------------------------------------
PHP Date / Time 函数
将英文文本日期时间解析为 Unix 时间戳:
97fe28c84384612b0fbc12423f1f4b8f"); echo(strtotime("15 October 1980") . "0c6dc11e160d3b678d68754cc175188a"); echo(strtotime("+5 hours") . "0c6dc11e160d3b678d68754cc175188a"); echo(strtotime("+1 week") . "0c6dc11e160d3b678d68754cc175188a"); echo(strtotime("+1 week 3 days 7 hours 5 seconds") . "0c6dc11e160d3b678d68754cc175188a"); echo(strtotime("next Monday") . "0c6dc11e160d3b678d68754cc175188a"); 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 函数
返回数组的所有值(非键名):
9379f121e5117f2531c2325d016c1f70"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 String 函数
把数组元素组合为一个字符串:
63221d4383c13cc0e471d4c0629cfe4a
运行实例
join() 函数返回由数组元素组合成的字符串。
join() 函数是 implode() 函数的别名。
注释:join() 函数接受两种参数顺序。但是由于历史原因,explode() 是不行的,您必须保证 separator 参数在 string 参数之前才行。
注释:join() 函数的 separator 参数是可选的。但是为了向后兼容,推荐您使用使用两个参数。
join(separator,array)
参数 | 描述 |
---|---|
separator | 可选。规定数组元素之间放置的内容。默认是 ""(空字符串)。 |
array | 必需。要组合为字符串的数组。 |
返回值: | 返回由数组元素组合成的字符串。 |
--------------------------------------------------------------------
PHP String 函数
把字符串打散为数组:
317e97e6c3e994a4ad906485c1622bfb
运行实例
explode() 函数把字符串打散为数组。
注释:"separator" 参数不能是空字符串。
注释:该函数是二进制安全的。
explode(separator,string,limit)
参数 | 描述 |
---|---|
separator | 必需。规定在哪里分割字符串。 |
string | 必需。要分割的字符串。 |
limit |
可选。规定所返回的数组元素的数目。 可能的值:
|
返回值: | 返回字符串的数组 |
PHP 版本: | 4+ |
更新日志: | 在 PHP 4.0.1 中,新增了 limit 参数。在 PHP 5.1.0 中,新增了对负数 limit 的支持。 |
使用 limit 参数来返回一些数组元素:
c50ec8cdfe1adc1cbdc5183941e5876c
------------------------------------------------------------------
(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”); ?>
get_cfg_var()-获取一个PHP配置选项的值
ini_get()-获取配置选项的值
ini_get_all()-获取所有配置选项
ini_restore()恢复一个配置选项的值
How to change configuration settings
------------------- ------------------------------------------------
PHP Calendar
Description | Default | PHP version | |
---|---|---|---|
Default time zone (all Date/Time functions use this option ) | "" | PHP 5.1 | |
Default latitude (date_sunrise() and date_sunset() use this Options) | "31.7667" | PHP 5.0 | |
Default longitude (date_sunrise() and date_sunset() Use this option) | "35.2333" | PHP 5.0 | |
Default sunrise zenith (date_sunrise( ) and date_sunset() use this option) | "90.83" | PHP 5.0 | |
Default sunset day Top (date_sunrise() and date_sunset() use this option) | "90.83" | PHP 5.0 |
Function | Description |
---|---|
checkdate() | Verify Gregorian date. |
date_add() | Add day, month, year, hour, minute and second to date. |
date_create_from_format() | Returns a new DateTime object formatted according to the specified format. |
date_create() | Returns a new DateTime object. |
date_date_set() | Set the new date. |
date_default_timezone_get() | Returns the default time zone used by all Date/Time functions. |
date_default_timezone_set() | Sets the default time zone used by all Date/Time functions. |
date_diff() | Returns the difference between two dates. |
date_format() | Returns the date formatted according to the specified format. |
date_get_last_errors() | Returns warnings/errors in the date string. |
date_interval_create_from_date_string() | Creates a DateInterval from the relevant part of the string. |
date_interval_format() | Format time interval. |
date_isodate_set() | Set ISO date. |
date_modify() | Modify the timestamp. |
date_offset_get() | Returns the time zone offset. |
date_parse_from_format() | Returns an associative array with detailed information about the specified date according to the specified format. |
date_parse() | Returns an associative array with detailed information about the specified date. |
date_sub() | Subtract the day, month, year, hours, minutes, and seconds from the specified date. |
date_sun_info() | Returns an array containing information about sunrise/sunset and dusk start/dusk end for the specified date and location. |
date_sunrise() | Returns the sunrise time of the specified date and location. |
date_sunset() | Returns the sunset time of the specified date and location. |
date_time_set() | Set the time. |
date_timestamp_get() | Returns the Unix timestamp. |
date_timestamp_set() | Sets the date and time based on a Unix timestamp. |
date_timezone_get() | Returns the time zone of the given DateTime object. |
date_timezone_set() | Set the time zone of the DateTime object. |
date() | Format local date and time. |
getdate() | Returns the date/time information of a timestamp or the current local date/time. |
gettimeofday() | Returns the current time. |
gmdate() | Format GMT/UTC date and time. |
gmmktime() | Returns the UNIX timestamp of the GMT date. |
gmstrftime() | Format GMT/UTC date and time according to locale settings. |
idate() | Format local time/date into an integer. |
localtime() | Returns the local time. |
microtime() | Returns the number of microseconds in the current time. |
mktime() | Returns the Unix timestamp of a date. |
strftime() | Format local time/date according to locale settings. |
strptime() | Parse the time/date generated by strftime(). |
strtotime() | Parses any English text date or time description into a Unix timestamp. |
time() | Returns the Unix timestamp of the current time. |
timezone_abbreviations_list() | Returns an associative array containing daylight saving time, offset, and time zone name. |
timezone_identifiers_list() | Returns an indexed array with all time zone identifiers. |
timezone_location_get() | Returns the location information of the specified time zone. |
timezone_name_from_abbr() | Returns the time zone name based on the time zone abbreviation. |
timezone_name_get() | Returns the name of the time zone. |
timezone_offset_get() | Returns the time zone offset relative to GMT. |
timezone_open() | Create a new DateTimeZone object. |
timezone_transitions_get() | Returns all transitions for time zones. |
timezone_version_get() | Returns the version of the time zone database. |
Constant | Description |
---|---|
DATE_ATOM | Atom (Example: 2005-08-15T16:13:03 0000) |
HTTP Cookies ( For example: Sun, 14 Aug 2005 16:13:03 UTC) | |
ISO-8601 (For example: 2005-08-14T16:13:03 0000) | |
RFC 822 (Example: Sun, 14 Aug 2005 16:13:03 UTC) | |
RFC 850 (Example: Sunday, 14-Aug-05 16:13:03 UTC) | |
RFC 1036 (Example: Sunday, 14-Aug-05 16:13:03 UTC) | |
RFC 1123 (Example: Sun, 14 Aug 2005 16:13:03 UTC) | |
RFC 2822 (Sun, 14 Aug 2005 16:13:03 0000) | |
RSS (Sun, 14 Aug 2005 16:13:03 UTC) | |
World Wide Web Consortium (Example: 2005-08-14T16:13:03 0000) |
参数 | 描述 |
---|---|
array1 | 必需。与其他数组进行比较的第一个数组。 |
array2 | 必需。与第一个数组进行比较的数组。 |
array3,... | 可选。与第一个数组进行比较的其他数组。 |
提示:可用一个或任意多个数组与第一个数组进行比较。
注释:仅有值用于比较。
返回值: | 返回差集数组,该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的键值。 |
-------------------------------------------------- -----------------------------------------------
(PHP 5 > = 5.2.0, PHP 7, PECL JSON > = 1.2.0)
json_decode — Decode a JSON string
Mixed json_decode(String JSON $
[, Boolean Related $
=Error
[, int is the depth
= 512 [, int $option
= 0] ])
Converts a JSON-encoded string to a PHP variable.
JSON
JSON string decoding.
82e1f27b15ccd58568f7e2808f5fbb4cNote128dba7a3a77be0113eb0bea6ea0a5d0:
is true, the return target will be converted into an associative array S.
json_bigint_as_string This allows casting a string of big integers instead of floating, which is the default. The second option
json_object_as_array has the same effect as the background
association to really
.
in the appropriate PHP type. Values true
, false and invalid returns true ,
false and
are invalid respectively.
Invalid Returned if
JSON cannot be decoded or the encoded data is deeper than the recursion limit.
--------------------------------------------------------- addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。 预定义字符是:
提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备字符串。 注释:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。 语法addslashes(string)参数描述string必需。规定要转义的字符串。 技术细节返回值:返回已转义的字符串。 ------------------------------------------------------------------------------------stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。提示:该函数可用于清理从数据库中或者从 HTML 表单中取回的数据。语法stripslashes(string)参数描述string必需。规定要检查的字符串。技术细节返回值:返回已剥离反斜杠的字符串。 |
Related recommendations:
The above is the detailed content of PHP common function collection. For more information, please follow other related articles on the PHP Chinese website!