zoukankan      html  css  js  c++  java
  • 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)

    stdClass 所有类的基类

    $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方式创建函数

    filter_var() 使用特定过滤器过滤一个变量,可用来校验,比如 filter_val('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_HOST_REQUIRED);

    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);

    插播几条长连接解决方案(得自:http://blog.jobbole.com/98902/)

      0.上面说的情况

      1.Ajax轮询

      优点
        实现简单。

      缺点
        这是通过模拟服务器发起的通信,不是实时通信,不顾及应用的状态改变而盲目检查更新,导致服务器资源的浪费,且会加重网络负载,拖累服务器。

      2、3、4为Comet:基于 HTTP 长连接的“服务器推”技术(参考:http://www.ibm.com/developerworks/cn/web/wa-lo-comet/)

      2.HTTP 和JSONP方式的长轮询 建立一个script标签向服务器端发送请求, 在服务器端使用set_time_limit(0), While循环等待, 有事件时把内容发送回浏览器; 然后继续打开一个新的script标签获取下一个事件...

      3.XHR长轮询 客户端打开一个到服务器端的 AJAX 请求然后等待响应;服务器端需要一些特定的功能来允许请求被挂起,只要一有事件发生,服务器端就会在挂起的请求中送回响应并关闭该请求。客户端 JavaScript 响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接;如此循环。现在浏览器已经支持CROS的跨域方式请求,因此HTTP和JSONP的长轮询方式是慢慢被淘汰的一种技术,建议采用XHR长轮询。

      长轮询优点
        客户端很容易实现良好的错误处理系统和超时管理,实现成本与Ajax轮询的方式类似。
      长轮询缺点
        需要服务器端有特殊的功能来临时挂起连接。当客户端发起的连接较多时,服务器端会长期保持多个连接,具有一定的风险。

      4.iframe 是很早就存在的一种 HTML 标记, 通过在 HTML 页面里嵌入一个隐蔵帧,然后将这个隐蔵帧的 SRC 属性设为对一个长连接的请求,服务器端就能源源不断地往客户端输入数据。

      优点:
        这种方式每次数据传送不会关闭连接,连接只会在通信出现错误时,或是连接重建时关闭(一些防火墙常被设置为丢弃过长的连接, 服务器端可以设置一个超时时间, 超时后通知客户端重新建立连接,并关闭原来的连接)。

      缺点
        IE、Morzilla Firefox 下端的进度栏都会显示加载没有完成,而且 IE 上方的图标会不停的转动,表示加载正在进行。

        Google 的天才们使用一个称为“htmlfile”的 ActiveX 解决了在 IE 中的加载显示问题,并将这种方法用到了 gmail+gtalk 产品中。Alex Russell 在 “What else is burried down in the depth’s of Google’s amazing JavaScript?”文章中介绍了这种方法。Zeitoun 网站提供的 comet-iframe.tar.gz,封装了一个基于 iframe 和 htmlfile 的 JavaScript comet 对象,支持 IE、Mozilla Firefox 浏览器,可以作为参考。

        我们常用的网页版的gtalk就是这种实现方式,Google的开发人员使使用一个称为“htmlfile”的 ActiveX 解决了在 IE 中的加载显示问题。

      5.comet实现框架CometD、Atmosphere、Pushlet

      6.websocket

      总结下来长轮询不是一个很好的方案,而且对于服务器而言是有风险的;另外支持WebSocket协议的浏览器都比较新,特比是IE需要10以上的版本;而我们的业务是面向于商家端,商家的浏览器版本相对较低,很多对WebSocket都不支持;相对而言Comet的方式比较适合,也有相应的实现框架,实现成本最低

    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() 获取当前脚本的索引节点

    defined(__CLASS__ . '::CONSTNAME') 可以如此适用于类

    constant() 获取已定义的常量,适用于defind、类中const

    $class::constants($prefix); 获取类中以 $prefix 为前缀的常量

    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_splice($data, $index, 0, array($item)) 在数组某个位置插入元素

    array_fill_keys($keys, $value) 把键名组成的索引数组, 转为键名和$value数组

    array_search($search, $searched) 在数组中搜索某个元素

    array_change_key_case() 更改数组键名大小

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

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

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

    array_chunk() 数组按长度切割

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

    array_replace_recursive(),可以替代自己实现递归合并(array_merge_recursive)

    range() 快速生成数组

    str_split() 字符串按长度切割

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

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

    strtr() 挨个转换字符或者str_replace($str, arrayFrom, arrayTo)

    strcmp, strncmp, strnatcmp

    strcasecmp, strncacecmp, strnatcasecmp

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

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

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

    str_shuffle() 打乱一个字符串

    strspn($subject, $mask[, $start[, $length]]); 不论字符顺序,返回字符串$subject中,从$start处开始符合$mask中字符的子字符串长度。如果开始处的第一个字符不符合,那么返回的结果就是0!

    strcspn(string $str1 , string $str2 [, int $start [, int $length ]]); 不论字符顺序,返回字符串$str1中,从$start处开始,不符合$str2中字符的子字符串长度。如果开始处的第一个字符就符合,那么返回的结果就是0!

    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是Standard PHP Library(PHP标准库)的缩写,需要好好学习!

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

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

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

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

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

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

    hash 可以指定哈希算法,但无需指定密钥

    hash_hmac 利用指定哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要输出

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

    AMQP扩展

    Apache扩展

    BZIP2扩展 处理.bz2压缩文件

    ZLib扩展 处理压缩

    Ctype扩展

    DOM扩展

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

    GD、ImageMagick 图像扩展

    Mcrypt扩展,可以参考Yii的CSecurityManager类

    Opcode Descriptions and Examples了解Opcode操作

    PDO扩展 深入了解下

  • 相关阅读:
    Windows环境安装tesseract-ocr 4.00并配置环境变量
    python问题集
    使用CefSharp在.Net程序中嵌入Chrome浏览器(八)——Cookie
    python虛擬環境和工具
    pycharm使用(持续更新)
    醒过来的都市
    下一个十年计划6-作品
    下一个十年计划5-方向选择
    下一个十年计划4-反向选择
    负逻辑的实际应用
  • 原文地址:https://www.cnblogs.com/JohnABC/p/4496070.html
Copyright © 2011-2022 走看看