输出相关

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)

Value

Description

INFO_GENERAL

1

配置的命令行、 php.ini

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() - 获取变量的字符串值

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