PHP-手册阅读

配置选项:

  html_errors: 无意义的 HTML 标记符会使得出错信息很凌乱, 所以在外壳下阅读报错信息是十分困难的, 因此将该选项的默认值改为 FALSE

  implicit_flush: 在命令行模式下, 所有来自 print 和 echo 的输出将被立即写到输出端, 而不作任何地缓冲操作, 如果您希望延缓或控制标准输出, 您仍然可以使用 output buffering 设置项

  max_execution_time: 最大执行时间

  register_argc_argv: 是否可以在脚本中使用 $argc, $argv 函数

 

gc: garbage collection 垃圾回收

 

PHP_SHLIB_SUFFIX 扩展后缀名

PHP_EOL 兼容换行符, 也可以使用chr(10)

 

$HTTP_RAW_POST_DATA  获取原生POST数据, 也可以用php://input

$http_response_header 当使用http包装器时, 此变量将会被 HTTP 响应头信息填充, 若要获取一个URL的请求头, 可以参考get_headers函数

get_headers($url) 获取一个 HTTP 请求所发送的所有标头

header_register_callback() 定义一个回调函数, 在header头被发送之前调用

headers_list() 获取已经发送或者即将发送的header头

header_remove() 在多次执行header()函数后, 可以用此函数执行撤销操作

headers_sent() 检查header头是否已经被发送

 

set_time_limit() 设置脚本最大运行时间, 也可通过配置max_execution_time实现

ignore_user_abort() 设置客户端断开连接时是否中断脚本的执行

 

exec($command[, $output[, $rtn]]) 把$command的每行输出写入$output数组, 并返回最后一行输出, 如果有$rtn, 则$rtn的结果为$command的返回结果

system($command[, $rtn]) 执行$command, 并输出其内容, 若有$rtn, 则把$command的返回结果赋值给$rtn

popen($command, $mode) 用文件指针方式处理输出

passthru($command[, $rtn]) 用来直接输出$command返回的二进制数据(比如图片)到浏览器, $command返回结果赋值给$rtn

shell_exec($command) 将$command的完整输出以字符串形式返回

 

base_convert($number, $fromCode, $toCode) 在任意进制之间转换

bin2hex, hex2bin, hexdec, bindec, decbin, dechex, decoct, octdec 进制转换

bc[add|comp|mod|mul|pow|sqrt|sub] 高精度计算

tmpfile() 创建一个临时文件, 并返回文件句柄

chdir($dir) 更改当前目录

getcwd() 获取所在目录

link() 创建一个硬连接

linkinfo() 查看一个link所指向的链接的信息, 可以用来查看存不存在

symlink() 建立符号链接

readlink() 返回符号连接指向的目标

umask() 更改当前系统的umask(本次请求操作后自动恢复, 只是相当于起了一个新的shell, shell消失, 变量释放)

contant($name) 获取一个define定义的常量的值

chgrp($filename, $grp) 更改文件所属组

chmod($filename, $model) 类似BASH的chmod

chown($filename, $user) 类似BASH的chown

rmdir() 删除文件夹

checkdate($month, $day, $year) 验证日期的合法性

chunk_split($str, $length, $insert) 函数把字符串分割为一连串更小的部分 可以在之间添加$insert

class_interfaces($class) 查看对象或类名(字符串)所实现的所有Interface

class_parents($class) 查看对象或雷敏(字符串)的父类

create_function() 动态创建匿名函数

compact()

extract()

openlog(string $ident , int $option , int $facility) 打开操作系统的日志记录的连接

syslog(int $priority , string $message) 记录到操作系统日志

define_syslog_variables() 清空操作系统日志

defined() 是否被定义

closelog() 关闭操作系统日志连接

count_chars($str) 返回字符串所用字符的统计信息

create_function(string $args, string $code) lambda方式创建函数

 

reset() 重置数组指针

rewind() 重置文件指针

rewinddir() 重置文件夹指针

 

connection_status() 显示客户端(可以认为是浏览器)的连接状态(可以参考: http://blog.51yip.com/php/995.html)

connection_aborted() 查看客户端连接是否被中断

connection_timeout() 查看客户端连接是否超时

 

clearstatcache()  清除文件状态缓存,

 

libxml_use_internal_errors($user_errors) 当解析XML出现错误时, 是否启用用户错误处理, 默认为False

libxml_get_errors() 获取XML解析错误原因

 

parse_ini_file() 解析一个配置文件到数组

parse_ini_string() 解析一个配置字符串到数组

 

debug_backtrace() 获取回溯追踪信息

debug_print_backtrace() 直接打印回溯字符串

debug_zval_dump() 返回var_dump的字符串

 

disk_free_space() 获取一个目录的可用空间

disk_total_space() 返回一个目录的磁盘总大小

 

dl() 运行时动态载入一个PHP扩展

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

get_loaded_extends() 获取所有编译并加载的模块名

 

checkdnsrr()  给指定的主机(域名)或者IP地址做DNS通信检查

dns_get_record($hostname) 获取指定主机的DNS记录

gethostbyadd() 根据IP地址获取主机名

gethostbyname() 根据主机名获取IP地址

gethostbynamel() 根据主机名获取IP地址

gethostname() 获取本机名

ip2long() 把IP地址转换为long类型数值

long2ip() 把long类型数值转为IP地址

inet_pton() 把点分十进制IP地址转为二进制整数

inet_ntop() 把二进制证书转为点分十进制IP

 

easter_date()  得到指定年份的复活节午夜时的Unix时间戳

easter_days() 得到指定年份的3月21日到复活节之间的天数

 

//思想: error 在报错级别比较高或者禁止报错的情况下, 如果遇到warning和notice则跳过, 其余则停止执行程序, 可交给set_error_handler中的函数来处理

error_get_last() 获取最后发生的错误, 比如在ini_set('display_errors', 'Off')的情况下, 可以获取最后一次发生的错误

error_reporting(0|-1...E_ALL...) 等同于ini_set('error_reporting', E_ALL...);

error_log() 把错误信息写到某个指定文件

trigger_error() 手动触发error

 

escapeshellarg() 对SHELL命令字符串进行编码, 防止SHELL注入

escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义

 

printf()

vprintf()

sprintf()

vsprintf() 可以认为数组形式的sprintf, 原来都是用call_user_func_array('sprintf', array()), 本函数可以直接搞定

 

fflush($handle) 类似C语言的fflush

flush() 刷新输出缓冲, flush() 函数不会对服务器或客户端浏览器的缓存模式产生影响, 因此, 必须同时使用 ob_flush() 和flush() 函数来刷新输出缓冲

注:

  个别web服务器程序, 特别是Win32下的web服务器程序, 在发送结果到浏览器之前, 仍然会缓存脚本的输出, 直到程序结束为止
  有些Apache的模块, 比如mod_gzip, 可能自己进行输出缓存, 这将导致flush()函数产生的结果不会立即被发送到客户端浏览器
  甚至浏览器也会在显示之前, 缓存接收到的内容例如 Netscape 浏览器会在接受到换行或 html 标记的开头之前缓存内容, 并且在接受到 </table> 标记之前, 不会显示出整个表格
  一些版本的 Microsoft Internet Explorer 只有当接受到的256个字节以后才开始显示该页面, 所以必须发送一些额外的空格来让这些浏览器显示页面内容

feof() 测试文件指针是否到了文件末尾

fgetc($handle) 从文件指针中读取一个字符

fgets($handle, $lengtn = 0) 从文件中读取一行

fgetss($handle, $lenght = 0, $allowabletags = '') 与fgets基本相同, 但是会过滤掉HTML和PHP标记

fgetcsv($handle, $length = 0, $delimiter = ',') 从csv文件中读取一行(或指定长度), 并解析到数组

fputs() 向文件写入字符串, fwrite的别名

fscanf() 从文件中格式化输入

fprintf() 将格式化后的数据写入到流

vfprintf() 向由 handle 指定的流资源句柄中写入根据 format 格式化后的字符串, 接收一个数组参数, 而不是一系列可变数量的参数

fputcsv() 将数组格式化为csv格式写入到文件

fpassthru() 输出文件指针处后的所有剩余数据

fsockopen() 打开一个网络连接或者一个Unix套接字连接, 默认情况下将以阻塞模式开启套接字连接, 当然你可以通过stream_set_blocking()将它转换到非阻塞模式, 参考stream_socket_client()函数

ftell() 获取文件指针所在位置

fseek() 定位文件指针

rewind() 重置文件指针

ftruncate() 截取文件到指定长度(修改了源文件)

fstat() 通过文件指针获取文件信息, 返回类似stat()函数

长连接持续输出演示:

<?php
    set_time_limit(0); //保证PHP程序超时不退出, 与客户端保持连接
    while (True) {
    echo '填写内容字节数>=4096的首次输出<br />';
    ob_flush();
    flush();
    sleep(1);
    }

1.先ob_flush(), 再执行flush(), 如果Web服务器的操作系统是windows系统, 那顺序颠倒或者不使用ob_flush()也不会出现问题, 但是在Linux系统上就无法刷新输出缓冲

2.一些Web服务器的output_buffering默认是4069字符或者更大, 即输出内容必须达到4069字符服务器才会flush刷新输出缓冲, 为了确保flush有效, 最好在ob_flush()函数前有以下语句(测试中只要第一次输出达到4096字节就可以), 以确保到达output_buffering值

echo str_repeat(" ", 4096);

fileatime, filectime, filemtime

fileowner, filegroup

touch() 设定文件的修改和访问时间

fileperms() 获取文件权限

filetype() 获取文件类型 dir, file, link 等

stat() 获取文件的基本信息(如上面几种信息(atime, ctime等)都会包含在返回结果中)

lsstat() 与stat相同, 但是在文件名是符号链接时是不同的, stat会列出原文件的信息, lsstat会列出符号链接的信息

clearstatcache() 其中stat和lsstat等函数会缓存文件的基本信息, 以便快速访问, 可以使用此函数清除缓存信息

realpath() 返回绝对路径名

 

glob() 查看所有匹配的文件名

scandir() 列出指定路径中的文件和目录, 不必在opendir, readdir, closedir了

 

register_shutdown_function() 注册PHP退出时执行的函数

 

gc_collect_cycles() 强制执行垃圾回收

gc_disabled() 停用垃圾回收

gc_enable() 开启垃圾回收

gc_enabled() 获取垃圾回收开启状态

 

getmyuid() 获取PHP所有者的UID

getmygid() 获取PHP所有者的GID

getmypid() 获取本进程的ID

getmyinode() 获取当前脚本的索引节点

 

get_current_user() 获取运行PHP用户的用户名

get_browser() 获取浏览器相关信息列表

get_cfg_var() 获取PHP配置信息 类似 ini_get()

get_defined_constants() 获取所有已定义的常量名

get_defined_vars() 获取所有已定义的变量名

get_defined_functions() 获取所有已定义的函数名

get_declared_classes() 获取所有已定义的类名

get_declared_interfaces() 获取所有已定义的接口名

get_class_vars() 获取类的所有属性及默认值

get_object_vars() 获取一个对象的所有属性和值

get_class_methods() 获取类或对象的所有方法

get_extension_funcs() 获取某个扩展模块的所有方法

get_parent_class() 获取一个类或对象的父类名

is_subclass_of() 判断一个对象是否是一个类的子类的实例

instanceof 判断一个对象是否是一个类或者其子类的实例

 

property_exists() 检查对象是否具有某个属性

 

get_include_path() 获取include path自动包含路径

get_include_files() 获取所有被require和include的文件名, 同名get_require_files()

 

get_meta_tags($filename) 获取一个html文件的所有meta标签

get_html_translation_table() 获取htmlspecialchars()和htmlentities函数使用的转换码对应表

 

get_headers() 获取一个URL的响应头信息

 

get_resource_type() 获取一个资源类型变量的类型, mysql link, file, domxml document等

 

getdate() 获取详细时间列表, 在分别获取多个date值的时候可以使用

 

getenv() 获取一个环境变量的值

putenv() 设置一个环境变量的值

 

getprotobyname() 获取协议number

getprotobynumber() 获取协议名

 

getservbyname($service, $protocol) 通过协议名获取端口号

getservbyport($port, $protocol) 通过端口号获取协议名

 

getrandmax() 获取rand函数的最大随机数

 

getopt() 从命令行参数中获取选项(比如与 ls -a -l -h 等类似) 值得一看

 

getrusage() 获取资源使用情况, 比如swaps等使用情况

memory_get_usage() 获取PHP内存使用情况

 

gettype() 不可靠, 返回结果可能会被修改, 建议使用is_xxx系列

settype() 设置变量类型

 

highlight_file() 打印或者返回高亮后的PHP代码文件

highlight_string() 打印或者返回高亮后的PHP代码字符串

 

html_entity_decode() 反转由htmlentities格式化的数据

htmlspecialchars_decode() 反转由htmlspecialchars格式化的数据

 

http_build_query() 用数组生成urlencode之后的字符串

parse_str() 解析query string到数组 parse_str(http_build_query(array('name' => 'John', 'sex' => 'F')), $output);var_dump($output);

 

image_type_to_extension() 获取图像类型的文件后缀(已知道文件类型, 只是获取对应后缀)

image_type_to_mime_type() 取得图像类型的 MIME 类型(已知道文件类型, 只是获取对应 MIME 类型) image_type_to_mime_type(IMAGETYPE_PNG);

 

获取图片MIME类型

getimagesize($imgFile); 获取文件大小及MIME类型等信息

exif_imagetype($imgurl);通过exif扩展获取图片MIME类型等信息

 

iptcembed($iptc, $imageFile)  将二进制 IPTC(作者, 版权, 字幕, 细节描述等元数据) 数据嵌入到一幅 JPEG 图像中

iptcparse($iptc) 配合getimagesize获取到图像的IPTC数据, 然后使用此函数分解

 

init_get_all([$extension, [$detail = True]]); 获取某项(比如session等)或者所有配置信息

ini_restore($settingName);  恢复指定的配置选项到它的原始值

 

is_a 类似 instanceof 判断是否是本类或者其父类的实例, 可以参考is_subclass_of

is_nan 刚知道PHP中也有此类判断, Not A Number

is_numeric 判断是否为数字或者数字字符串

is_scalar 判断变量是否是一个标量

is_soap_fault($result) 判断一个soap请求是否错误

is_subclass_of() 判断一个对象是否是一个类的子类的实例

 

json_last_error() 获取最后一次json_encode或者json_decode的错误码

json_last_err_msg 获取最后一次json_encode或者json_decode的错误描述

 

lcfirst() 与ucfirst相反, 使一个字符串的第一个字母小写

 

mb_convert_encoding() 转换字符的编码

mb_convert_variables() 转换多个变量的字符编码

mb_detect_encoding() 检测一个字符的编码

 

max(array $arr) 此函数可以使用以下两种类型

max(mixed $a, mixed $b)

 

md5_file() 获取文件的MD5校验值

sha1() 对字符串进行sha1加密

sha1_file() 获取文件的sha1加密后的值

 

Memcache::setCompressThreshold(memcache_set_compress_threshold) 开启较大值自动压缩, 没必要对所有值都进行压缩(比如add('name', 'John', MEMCACHE_COMPRESSED)), 小值压缩后可能更大

 

Memcached 一个比 Memcache 更新的类

 

memory_get_peak_usage() 返回分配给PHP的内存的峰值

memory_get_usage() 返回分配给PHP的内存量

 

mt_srand() 给随机数播种, 自 PHP 4.2.0 起, 不再需要用 srand() 或 mt_srand() 给随机数发生器播种, 因为现在是由系统自动完成的

mt_rand() 比rand函数生成更好的随机数

mt_getrandmax() 获取mt_rand() 所能返回的最大的随机数

function randomFloat($min = 0, $max = 1) {
    return $min + mt_rand() / mt_getrandmax() * ($max - $min);
}

 

money_format() 返回格式化后的金钱数额

number_format() 返回格式化后的数值

 

输出缓冲是可堆叠的, 这即意谓着, 当有一个 ob_start() 是活跃的时, 你可以调用另一个 ob_start() , 只要确保又正确调用了 ob_end_flush() 恰当的次数即可, 如果有多重输出回调函数是活跃的, 输出内容会一直按嵌套的顺序依次通过它们而被过滤

ob_start([$output_callback]) 打开输出缓冲区, 如果指定了第一个参数, 当缓冲区内容被输出的时候, 将调用 $output = $output_callback($content), 并返回$output, 如果$output === False, 则会将内容原封不动的输出
ob_get_status() 得到所有输出缓冲区的状态

ob_list_handlers() 列出所有使用中的输出处理程序

以下为可用的输出缓冲处理程序

ob_gzhandler()

ob_iconv_handler() 需要用iconv_set_encoding()设置iconv的internal_encoding和output_encoding

ob_tidyhandler() 可以对内容加上HTML BODY等标签

 

三种方式对输出的内容进行压缩, 以减少网络传输流量

1、在php.ini中设置output_handler = ob_gzhandler
2、在.htaccess中加入php_value output_handler ob_gzhandler
3、在php文件头加上ob_start('ob_gzhandler');

 

rawurlencode() 与urlencode不同的是不会把空格转为'+'

rawurldecode() 解码

 

setrawcookie() 与setcookie不同的是在发送到浏览器之前不会对内容进行urlencode编码

 

levenshtein() 获取两个字符串间的编辑距离(复杂度是 O(m * n), m和n分别是两个字符串的长度)

similar_text() 获取两个字符串间的相似度(复杂度是 O(N**3))

 

sort, rsort, ksort, krsort, natsort, natcasesort, uksort, usort

 

array_change_key_case() 更改数组键名大小

array_column() 返回多维数组中某一列组成的数组

array_combine() 将两个数组结合, 一个坐位键名, 一个坐位键值

array_reduce() 用回调函数迭代的将数组简化为单一的值

array_chunk() 数组按长度切割

array_pad() 将数组补充到指定长度

range() 快速生成数组

str_split() 字符串按长度切割

str_pad() 将字符串补充到指定长度

str_repeat() 重复一个字符串n次

 

strcmp, strncmp, strnatcmp

strcasecmp, strncacecmp, strnatcasecmp

 

str_getcsv() 解析 CSV 字符串为一个数组

str_ireplace() 忽略字符串大小的字符串体会

str_pad() 使用另一个字符串填充字符串为指定长度

str_shuffle() 打乱一个字符串

strcspn() 获取不匹配遮罩的起始子字符串的长度

strpbrk($str, $char_list) 以$char_list中最早出现的一个字符为分割, 并且返回字母及以后的字符串

strtok($str, $token) 第一次以$token分割字符串,以后每次调用strtok($token)来获取子串

substr_compare() 截取两个字符串的某一段进行比较, 比strncmp功能更强大一些

substr_count() 统计一个字符串在另一个字符串中出现的次数

substr_replace() 比str_replace多了偏移量和长度选项

 

time_sleep_until($timestamp) 使脚本睡眠到指定的时间戳为止

usleep() 以微秒数延迟执行

 

 

//参数ticks表示运行多少语句(OPCODE)调用一次 register_tick_function 的函数,  即在 declare 代码段中解释器每执行 tick 条低级语句就会发生的事件(细节查看:http://blog.csdn.net/fwkjdaghappy1/article/details/7457687 或者 http://www.phppan.com/2013/02/php-ticks/)

function aaa() {echo 'aaaa';}

register_tick_function('aaa');

declare(ticks = n) {

  ...

}

 

pack函数用于将其它进制的数字压缩到位字符串之中, 也就是把其它进制数字转化为ASCII码字符串

 

JsonSerializable 当一个类实现JsonSerializable接口后, 可以增加jsonSerialize方法, 指定本类在json_encode的时候传入的数据

 

SPL

spl_autoload_call() 尝试调用所有已注册的__autoload()函数来装载请求类

spl_autoload_functions() 获取所有已注册的__autoload()函数

spl_autoload_register() 注册给定的函数作为__autoload()的实现

spl_autoload_unregister() 注销已注册的__autoload()函数

spl_classes() 返回所有的可用的SPL类

spl_object_hash() 返回一个对象的hash id, 每个对象都是唯一的, 即使此对象以后被修改

 

手册中按字母顺序排列出所有扩展:alphabetical

AMQP扩展

Apache扩展

BZIP2扩展 处理.bz2压缩文件

ZLib扩展 处理压缩

Ctype扩展

DOM扩展

Exif扩展 获取图像信息, 比如根据图像第一个字节, 并检查其签名, 获取图像类型(mime)的函数 exif_imagetype()

GD、ImageMagick 图像扩展

Mcrypt扩展

Opcode Descriptions and Examples了解Opcode操作

PDO扩展 深入了解下

你可能感兴趣的:(PHP)