输出相关
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)。
Name (constant) | Value | Description |
---|---|---|
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() - 检查一个扩展是否已经加载
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
测试和设置变量类型
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() - 获取变量的字符串值
每个函数都需要接收一个变量作为其输入,然后再将变量值转换成适当类型返回。