Fork me on GitHub

PHP函数快速查询

输出相关

What's the difference between echo, print, and print_r in PHP?

echo()  print()  - print和echo都不是真正的函数,但是都可以用带有参数的函数形式进行调用。二者都可以当作一个操作符:只要将要显示的字符串放置在echo或print关键字之后。以函数形式调用print将使其返回一个值(1)。如果希望在一个更复杂的表达式中生成输出,这个功能可能是有用的,但是print要比echo的速度慢。

var_dump()  - 输出变量的详细信息,包括类型,值,子成员的类型,值。

print_r()  - 输入对人而言更友好,例如:输出字符串没有引号,没有类型信息,甚至没有size信息。

htmlentities、htmlspecialchars、html_entity_decode

htmlentities()  - 这个函数转换所有含有对应“html实体”的特殊字符,比如货币表示符号欧元英镑等、版权符号等;

htmlspecialchars()  - 只是把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:

html_entity_decode()  - 函数把 HTML 实体转换为字符。是 htmlentities() 函数的反函数。

phpinfo

输出 PHP 当前状态的大量信息,包含了 PHP 编译选项、启用的扩展、PHP 版本、服务器信息和环境变量(如果编译为一个模块的话)、PHP环境变量、操作系统版本信息、path 变量、配置选项的本地值和主值、HTTP 头和PHP授权信息(License)。

phpinfo() 选项
Name (constant)ValueDescription
INFO_GENERAL 1 配置的命令行、 php.ini 的文件位置、建立的时间、Web 服务器、系统及更多其他信息。
INFO_CREDITS 2 PHP 贡献者名单。参加 phpcredits()
INFO_CONFIGURATION 4 当前PHP指令的本地值和主值。参见 ini_get()
INFO_MODULES 8 已加载的模块和模块相应的设置。参见 get_loaded_extensions()
INFO_ENVIRONMENT 16 环境变量信息也可以用 $_ENV 获取。
INFO_VARIABLES 32 显示所有来自 EGPCS (Environment, GET, POST, Cookie, Server) 的 预定义变量
INFO_LICENSE 64 PHP许可证信息。参见 » license FAQ
INFO_ALL -1 显示以上所有信息。

String函数

函数描述
addcslashes() 返回在指定的字符前添加反斜杠的字符串。
addslashes() 返回在预定义的字符前添加反斜杠的字符串。
bin2hex() 把 ASCII 字符的字符串转换为十六进制值。
chop() 删除字符串右侧的空白字符或其他字符。
chr() 从指定的 ASCII 值返回字符。
chunk_split() 把字符串分割为一系列更小的部分。
convert_cyr_string() 把字符串由一种 Cyrillic 字符集转换为另一种。
convert_uudecode() 解码 uuencode 编码字符串。
convert_uuencode() 使用 uuencode 算法对字符串进行编码。
count_chars() 返回有关字符串中所用字符的信息。
crc32() 计算字符串的 32 位 CRC。
crypt() 单向的字符串加密法(hashing)。
echo() 输出一个或多个字符串。
explode() 把字符串打散为数组。
fprintf() 把格式化的字符串写入到指定的输出流。
get_html_translation_table() 返回由 htmlspecialchars() 和 htmlentities() 使用的翻译表。
hebrev() 把希伯来文本转换为可见文本。
hebrevc() 把希伯来文本转换为可见文本,并把新行(\n)转换为 <br>。
hex2bin() 把十六进制值的字符串转换为 ASCII 字符。
html_entity_decode() 把 HTML 实体转换为字符。
htmlentities() 把字符转换为 HTML 实体。
htmlspecialchars_decode() 把一些预定义的 HTML 实体转换为字符。
htmlspecialchars() 把一些预定义的字符转换为 HTML 实体。
implode() 返回由数组元素组合成的字符串。
join() implode() 的别名。
lcfirst() 把字符串的首字符转换为小写。
levenshtein() 返回两个字符串之间的 Levenshtein 距离。
localeconv() 返回本地数字及货币格式信息。
ltrim() 移除字符串左侧的空白字符或其他字符。
md5() 计算字符串的 MD5 散列。
md5_file() 计算文件的 MD5 散列。
metaphone() 计算字符串的 metaphone 键。
money_format() 返回格式化为货币字符串的字符串。
nl_langinfo() 返回特定的本地信息。
nl2br() 在字符串中的每个新行之前插入 HTML 换行符。
number_format() 以千位分组来格式化数字。
ord() 返回字符串中第一个字符的 ASCII 值。
parse_str() 把查询字符串解析到变量中。
print() 输出一个或多个字符串。
printf() 输出格式化的字符串。
quoted_printable_decode() 把 quoted-printable 字符串转换为 8 位字符串。
quoted_printable_encode() 把 8 位字符串转换为 quoted-printable 字符串。
quotemeta() 引用元字符。
rtrim() 移除字符串右侧的空白字符或其他字符。
setlocale() 设置地区信息(地域信息)。
sha1() 计算字符串的 SHA-1 散列。
sha1_file() 计算文件的 SHA-1 散列。
similar_text() 计算两个字符串的相似度。
soundex() 计算字符串的 soundex 键。
sprintf() 把格式化的字符串写入变量中。
sscanf() 根据指定的格式解析来自字符串的输入。
str_getcsv() 把 CSV 字符串解析到数组中。
str_ireplace() 替换字符串中的一些字符(对大小写不敏感)。
str_pad() 把字符串填充为新的长度。
str_repeat() 把字符串重复指定的次数。
str_replace() 替换字符串中的一些字符(对大小写敏感)。
str_rot13() 对字符串执行 ROT13 编码。
str_shuffle() 随机地打乱字符串中的所有字符。
str_split() 把字符串分割到数组中。
str_word_count() 计算字符串中的单词数。
strcasecmp() 比较两个字符串(对大小写不敏感)。
strchr() 查找字符串在另一字符串中的第一次出现。(strstr() 的别名。)
strcmp() 比较两个字符串(对大小写敏感)。
strcoll() 比较两个字符串(根据本地设置)。
strcspn() 返回在找到某些指定字符的任何部分之前,在字符串中查找的字符数。
strip_tags() 剥去字符串中的 HTML 和 PHP 标签。
stripcslashes() 删除由 addcslashes() 函数添加的反斜杠。
stripslashes() 删除由 addslashes() 函数添加的反斜杠。
stripos() 返回字符串在另一字符串中第一次出现的位置(对大小写不敏感)。
stristr() 查找字符串在另一字符串中第一次出现的位置(大小写不敏感)。
strlen() 返回字符串的长度。
strnatcasecmp() 使用一种"自然排序"算法来比较两个字符串(对大小写不敏感)。
strnatcmp() 使用一种"自然排序"算法来比较两个字符串(对大小写敏感)。
strncasecmp() 前 n 个字符的字符串比较(对大小写不敏感)。
strncmp() 前 n 个字符的字符串比较(对大小写敏感)。
strpbrk() 在字符串中查找一组字符的任何一个字符。
strpos() 返回字符串在另一字符串中第一次出现的位置(对大小写敏感)。
strrchr() 查找字符串在另一个字符串中最后一次出现。
strrev() 反转字符串。
strripos() 查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)。
strrpos() 查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)。
strspn() 返回在字符串中包含的特定字符的数目。
strstr() 查找字符串在另一字符串中的第一次出现(对大小写敏感)。
strtok() 把字符串分割为更小的字符串。
strtolower() 把字符串转换为小写字母。
strtoupper() 把字符串转换为大写字母。
strtr() 转换字符串中特定的字符。
substr() 返回字符串的一部分。
substr_compare() 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。
substr_count() 计算子串在字符串中出现的次数。
substr_replace() 把字符串的一部分替换为另一个字符串。
trim() 移除字符串两侧的空白字符和其他字符。
ucfirst() 把字符串中的首字符转换为大写。
ucwords() 把字符串中每个单词的首字符转换为大写。
vfprintf() 把格式化的字符串写到指定的输出流。
vprintf() 输出格式化的字符串。
vsprintf() 把格式化字符串写入变量中。
wordwrap() 打断字符串为指定数量的字串

版本兼容相关

function_exists() - 检查所有预定义和自定义的函数是否存在

method_exists() - 检查类的方法是否存在

is_callable() - 检测参数是否为合法的可调用结构

get_defined_functions() - 返回所有已定义函数的数组

class_exists() - 检查类是否已定义

extension_loaded() - 检查一个扩展是否已经加载

常量 PHP_VERSION

phpversion() - 获取当前的PHP版本

version_compare() - 对比两个「PHP 规范化」的版本数字字符串

phpinfo() - 输出关于 PHP 配置的信息

phpcredits() - 打印 PHP 贡献者名单

php_logo_guid() - 获取 logo 的 guid

zend_version() - 获取当前 Zend 引擎的版本

Array相关函数

list() - 把数组中的值赋给一些变量

each() - 返回当前元素的键名和键值,并将内部指针向前移动

注意:因为关联数组的索引不是数字,因此无法在for循环语句中使用一个简单的计数器对数组进行操作。但是可以使用foreach循环或list()和each()结构。

current() - 返回数组中的当前元素的值

end() - 将内部指针指向数组中的最后一个元素,并输出

next() - 将内部指针指向数组中的下一个元素,并输出

prev() - 将内部指针指向数组中的上一个元素,并输出

reset() - 将内部指针指向数组中的第一个元素,并输出

shuffle() - 打乱数组

array_fill() - 用给定的值填充数组

array_rand() - 从数组中随机取出一个或多个单元

array_fill_keys() - 使用指定的键和值填充数组

str_repeat() - 重复一个字符串

range() - 根据范围创建数组,包含指定的元素

数组排序函数

排序函数属性
函数名称排序依据数组索引键保持排序的顺序相关函数
array_multisort() 键值关联的保持,数字类型的不保持 第一个数组或者由选项指定 array_walk()
asort() 由低到高 arsort()
arsort() 由高到低 asort()
krsort() 由高到低 ksort()
ksort() 由低到高 asort()
natcasesort() 自然排序,大小写不敏感 natsort()
natsort() 自然排序 natcasesort()
rsort() 由高到低 sort()
shuffle() 随机 array_rand()
sort() 由低到高 rsort()
uasort() 由用户定义 uksort()
uksort() 由用户定义 uasort()
usort() 由用户定义 uasort()

错误和日志记录配置

名字默认可修改范围更新日志
error_reporting NULL PHP_INI_ALL  
display_errors "1" PHP_INI_ALL  
display_startup_errors "0" PHP_INI_ALL  
log_errors "0" PHP_INI_ALL  
log_errors_max_len "1024" PHP_INI_ALL Available since PHP 4.3.0.
ignore_repeated_errors "0" PHP_INI_ALL Available since PHP 4.3.0.
ignore_repeated_source "0" PHP_INI_ALL Available since PHP 4.3.0.
report_memleaks "1" PHP_INI_ALL Available since PHP 4.3.0.
track_errors "0" PHP_INI_ALL  
html_errors "1" PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3.
xmlrpc_errors "0" PHP_INI_SYSTEM Available since PHP 4.1.0.
xmlrpc_error_number "0" PHP_INI_ALL Available since PHP 4.1.0.
docref_root "" PHP_INI_ALL Available since PHP 4.3.0.
docref_ext "" PHP_INI_ALL Available since PHP 4.3.2.
error_prepend_string NULL PHP_INI_ALL  
error_append_string NULL PHP_INI_ALL  
error_log NULL PHP_INI_ALL  
syslog.facility "LOG_USER" PHP_INI_SYSTEM Available as of PHP 7.3.0.
syslog.filter "no-ctrl" PHP_INI_ALL Available as of PHP 7.3.0.
syslog.ident "php" PHP_INI_SYSTEM Available as of PHP 7.3.0.

error_reporting() - 设置应该报何种PHP错误,参数值如下表

常量描述
1 E_ERROR 运行时致命的错误。不能修复的错误。停止执行脚本。
2 E_WARNING 运行时非致命的错误。没有停止执行脚本。
4 E_PARSE 编译时的解析错误。解析错误应该只由解析器生成。
8 E_NOTICE 运行时的通知。脚本发现可能是一个错误,但也可能在正常运行脚本时发生。
16 E_CORE_ERROR PHP 启动时的致命错误。这就如同 PHP 核心的 E_ERROR。
32 E_CORE_WARNING PHP 启动时的非致命错误。这就如同 PHP 核心的 E_WARNING。
64 E_COMPILE_ERROR 编译时致命的错误。这就如同由 Zend 脚本引擎生成的 E_ERROR。
128 E_COMPILE_WARNING 编译时非致命的错误。这就如同由 Zend 脚本引擎生成的 E_WARNING。
256 E_USER_ERROR 用户生成的致命错误。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_ERROR。
512 E_USER_WARNING 用户生成的非致命错误。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_WARNING。
1024 E_USER_NOTICE 用户生成的通知。这就如同由程序员使用 PHP 函数 trigger_error() 生成的 E_NOTICE。
2048 E_STRICT 运行时的通知。PHP 建议您改变代码,以提高代码的互用性和兼容性。
4096 E_RECOVERABLE_ERROR 可捕获的致命错误。这就如同一个可以由用户定义的句柄捕获的 E_ERROR(见 set_error_handler())。
8191 E_ALL 所有的错误和警告的级别,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 将作为 E_ALL的一部分)。

文件操作相关

支持的协议和封装协议

fclose() - 关闭一个已打开的文件指针

fgets() - 从文件指针中读取一行

fread() - 读取文件(可安全用于二进制文件)

fopen() - 打开文件或者 URL

fwrite() - 写入文件(可安全用于二进制文件)

fsockopen() - 打开一个网络连接或者一个Unix套接字连接

file() - 把整个文件读入一个数组中

file_exists() - 检查文件或目录是否存在

is_readable() - 判断给定文件名是否可读

stream_set_timeout() - Set timeout period on a stream

file_get_contents() - 将整个文件读入一个字符串

file_put_contents() - 将一个字符串写入文件

popen() - 打开进程文件指针

stream_context_create() - 创建资源流上下文

umask() - 改变当前的 umask

SplFileObject

测试和设置变量类型

PHP中有两个最常见的函数,分别是gettype()和settype()。这两个函数具有如下所示的函数原型,通过它们可以获得要传递的参数和返回的结果:

gettype ( mixed $var ) : string
settype ( mixed &$var , string $type ) : bool

要使用gettype()函数,必须先给它传递一个变量。它将确定变量的类型并且返回一个包含类型名称的字符串:bool、int、double(对于浮点型)、string、array、object和resource。如果变量类型不是标准类型之一,该函数就会返回“unknown type
(未知类型)”。
要使用settype()函数,必须先给它传递一个要被改变类型的变量,以及一个包含了上述类型列表中某个类型的字符串。

php.net文档都提到了“混合”数据类型。PHP并没有这个类型。但是,由于PHP在类型处理方面非常灵活,因此许多函数可以用许多(或者任意)的数据类型作为参数。这些类型所允许的参数通常都是伪“混合”类型。

PHP还提供了一些特定类型的测试函数。每一个函数都使用一个变量作为其参数,并且返回true或false。这些函数如下。

is_array():检查变量是否是数组。

is_double()、is_float()is_real()(所有都是相同的函数):检查变量是否是浮点数。

is_long()is_int()is_integer()(所有都是相同的函数):检查变量是否是整数。

is_string():检查变量是否是字符串。

is_bool():检查变量是否是布尔值。

is_object():检查变量是否是一个对象。

is_resource();检查变量是否是一个资源。

is_null():检查变量是否是为null。

is_scalar():检查该变量是否是标量,即,一个整数、布尔值、字符串或浮点数。

is_numeric():检查该变量是否是任何类型的数字或数字字符串。

is_callable():检查该变量是否是有效的函数名称。

测试变量状态

PHP有几个函数可以用来测试变量的状态。第一个函数就是isset()。它具有如下函数原型:

isset ( mixed $var [, mixed $... ] ) : bool

这个函数需要一个变量名称作为参数,如果这个变量存在,则返回true,否则返回false。也可以传递一个由逗号间隔的变量列表,如果所有变量都被设置了,isset()函数将返回true。还可以使用与isset()函数相对应的unset()函数来销毁一个变量。它具有如下所示的函数原型:

unset ( mixed $var [, mixed $... ] ) : void

这个函数将销毁一个传进来的变量。
函数empty()可以用来检查一个变量是否存在,以及它的值是否为非空和非0,相应的返回值为true或false。它具有如下所示的函数原型:

empty ( mixed $var ) : bool

变量转换

可以通过调用一个函数来实现转换变量数据类型的目的。如下所示的3个函数可以用来实现这项功能:

intval()— 获取变量的整数值

boolval() - 获取变量的布尔值

floatval() - 获取变量的浮点值

strval() - 获取变量的字符串值

每个函数都需要接收一个变量作为其输入,然后再将变量值转换成适当类型返回。



 

posted @ 2019-01-26 11:04  克拉默与矩阵  阅读(869)  评论(0编辑  收藏  举报