\

Namespaces

App
Composer
Cron
EasySwoole
FastRoute
JsonSchema
PhpParser
Psr
Seld
SuperClosure
Swoole
Symfony

Classes

BarBucCommand Base class for all commands.
Chan Class Channel
Co Class Co Coroutine的短名API
ComposerAutoloaderInit39c942b632cede01f1d7b73c9e52be15
Foo1Command Base class for all commands.
Foo2Command Base class for all commands.
Foo3Command Base class for all commands.
Foo4Command Base class for all commands.
Foo5Command Base class for all commands.
Foo6Command Base class for all commands.
FoobarCommand Base class for all commands.
FooCommand Base class for all commands.
FooLock2Command Base class for all commands.
FooLockCommand Base class for all commands.
FooOptCommand Base class for all commands.
FooSameCaseLowercaseCommand Base class for all commands.
FooSameCaseUppercaseCommand Base class for all commands.
FooSubnamespaced1Command Base class for all commands.
FooSubnamespaced2Command Base class for all commands.
FooWithoutAliasCommand Base class for all commands.
JsonParserTest
swoole_atomic Class swoole_atomic
swoole_buffer Class swoole_buffer
swoole_channel Class swoole_channel
swoole_client swoole_client
swoole_http2_client
swoole_http_client swoole_http_client
swoole_http_request Http请求对象 Class swoole_http_request
swoole_http_response Http响应对象 Class swoole_http_response
swoole_http_server Class swoole_http_server
swoole_lock Class swoole_lock
swoole_mysql Class Mysql
swoole_mysql_exception
swoole_process swoole进程管理类 内置IPC通信支持,子进程和主进程之间可以方便的通信 支持标准输入输出重定向,子进程内echo,会发送到管道中,而不是输出屏幕
swoole_redis 异步Redis客户端
swoole_redis_server Redis服务器端
swoole_serialize swoole的二进制序列化库 序列化后的结果为二进制格式,只适合机器读取,不适合人读 序列化性能更高,可节省大量CPU资源,基准测试中序列化和反序列化耗时为PHP官方serialize的40% 序列化后的结果数据尺寸更小,可节省内存资源,基准测试中序列化结果尺寸为PHP官方serialize的50%
swoole_server Class swoole_server
swoole_server_port Class swoole_server_port
swoole_table 内存表
swoole_websocket_frame
swoole_websocket_server Class swoole_http_server
TestCommand Base class for all commands.
TestTiti Base class for all commands.
TestToto Base class for all commands.
UseTest

Constants

ARGS

ARGS = '\((?<args>[^()]*+(?:\((?&args)\)[^()]*+)*+)\)'

ERR_READ_FAILED

ERR_READ_FAILED = 3

ERR_SELECT_FAILED

ERR_SELECT_FAILED = 1

ERR_TIMEOUT

ERR_TIMEOUT = 2

ERR_WRITE_FAILED

ERR_WRITE_FAILED = 4

LDAP_ESCAPE_DN

LDAP_ESCAPE_DN = 2

LDAP_ESCAPE_FILTER

LDAP_ESCAPE_FILTER = 1

LIB

LIB = '(?(DEFINE)
    (?<singleQuotedString>\'[^\\\\\']*+(?:\\\\.[^\\\\\']*+)*+\')
    (?<doubleQuotedString>"[^\\\\"]*+(?:\\\\.[^\\\\"]*+)*+")
    (?<string>(?&singleQuotedString)|(?&doubleQuotedString))
    (?<comment>/\*[^*]*+(?:\*(?!/)[^*]*+)*+\*/)
    (?<code>\{[^\'"/{}]*+(?:(?:(?&string)|(?&comment)|(?&code)|/)[^\'"/{}]*+)*+})
)'

MB_CASE_LOWER

MB_CASE_LOWER = 1

MB_CASE_TITLE

MB_CASE_TITLE = 2

MB_CASE_UPPER

MB_CASE_UPPER = 0

PARAMS

PARAMS = '\[(?<params>[^[\]]*+(?:\[(?&params)\][^[\]]*+)*+)\]'

SWOOLE_AIO_BASE

SWOOLE_AIO_BASE = 0

SWOOLE_AIO_LINUX

SWOOLE_AIO_LINUX = 1

SWOOLE_ASYNC

SWOOLE_ASYNC = 1024

SWOOLE_BASE

SWOOLE_BASE = 4

SWOOLE_DTLSv1_CLIENT_METHOD

SWOOLE_DTLSv1_CLIENT_METHOD = 17

SWOOLE_DTLSv1_METHOD

SWOOLE_DTLSv1_METHOD = 15

SWOOLE_DTLSv1_SERVER_METHOD

SWOOLE_DTLSv1_SERVER_METHOD = 16

SWOOLE_ERROR_DATA_LENGTH_TOO_LARGE

SWOOLE_ERROR_DATA_LENGTH_TOO_LARGE = 1202

SWOOLE_ERROR_DNSLOOKUP_DUPLICATE_REQUEST

SWOOLE_ERROR_DNSLOOKUP_DUPLICATE_REQUEST = 703

SWOOLE_ERROR_DNSLOOKUP_RESOLVE_FAILED

SWOOLE_ERROR_DNSLOOKUP_RESOLVE_FAILED = 704

SWOOLE_ERROR_FILE_EMPTY

SWOOLE_ERROR_FILE_EMPTY = 702

SWOOLE_ERROR_FILE_NOT_EXIST

SWOOLE_ERROR_FILE_NOT_EXIST = 700

SWOOLE_ERROR_FILE_TOO_LARGE

SWOOLE_ERROR_FILE_TOO_LARGE = 701

SWOOLE_ERROR_HTTP2_STREAM_ID_TOO_BIG

SWOOLE_ERROR_HTTP2_STREAM_ID_TOO_BIG = 3001

SWOOLE_ERROR_HTTP2_STREAM_NO_HEADER

SWOOLE_ERROR_HTTP2_STREAM_NO_HEADER = 3002

SWOOLE_ERROR_HTTP_INVALID_PROTOCOL

SWOOLE_ERROR_HTTP_INVALID_PROTOCOL = 8002

SWOOLE_ERROR_HTTP_PROXY_HANDSHAKE_ERROR

SWOOLE_ERROR_HTTP_PROXY_HANDSHAKE_ERROR = 8001

SWOOLE_ERROR_INVALID_PARAMS

SWOOLE_ERROR_INVALID_PARAMS = 505

SWOOLE_ERROR_MALLOC_FAIL

SWOOLE_ERROR_MALLOC_FAIL = 501

SWOOLE_ERROR_NAME_TOO_LONG

SWOOLE_ERROR_NAME_TOO_LONG = 504

SWOOLE_ERROR_OUTPUT_BUFFER_OVERFLOW

SWOOLE_ERROR_OUTPUT_BUFFER_OVERFLOW = 1008

SWOOLE_ERROR_PACKAGE_LENGTH_TOO_LARGE

SWOOLE_ERROR_PACKAGE_LENGTH_TOO_LARGE = 1201

SWOOLE_ERROR_PHP_FATAL_ERROR

SWOOLE_ERROR_PHP_FATAL_ERROR = 503

SWOOLE_ERROR_SERVER_INVALID_LISTEN_PORT

SWOOLE_ERROR_SERVER_INVALID_LISTEN_PORT = 9004

SWOOLE_ERROR_SERVER_MUST_CREATED_BEFORE_CLIENT

SWOOLE_ERROR_SERVER_MUST_CREATED_BEFORE_CLIENT = 9001

SWOOLE_ERROR_SERVER_NO_IDLE_WORKER

SWOOLE_ERROR_SERVER_NO_IDLE_WORKER = 9007

SWOOLE_ERROR_SERVER_ONLY_START_ONE

SWOOLE_ERROR_SERVER_ONLY_START_ONE = 9008

SWOOLE_ERROR_SERVER_PIPE_BUFFER_FULL

SWOOLE_ERROR_SERVER_PIPE_BUFFER_FULL = 9006

SWOOLE_ERROR_SERVER_TOO_MANY_LISTEN_PORT

SWOOLE_ERROR_SERVER_TOO_MANY_LISTEN_PORT = 9005

SWOOLE_ERROR_SERVER_TOO_MANY_SOCKET

SWOOLE_ERROR_SERVER_TOO_MANY_SOCKET = 9002

SWOOLE_ERROR_SERVER_WORKER_EXIT_TIMEOUT

SWOOLE_ERROR_SERVER_WORKER_EXIT_TIMEOUT = 9009

SWOOLE_ERROR_SERVER_WORKER_TERMINATED

SWOOLE_ERROR_SERVER_WORKER_TERMINATED = 9003

SWOOLE_ERROR_SESSION_CLOSED

SWOOLE_ERROR_SESSION_CLOSED = 1004

SWOOLE_ERROR_SESSION_CLOSED_BY_CLIENT

SWOOLE_ERROR_SESSION_CLOSED_BY_CLIENT = 1002

SWOOLE_ERROR_SESSION_CLOSED_BY_SERVER

SWOOLE_ERROR_SESSION_CLOSED_BY_SERVER = 1001

SWOOLE_ERROR_SESSION_CLOSING

SWOOLE_ERROR_SESSION_CLOSING = 1003

SWOOLE_ERROR_SESSION_DISCARD_TIMEOUT_DATA

SWOOLE_ERROR_SESSION_DISCARD_TIMEOUT_DATA = 1007

SWOOLE_ERROR_SESSION_INVALID_ID

SWOOLE_ERROR_SESSION_INVALID_ID = 1006

SWOOLE_ERROR_SESSION_NOT_EXIST

SWOOLE_ERROR_SESSION_NOT_EXIST = 1005

SWOOLE_ERROR_SOCKS5_AUTH_FAILED

SWOOLE_ERROR_SOCKS5_AUTH_FAILED = 7003

SWOOLE_ERROR_SOCKS5_SERVER_ERROR

SWOOLE_ERROR_SOCKS5_SERVER_ERROR = 7004

SWOOLE_ERROR_SOCKS5_UNSUPPORT_METHOD

SWOOLE_ERROR_SOCKS5_UNSUPPORT_METHOD = 7002

SWOOLE_ERROR_SOCKS5_UNSUPPORT_VERSION

SWOOLE_ERROR_SOCKS5_UNSUPPORT_VERSION = 7001

SWOOLE_ERROR_SSL_BAD_CLIENT

SWOOLE_ERROR_SSL_BAD_CLIENT = 1013

SWOOLE_ERROR_SSL_BAD_PROTOCOL

SWOOLE_ERROR_SSL_BAD_PROTOCOL = 1014

SWOOLE_ERROR_SSL_CANNOT_USE_SENFILE

SWOOLE_ERROR_SSL_CANNOT_USE_SENFILE = 1010

SWOOLE_ERROR_SSL_EMPTY_PEER_CERTIFICATE

SWOOLE_ERROR_SSL_EMPTY_PEER_CERTIFICATE = 1011

SWOOLE_ERROR_SSL_NOT_READY

SWOOLE_ERROR_SSL_NOT_READY = 1009

SWOOLE_ERROR_SSL_VEFIRY_FAILED

SWOOLE_ERROR_SSL_VEFIRY_FAILED = 1012

SWOOLE_ERROR_SYSTEM_CALL_FAIL

SWOOLE_ERROR_SYSTEM_CALL_FAIL = 502

SWOOLE_ERROR_TASK_DISPATCH_FAIL

SWOOLE_ERROR_TASK_DISPATCH_FAIL = 2002

SWOOLE_ERROR_TASK_PACKAGE_TOO_BIG

SWOOLE_ERROR_TASK_PACKAGE_TOO_BIG = 2001

SWOOLE_ERROR_WEBSOCKET_BAD_CLIENT

SWOOLE_ERROR_WEBSOCKET_BAD_CLIENT = 8501

SWOOLE_ERROR_WEBSOCKET_BAD_OPCODE

SWOOLE_ERROR_WEBSOCKET_BAD_OPCODE = 8502

SWOOLE_ERROR_WEBSOCKET_HANDSHAKE_FAILED

SWOOLE_ERROR_WEBSOCKET_HANDSHAKE_FAILED = 8504

SWOOLE_ERROR_WEBSOCKET_UNCONNECTED

SWOOLE_ERROR_WEBSOCKET_UNCONNECTED = 8503

SWOOLE_EVENT_READ

SWOOLE_EVENT_READ = 512

SWOOLE_EVENT_WRITE

SWOOLE_EVENT_WRITE = 1024

SWOOLE_FAST_PACK

SWOOLE_FAST_PACK = 1

SWOOLE_FILELOCK

SWOOLE_FILELOCK = 2

SWOOLE_IPC_MSGQUEUE

SWOOLE_IPC_MSGQUEUE = 2

SWOOLE_IPC_PREEMPTIVE

SWOOLE_IPC_PREEMPTIVE = 3

SWOOLE_IPC_UNSOCK

SWOOLE_IPC_UNSOCK = 1

SWOOLE_KEEP

SWOOLE_KEEP = 4096

SWOOLE_MUTEX

SWOOLE_MUTEX = 3

SWOOLE_PROCESS

SWOOLE_PROCESS = 3

SWOOLE_REDIS_MODE_MULTI

SWOOLE_REDIS_MODE_MULTI = 0

SWOOLE_REDIS_MODE_MULTI

SWOOLE_REDIS_MODE_MULTI = 1

SWOOLE_REDIS_MODE_PIPELINE

SWOOLE_REDIS_MODE_PIPELINE = 1

SWOOLE_REDIS_MODE_PIPELINE

SWOOLE_REDIS_MODE_PIPELINE = 1

SWOOLE_REDIS_TYPE_HASH

SWOOLE_REDIS_TYPE_HASH = 1

SWOOLE_REDIS_TYPE_HASH

SWOOLE_REDIS_TYPE_HASH = 5

SWOOLE_REDIS_TYPE_LIST

SWOOLE_REDIS_TYPE_LIST = 1

SWOOLE_REDIS_TYPE_LIST

SWOOLE_REDIS_TYPE_LIST = 3

SWOOLE_REDIS_TYPE_NOT_FOUND

SWOOLE_REDIS_TYPE_NOT_FOUND = 1

SWOOLE_REDIS_TYPE_NOT_FOUND

SWOOLE_REDIS_TYPE_NOT_FOUND = 0

SWOOLE_REDIS_TYPE_SET

SWOOLE_REDIS_TYPE_SET = 2

SWOOLE_REDIS_TYPE_SET

SWOOLE_REDIS_TYPE_SET = 1

SWOOLE_REDIS_TYPE_STRING

SWOOLE_REDIS_TYPE_STRING = 1

SWOOLE_REDIS_TYPE_STRING

SWOOLE_REDIS_TYPE_STRING = 1

SWOOLE_REDIS_TYPE_ZSET

SWOOLE_REDIS_TYPE_ZSET = 4

SWOOLE_REDIS_TYPE_ZSET

SWOOLE_REDIS_TYPE_ZSET = 1

SWOOLE_RWLOCK

SWOOLE_RWLOCK = 1

SWOOLE_SEM

SWOOLE_SEM = 4

SWOOLE_SOCK_ASYNC

SWOOLE_SOCK_ASYNC = 1

SWOOLE_SOCK_SYNC

SWOOLE_SOCK_SYNC = 0

SWOOLE_SOCK_TCP

SWOOLE_SOCK_TCP = 1

SWOOLE_SOCK_TCP6

SWOOLE_SOCK_TCP6 = 3

SWOOLE_SOCK_UDP

SWOOLE_SOCK_UDP = 2

SWOOLE_SOCK_UDP6

SWOOLE_SOCK_UDP6 = 4

SWOOLE_SOCK_UNIX_DGRAM

SWOOLE_SOCK_UNIX_DGRAM = 5

SWOOLE_SOCK_UNIX_STREAM

SWOOLE_SOCK_UNIX_STREAM = 6

SWOOLE_SPINLOCK

SWOOLE_SPINLOCK = 5

SWOOLE_SSL

SWOOLE_SSL = 512

SWOOLE_SSLv23_CLIENT_METHOD

SWOOLE_SSLv23_CLIENT_METHOD = 5

SWOOLE_SSLv23_METHOD

SWOOLE_SSLv23_METHOD = 0

SWOOLE_SSLv23_SERVER_METHOD

SWOOLE_SSLv23_SERVER_METHOD = 4

SWOOLE_SSLv3_CLIENT_METHOD

SWOOLE_SSLv3_CLIENT_METHOD = 3

SWOOLE_SSLv3_METHOD

SWOOLE_SSLv3_METHOD = 1

SWOOLE_SSLv3_SERVER_METHOD

SWOOLE_SSLv3_SERVER_METHOD = 2

SWOOLE_SYNC

SWOOLE_SYNC = 2048

SWOOLE_TCP

SWOOLE_TCP = 1

SWOOLE_TCP6

SWOOLE_TCP6 = 3

SWOOLE_THREAD

SWOOLE_THREAD = 2

SWOOLE_TLSv1_1_CLIENT_METHOD

SWOOLE_TLSv1_1_CLIENT_METHOD = 11

SWOOLE_TLSv1_1_METHOD

SWOOLE_TLSv1_1_METHOD = 9

SWOOLE_TLSv1_1_SERVER_METHOD

SWOOLE_TLSv1_1_SERVER_METHOD = 10

SWOOLE_TLSv1_2_CLIENT_METHOD

SWOOLE_TLSv1_2_CLIENT_METHOD = 14

SWOOLE_TLSv1_2_METHOD

SWOOLE_TLSv1_2_METHOD = 12

SWOOLE_TLSv1_2_SERVER_METHOD

SWOOLE_TLSv1_2_SERVER_METHOD = 13

SWOOLE_TLSv1_CLIENT_METHOD

SWOOLE_TLSv1_CLIENT_METHOD = 8

SWOOLE_TLSv1_METHOD

SWOOLE_TLSv1_METHOD = 6

SWOOLE_TLSv1_SERVER_METHOD

SWOOLE_TLSv1_SERVER_METHOD = 7

SWOOLE_UDP

SWOOLE_UDP = 2

SWOOLE_UDP6

SWOOLE_UDP6 = 4

SWOOLE_UNIX_DGRAM

SWOOLE_UNIX_DGRAM = 5

SWOOLE_UNIX_STREAM

SWOOLE_UNIX_STREAM = 6

SWOOLE_VERSION

SWOOLE_VERSION = '2.1.0'

UNSERIALIZE_OBJECT_TO_ARRAY

UNSERIALIZE_OBJECT_TO_ARRAY = 1

UNSERIALIZE_OBJECT_TO_STDCLASS

UNSERIALIZE_OBJECT_TO_STDCLASS = 2

WEBSOCKET_OPCODE_BINARY

WEBSOCKET_OPCODE_BINARY = 2

WEBSOCKET_OPCODE_PING

WEBSOCKET_OPCODE_PING = 9

WEBSOCKET_OPCODE_TEXT

WEBSOCKET_OPCODE_TEXT = 1

WEBSOCKET_STATUS_ACTIVE

WEBSOCKET_STATUS_ACTIVE = 3

WEBSOCKET_STATUS_CONNECTION

WEBSOCKET_STATUS_CONNECTION = 1

WEBSOCKET_STATUS_FRAME

WEBSOCKET_STATUS_FRAME = 3

WEBSOCKET_STATUS_HANDSHAKE

WEBSOCKET_STATUS_HANDSHAKE = 2

Functions

assertArgs()

assertArgs(  $num,   $args,   $name) 

Parameters

$num
$args
$name

composerRequire39c942b632cede01f1d7b73c9e52be15()

composerRequire39c942b632cede01f1d7b73c9e52be15(  $fileIdentifier,   $file) 

Parameters

$fileIdentifier
$file

ctype_alnum()

ctype_alnum(  $text) 

Parameters

$text

ctype_alpha()

ctype_alpha(  $text) 

Parameters

$text

ctype_cntrl()

ctype_cntrl(  $text) 

Parameters

$text

ctype_digit()

ctype_digit(  $text) 

Parameters

$text

ctype_graph()

ctype_graph(  $text) 

Parameters

$text

ctype_lower()

ctype_lower(  $text) 

Parameters

$text

ctype_print()

ctype_print(  $text) 

Parameters

$text

ctype_punct()

ctype_punct(  $text) 

Parameters

$text

ctype_space()

ctype_space(  $text) 

Parameters

$text

ctype_upper()

ctype_upper(  $text) 

Parameters

$text

ctype_xdigit()

ctype_xdigit(  $text) 

Parameters

$text

ensureDirExists()

ensureDirExists(  $dir) 

Parameters

$dir

go()

go(callable|string|array  $function) 

创建一个协程 go(function () {}); go("test"); go([$object, "method"]);

Parameters

callable|string|array $function

gzopen()

gzopen(  $filename,   $mode,   $use_include_path) 

Parameters

$filename
$mode
$use_include_path

gzseek()

gzseek(  $zp,   $offset,   $whence = SEEK_SET) 

Parameters

$zp
$offset
$whence

gztell()

gztell(  $zp) 

Parameters

$zp

handleSignal()

handleSignal(  $signal) 

Runs a PHP script that can be stopped only with a SIGKILL (9) signal for 3 seconds.

Parameters

$signal

Examples

NonStopableProcess.php 42` will run the script for 42 seconds
** File not found : `php **

hash_equals()

hash_equals(  $knownString,   $userInput) 

Parameters

$knownString
$userInput

includeIfExists()

includeIfExists(  $file) 

Parameters

$file

ldap_escape()

ldap_escape(  $subject,   $ignore = '',   $flags) 

Parameters

$subject
$ignore
$flags

magicSplit()

magicSplit(  $regex,   $string) 

Parameters

$regex
$string

mb_check_encoding()

mb_check_encoding(  $var = null,   $encoding = null) 

Parameters

$var
$encoding

mb_chr()

mb_chr(  $code,   $enc = null) 

Parameters

$code
$enc

mb_convert_case()

mb_convert_case(  $s,   $mode,   $enc = null) 

Parameters

$s
$mode
$enc

mb_convert_encoding()

mb_convert_encoding(  $s,   $to,   $from = null) 

Parameters

$s
$to
$from

mb_convert_variables()

mb_convert_variables(  $toEncoding,   $fromEncoding,   $a = null,   $b = null,   $c = null,   $d = null,   $e = null,   $f = null) 

Parameters

$toEncoding
$fromEncoding
$a
$b
$c
$d
$e
$f

mb_decode_mimeheader()

mb_decode_mimeheader(  $s) 

Parameters

$s

mb_decode_numericentity()

mb_decode_numericentity(  $s,   $convmap,   $enc = null) 

Parameters

$s
$convmap
$enc

mb_detect_encoding()

mb_detect_encoding(  $str,   $encodingList = null,   $strict = false) 

Parameters

$str
$encodingList
$strict

mb_detect_order()

mb_detect_order(  $encodingList = null) 

Parameters

$encodingList

mb_encode_mimeheader()

mb_encode_mimeheader(  $s,   $charset = null,   $transferEnc = null,   $lf = null,   $indent = null) 

Parameters

$s
$charset
$transferEnc
$lf
$indent

mb_encode_numericentity()

mb_encode_numericentity(  $s,   $convmap,   $enc = null,   $is_hex = false) 

Parameters

$s
$convmap
$enc
$is_hex

mb_encoding_aliases()

mb_encoding_aliases(  $encoding) 

Parameters

$encoding

mb_get_info()

mb_get_info(  $type = 'all') 

Parameters

$type

mb_http_input()

mb_http_input(  $type = '') 

Parameters

$type

mb_http_output()

mb_http_output(  $enc = null) 

Parameters

$enc

mb_internal_encoding()

mb_internal_encoding(  $enc = null) 

Parameters

$enc

mb_language()

mb_language(  $lang = null) 

Parameters

$lang

mb_list_encodings()

mb_list_encodings() 

mb_ord()

mb_ord(  $s,   $enc = null) 

Parameters

$s
$enc

mb_output_handler()

mb_output_handler(  $contents,   $status) 

Parameters

$contents
$status

mb_parse_str()

mb_parse_str(  $s,   $result = array()) 

Parameters

$s
$result

mb_scrub()

mb_scrub(  $s,   $enc = null) 

Parameters

$s
$enc

mb_stripos()

mb_stripos(  $s,   $needle,   $offset,   $enc = null) 

Parameters

$s
$needle
$offset
$enc

mb_stristr()

mb_stristr(  $s,   $needle,   $part = false,   $enc = null) 

Parameters

$s
$needle
$part
$enc

mb_strlen()

mb_strlen(  $s,   $enc = null) 

Parameters

$s
$enc

mb_strpos()

mb_strpos(  $s,   $needle,   $offset,   $enc = null) 

Parameters

$s
$needle
$offset
$enc

mb_strrchr()

mb_strrchr(  $s,   $needle,   $part = false,   $enc = null) 

Parameters

$s
$needle
$part
$enc

mb_strrichr()

mb_strrichr(  $s,   $needle,   $part = false,   $enc = null) 

Parameters

$s
$needle
$part
$enc

mb_strripos()

mb_strripos(  $s,   $needle,   $offset,   $enc = null) 

Parameters

$s
$needle
$offset
$enc

mb_strrpos()

mb_strrpos(  $s,   $needle,   $offset,   $enc = null) 

Parameters

$s
$needle
$offset
$enc

mb_strstr()

mb_strstr(  $s,   $needle,   $part = false,   $enc = null) 

Parameters

$s
$needle
$part
$enc

mb_strtolower()

mb_strtolower(  $s,   $enc = null) 

Parameters

$s
$enc

mb_strtoupper()

mb_strtoupper(  $s,   $enc = null) 

Parameters

$s
$enc

mb_strwidth()

mb_strwidth(  $s,   $enc = null) 

Parameters

$s
$enc

mb_substitute_character()

mb_substitute_character(  $char = null) 

Parameters

$char

mb_substr()

mb_substr(  $s,   $start,   $length = 2147483647,   $enc = null) 

Parameters

$s
$start
$length
$enc

mb_substr_count()

mb_substr_count(  $haystack,   $needle,   $enc = null) 

Parameters

$haystack
$needle
$enc

regex()

regex(  $regex) 

Parameters

$regex

removeTrailingWhitespace()

removeTrailingWhitespace(  $code) 

Parameters

$code

resolveMacros()

resolveMacros(  $code) 

Parameters

$code

resolveNodes()

resolveNodes(  $code) 

Parameters

$code

resolveStackAccess()

resolveStackAccess(  $code) 

Parameters

$code

showHelp()

showHelp(  $error) 

Parameters

$error

swoole_async_dns_lookup()

swoole_async_dns_lookup(string  $domain, callback  $callback) 

将域名解析为IP地址 调用此函数会立即返回,当DNS查询完成时,自动回调指定的callback函数

callback($host, $ip)

Parameters

string $domain
callback $callback

swoole_async_read()

swoole_async_read(string  $filename, mixed  $callback, integer  $trunk_size = 8192, integer  $offset) : boolean

异步读文件

使用此函数读取文件是非阻塞的,当读操作完成时会自动回调制定的函数 此函数与swoole_async_readfile不同,它是分段读取,可以用于读取超大文件。 每次只读 $trunk_size 个字节,不会占用太多内存

callback($filename, $content) callback函数,可以通过return true/false,来控制是否继续读下一个trunk return true,继续读取 return false,停止读取并关闭文件

Parameters

string $filename
mixed $callback
integer $trunk_size
integer $offset

(在 1.7.13 或更高版本可用)

Returns

boolean

swoole_async_readfile()

swoole_async_readfile(string  $filename, mixed  $callback) 

异步读取文件内容 此函数调用后会马上返回,当文件读取完毕时会回调制定的callback函数。 callback( $filename, $content )

swoole_async_readfile会将文件内容全部复制到内存,所以不能用于大文件的读取 如果要读取超大文件,请使用swoole_async_read函数 swoole_async_readfile最大可读取4M的文件,受限于SW_AIO_MAX_FILESIZE宏

Parameters

string $filename
mixed $callback

swoole_async_set()

swoole_async_set(array  $setting) 

设置异步相关的参数

Parameters

array $setting

swoole_async_write()

swoole_async_write(string  $filename, string  $content, integer  $offset = -1, mixed  $callback = null) : boolean

异步写文件

与swoole_async_writefile不同,write是分段读写的。 不需要一次性将要写的内容放到内存里,所以只占用少量内存。 swoole_async_write通过传入的offset参数来确定写入的位置

callback($filename)

Parameters

string $filename
string $content
integer $offset
mixed $callback

Returns

boolean

swoole_async_writefile()

swoole_async_writefile(string  $filename, string  $content, callback  $callback, integer  $flags) 

异步写文件,调用此函数后会立即返回, 当写入完成时会自动回调指定的callback函数 callback($filename)

swoole_async_writefile最大可写入4M的文件 swoole_async_writefile可以不指定回调函数

Parameters

string $filename
string $content
callback $callback
integer $flags

(在 1.9.1 或更高版本可用)

swoole_client_select()

swoole_client_select(array  $read, array  $write, array  $error, float  $timeout) : integer

IO事件循环

swoole_client的并行处理中用了select来做IO事件循环。为什么要用select呢? 因为client一般不会有太多连接,而且大部分socket会很快接收到响应数据。 在少量连接的情况下select比epoll性能更好,另外select更简单。

$read,$write,$error分别是可读/可写/错误的文件描述符。 这3个参数必须是数组变量的引用。数组的元素必须为swoole_client对象。 $timeout参数是select的超时时间,单位为秒,接受浮点数。

调用成功后,会返回事件的数量,并修改$read/$write/$error数组。 使用foreach遍历数组,然后执行$item->recv/$item->send来收发数据。 或者调用$item->close()或unset($item)来关闭socket。

Parameters

array $read

可读

array $write

可写

array $error

错误

float $timeout

Returns

integer

swoole_connection_info()

swoole_connection_info(\swoole_server  $serv, integer  $fd) : array

获取客户端连接的信息

返回数组含义: from_id 来自哪个poll线程 from_fd 来自哪个server socket from_port 来自哪个Server端口 remote_port 客户端连接的端口 remote_ip 客户端连接的ip

以下 v1.6.10 增加 connect_time 连接时间 last_time 最后一次发送数据的时间

Parameters

\swoole_server $serv
integer $fd

Returns

array —

on success or false on failure.

swoole_connection_list()

swoole_connection_list(\swoole_server  $serv, integer  $start_fd, integer  $pagesize = 10) : array

遍历当前Server所有的客户端连接

此函数接受3个参数,第一个参数是server的资源对象,第二个参数是起始fd,第三个参数是每页取多少条,最大不得超过100。 调用成功将返回一个数字索引数组,元素是取到的$fd。 数组会按从小到大排序,最后一个$fd作为新的start_fd再次尝试获取。

Parameters

\swoole_server $serv
integer $start_fd
integer $pagesize

Returns

array —

on success or false on failure

swoole_errno()

swoole_errno() : integer

获取最近一次系统调用的错误码,等同于C/C++的errno变量。

Returns

integer

swoole_event_add()

swoole_event_add(integer  $sock,   $read_callback = null,   $write_callback = null,   $flag = null) : boolean

将Socket加入到swoole的reactor事件监听中

此函数可以用在Server或Client模式下

参数1为socket的文件描述符; 参数2为回调函数,可以是字符串函数名、对象+方法、类静态方法或匿名函数,当此socket可读是回调制定的函数。

Server程序中会增加到server socket的reactor中。 Client程序中,如果是第一次调用此函数会自动创建一个reactor,并添加此socket,程序将在此处进行wait。 swoole_event_add函数之后的代码不会执行。当调用swoole_event_exit才会停止wait,程序继续向下执行。 第二次调用只增加此socket到reactor中,开始监听事件

Parameters

integer $sock
$read_callback
$write_callback
$flag

Returns

boolean

swoole_event_del()

swoole_event_del(integer  $sock) : boolean

从reactor中移除监听的Socket

swoole_event_del应当与 swoole_event_add 成对使用

Parameters

integer $sock

Returns

boolean

swoole_event_exit()

swoole_event_exit() : void

退出事件轮询

swoole_event_set()

swoole_event_set(  $sock,   $read_callback = null, null  $write_callback = null, null  $flag = null) 

修改socket的事件设置 可以修改可读/可写事件的回调设置和监听的事件类型

Parameters

$sock
$read_callback
null $write_callback
null $flag

swoole_event_wait()

swoole_event_wait() : void

进行事件轮询

PHP5.4之前的版本没有在ZendAPI中加入注册shutdown函数。所以swoole无法在脚本结尾处自动进行事件轮询。 低于5.4的版本,需要在你的PHP脚本结尾处加swoole_event_wait函数,使脚本开始进行事件轮询。

5.4或更高版本不需要加此函数。

swoole_event_write()

swoole_event_write(mixed  $socket, string  $data) 

异步写

Parameters

mixed $socket
string $data

swoole_get_local_ip()

swoole_get_local_ip() : array

此函数用于获取本机所有网络接口的IP地址, 目前只返回IPv4地址,返回结果会过滤掉本地loop地址127.0.0.1。 结果数组是以interface名称为key的关联数组。 比如 array("eth0" => "192.168.1.100")

Returns

array

swoole_get_mysqli_sock()

swoole_get_mysqli_sock(\mysqli  $db) : integer

获取MySQLi的socket文件描述符

可将mysql的socket增加到swoole中,执行异步MySQL查询。 如果想要使用异步MySQL,需要在编译swoole时制定--enable-async-mysql swoole_get_mysqli_sock仅支持mysqlnd驱动,php5.4以下版本不支持此特性

Parameters

\mysqli $db

Returns

integer

swoole_mysql_query()

swoole_mysql_query(  $db,   $sql,   $callback) 

异步执行SQL

Parameters

$db
$sql
$callback

swoole_server_addlisten()

swoole_server_addlisten(\swoole_server  $serv, string  $host = '127.0.0.1', integer  $port = 9502) : void

增加监听的端口

您可以混合使用UDP/TCP,同时监听内网和外网端口 业务代码中可以通过调用swoole_connection_info来获取某个连接来自于哪个端口

Parameters

\swoole_server $serv
string $host
integer $port

swoole_server_addtimer()

swoole_server_addtimer(\swoole_server  $serv, integer  $interval) : boolean

设置定时器

第二个参数是定时器的间隔时间,单位为毫秒。 swoole定时器的最小颗粒是1毫秒,支持多个定时器。 此函数可以用于worker进程中。或者通过swoole_server_set设置timer_interval来调整定时器最小间隔。

增加定时器后需要为Server设置onTimer回调函数,否则会造成严重错误。 多个定时器都会回调此函数。 在这个函数内需要自行switch,根据interval的值来判断是来自于哪个定时器。

Parameters

\swoole_server $serv
integer $interval

Returns

boolean

swoole_server_close()

swoole_server_close(\swoole_server  $serv, integer  $fd, integer  $from_id) : boolean

关闭客户端连接

Server主动close连接,也一样会触发onClose事件。 不要在close之后写清理逻辑,应当放置到onClose回调中处理。

Parameters

\swoole_server $serv
integer $fd
integer $from_id

Returns

boolean

swoole_server_create()

swoole_server_create(string  $host, integer  $port, integer  $mode = SWOOLE_PROCESS, integer  $sock_type = SWOOLE_SOCK_TCP) 

创建一个swoole server资源对象

Parameters

string $host

参数用来指定监听的ip地址,如127.0.0.1,或者外网地址,或者0.0.0.0监听全部地址

integer $port

监听的端口,如9501,监听小于1024端口需要root权限,如果此端口被占用server-start时会失败

integer $mode

运行的模式,swoole提供了3种运行模式,默认为多进程模式

integer $sock_type

指定socket的类型,支持TCP/UDP、TCP6/UDP64种

swoole_server_deltimer()

swoole_server_deltimer(\swoole_server  $serv, integer  $interval) : void

删除定时器

$interval 参数为定时器的间隔时间 根据定时器时间区分不同的定时器

Parameters

\swoole_server $serv
integer $interval

swoole_server_finish()

swoole_server_finish(\swoole_server  $serv, string  $response) : void

task_worker进程中通知worker进程,投递的任务已完成

此函数可以传递结果数据给worker进程 使用swoole_server_finish函数必须为Server设置onFinish回调函数。此函数只可用于task_worker进程的onTask回调中 swoole_server_finish是可选的。如果worker进程不关心任务执行的结果,可以不调用此函数

Parameters

\swoole_server $serv
string $response

swoole_server_handler()

swoole_server_handler(\swoole_server  $serv, string  $event_name, callable  $event_callback_function) : boolean

设置Server的事件回调函数

第一个参数是swoole的资源对象 第二个参数是回调的名称, 大小写不敏感,具体内容参考回调函数列表 第三个函数是回调的PHP函数,可以是字符串,数组,匿名函数。

设置成功后返回true。如果$event_name填写错误将返回false。

onConnect/onClose/onReceive 这3个回调函数必须设置,其他事件回调函数可选。 如果设定了timer定时器,onTimer事件回调函数也必须设置

Parameters

\swoole_server $serv
string $event_name
callable $event_callback_function

Returns

boolean

swoole_server_reload()

swoole_server_reload(\swoole_server  $serv) : void

平滑重启Server

一台繁忙的后端服务器随时都在处理请求,如果管理员通过kill进程方式来终止/重启服务器程序,可能导致刚好代码执行到一半终止。 这种情况下会产生数据的不一致。如交易系统中,支付逻辑的下一段是发货,假设在支付逻辑之后进程被终止了。 会导致用户支付了货币,但并没有发货,后果非常严重。

Swoole提供了柔性终止/重启的机制,管理员只需要向SwooleServer发送特定的信号,Server的worker进程可以安全的结束。

SIGTREM: 向主进程发送此信号服务器将安全终止 SIGUSR1: 向管理进程发送SIGUSR1信号,将平稳地restart所有worker进程,在PHP代码中可以调用swoole_server_reload($serv)完成此操作

Parameters

\swoole_server $serv

swoole_server_send()

swoole_server_send(\swoole_server  $serv, integer  $fd, string  $data, integer  $from_id) : boolean

向客户端发送数据

$data的长度可以是任意的。扩展函数内会进行切分。 如果是UDP协议,会直接在worker进程内发送数据包。 发送成功会返回true,如果连接已被关闭或发送失败会返回false.

Parameters

\swoole_server $serv
integer $fd
string $data
integer $from_id

Returns

boolean

swoole_server_set()

swoole_server_set(\swoole_server  $serv,   $arguments) 

swoole_server_set函数用于设置swoole_server运行时的各项参数

Parameters

\swoole_server $serv
$arguments

swoole_server_shutdown()

swoole_server_shutdown(\swoole_server  $serv) : void

关闭服务器

此函数可以用在worker进程内。

Parameters

\swoole_server $serv

swoole_server_start()

swoole_server_start(\swoole_server  $serv) : boolean

启动server,监听所有TCP/UDP端口

启动成功后会创建worker_num+2个进程。主进程+Manager进程+n*Worker进程。 启动失败扩展内会抛出致命错误,请检查php error_log的相关信息。errno={number}是标准的Linux Errno,可参考相关文档。 如果开启了log_file设置,信息会打印到指定的Log文件中。

如果想要在开机启动时,自动运行你的Server,可以在/etc/rc.local文件中加入:

/usr/bin/php /data/webroot/www.swoole.com/server.php

常见的错误有及拍错方法:

1、bind端口失败,原因是其他进程已占用了此端口 2、未设置必选回调函数,启动失败 3、php有代码致命错误,请检查php的错误信息 4、执行ulimit -c unlimited,打开core dump,查看是否有段错误 5、关闭daemonize,关闭log,使错误信息可以打印到屏幕

Parameters

\swoole_server $serv

Returns

boolean

swoole_server_task()

swoole_server_task(\swoole_server  $serv, string  $data) : integer

投递异步任务到task_worker池中

此函数会立即返回,worker进程可以继续处理新的请求。 此功能用于将慢速的任务异步地去执行,比如一个聊天室服务器,可以用它来进行发送广播。 当任务完成时,在task_worker中调用swoole_server_finish($serv, "finish"); 告诉worker进程此任务已完成。当然swoole_server_finish是可选的。

发送的$data必须为字符串,如果是数组或对象,请在业务代码中进行serialize处理,并在onTask/onFinish中进行unserialize。 $data可以为二进制数据,最大长度为8K。字符串可以使用gzip进行压缩。

使用swoole_server_task必须为Server设置onTask和onFinish回调, 否则swoole_server_start会失败。此回调函数会在task_worker进程中被调用。

函数会返回一个$task_id数字,表示此任务的ID。如果有finish回应,onFinish回调中会携带$task_id参数。

task_worker的数量在swoole_server_set参数中调整,如task_worker_num => 64,表示启动64个进程来接收异步任务。 swoole_server_task和swoole_server_finish可发送$data的长度最大不得超过8K,此参数受SW_BUFFER_SIZE宏控制。

Parameters

\swoole_server $serv
string $data

Returns

integer —

$task_id

swoole_server_taskwait()

swoole_server_taskwait(string  $task_data, float  $timeout = 0.5) : string

投递堵塞任务到task进程池

taskwait与task方法作用相同,用于投递一个异步的任务到task进程池去执行。 与task不同的是taskwait是阻塞等待的,直到任务完成或者超时返回。 $result为任务执行的结果,由$serv->finish函数发出。如果此任务超时,这里会返回false。

taskwait是阻塞接口,如果你的Server是全异步的请不要使用它

Parameters

string $task_data
float $timeout

Returns

string

swoole_set_process_name()

swoole_set_process_name(string  $name) : void

设置进程的名称

修改进程名称后,通过ps命令看到的将不再是php your_file.php。而是设定的字符串。 此函数接受一个字符串参数。 此函数与PHP5.5提供的cli_set_process_title功能是相同的,但swoole_set_process_name可用于PHP5.2之上的任意版本。

Parameters

string $name

swoole_strerror()

swoole_strerror(integer  $errno) 

将标准的Unix Errno错误码转换成错误信息

Parameters

integer $errno

swoole_timer_add()

swoole_timer_add(  $interval, callable  $callback) : integer

添加定时器,可用于客户端环境和fpm中

Parameters

$interval
callable $callback

Returns

integer

swoole_timer_after()

swoole_timer_after(  $ms, callable  $callback,   $user_param = null) : integer

单次定时器,在N毫秒后执行回调函数

Parameters

$ms
callable $callback

function ($user_param){}

$user_param

Returns

integer

swoole_timer_clear()

swoole_timer_clear(  $timer_id) : boolean

删除定时器

Parameters

$timer_id

Returns

boolean

swoole_timer_del()

swoole_timer_del(  $interval) 

删除定时器

Parameters

$interval

swoole_timer_tick()

swoole_timer_tick(  $ms, callable  $callback, null  $params = null) : integer

添加TICK定时器

Parameters

$ms
callable $callback

function($timmerID, $params){}

null $params

Returns

integer

swoole_version()

swoole_version() : string

获取swoole扩展的版本号,如1.6.10

Returns

string