其它服务 - cURL

PHP支持的由Daniel Stenberg创建的libcurl库允许你与各种的服务器使用各种类型的协议进行连接和通讯。libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。

阅读更多

其他服务 - 网络函数(network)

介绍

预定义的网络函数

安装

无需安装 函数 checkdnsrr(), getmxrr()dns_get_record() 需要基于 Linux 运行

日志

openlog

1
2
bool openlog ( string $ident , int $option , int $facility )
为一个程序打开一个系统日志的链接

syslog

1
2
bool syslog ( int $priority , string $message )
生成系统日志信息, 存储到系统日志

closelog

1
2
bool closelog ( void )
关闭和系统日志的链接

sock

fsockopen

1
2
resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
打开internet/ unix域的套接层链接

pfsockopen

1
2
resource pfsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] )
打开持续的 socket 链接

域名解析相关

checkdnsrr

1
2
3
4
5
6
7
/**
* $host 主机名/IP地址
*/
bool checkdnsrr ( string $host [, string $type = "MX" ] )
[alias] dns_check_record
[5.3]支持windows平台
检测是否有指定的dns记录, 只是检查

dns_get_record

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
array dns_get_record ( string $hostname [, int $type = DNS_ANY [, array &$authns [, array &$addtl [, bool &$raw = false ]]]] )
给定的主机名的DNS记录
Array
(
[0] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 752
[type] => SOA
[mname] => f1g1ns1.dnspod.net
[rname] => freednsadmin.dnspod.com
[serial] => 1474983140
[refresh] => 3600
[retry] => 180
[expire] => 1209600
[minimum-ttl] => 180
)
[1] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 752
[type] => TXT
[txt] => v=spf1 include:spf.mxhichina.com -all
[entries] => Array
(
[0] => v=spf1 include:spf.mxhichina.com -all
)
)
[2] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 752
[type] => MX
[pri] => 10
[target] => mxw.mxhichina.com
)
[3] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 752
[type] => MX
[pri] => 5
[target] => mxn.mxhichina.com
)
[6] => Array
(
[host] => sour-lemon.com
[class] => IN
[ttl] => 108002
[type] => NS
[target] => f1g1ns2.dnspod.net
)
)

gethostname

1
2
string gethostname ( void )
获取本机的主机名

gethostbyaddr

1
2
string gethostbyaddr ( string $ip_address )
根据指定的地址获取主机名

getmxrr

1
2
3
4
5
6
7
8
9
10
11
12
bool getmxrr ( string $hostname , array &$mxhosts [, array &$weight ] )
[5.3]支持windows平台
[alias] dns_get_mx
根据指定的主机名/IP获取mx记录
// code
getmxrr('sour-lemon.com', $mx);
print_r($mx);
Array
(
[0] => mxw.mxhichina.com
[1] => mxn.mxhichina.com
)

gethostbyname

1
2
string gethostbyname ( string $hostname )
根据指定的主机名称获取IP地址

gethostbynamel

1
2
array gethostbynamel ( string $hostname )
根据主机名称获取一系列的IP列表

getprotobyname

根据协议名称获取协议码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int getprotobyname ( string $name )
根据协议的名称获取协议的数字标识
// code
$arr=array("ip","icmp","ggp","tcp","egp","pup","udp","hmp","xns-idp","rdp","rvd" );
//Reads the names of protocols into an array..
for($i=0; $i<11; $i++) {
$proname=$arr[$i];
echo $proname .":", getprotobyname ($proname)."<br />";
}
此函数使用http和ftp测试过,没出来端口号,http和ftp算是服务,不是协议,使用getserverbyname来显示
$services = array('http', 'ftp', 'ssh', 'telnet', 'imap', 'smtp', 'nicname', 'gopher', 'finger','pop3', 'www');
foreach ($services as $service) {
$port = getservbyname($service, 'tcp');
echo $service . ": " . $port . "<br />\n";
}

getprotobynumber

1
2
string getprotobynumber ( int $number )
根据协议的数字获取协议的名称

getservbyname()

1
2
int getservbyname ( string $service , string $protocol )
获取协议的端口号

getservbyport

根据端口号获取服务名称

1
2
3
4
string getservbyport ( int $port , string $protocol )
根据端口号获取协议的名称
// code
getservbyport(80, 'tcp') // http

IP转换

ip2long

1
2
int ip2long ( string $ip_address )
转换IPV4 地址 -> 整形表示的地址

long2ip()

1
2
string long2ip ( string $proper_address )
把整形地址转换为 -> IPV4地址

inet_ntop

1
2
3
string inet_ntop ( string $in_addr )
[5.3]支持windows平台
转换 packed internet 地址 -> 人类可读的地址

inet_pton

1
2
3
string inet_pton ( string $address )
[5.3]支持windows平台
转换人类可读的IP地址 -> packed 地址

Header 头处理函数

header_register_callback

1
2
bool header_register_callback ( callable $callback )
注册头部处理时间的函数, 当PHP开始输出内容的时候调用这个函数

header_remove

1
2
3
void header_remove ([ string $name ] )
[5.3]支持windows平台
移除http header

1
2
3
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
header() 用来发送 raw http header
http://www.faqs.org/rfcs/rfc2616, header 必须在任何输出前调用

headers_list

1
2
3
array headers_list ( void )
返回一系列的相应头部
返回将要发送到浏览器的所有的头部的列表

headers_sent

1
2
bool headers_sent ([ string &$file [, int &$line ]] )
检测头部是否被发送, 当头部被送出之后你将无法使用header() 函数来修改http头部

http_response_code

1
2
int http_response_code ([ int $response_code ] )
[5.4.0] 设置或者获取http相应码

setcookie

1
2
3
4
5
6
7
8
9
bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
设置cookie
$name 名称
$value 设置值
$expire 过期时间的unix时间戳
$path 路径, 默认是 '/'
$domain 域名,对于老的浏览器, 最好是 'testdomain.com.', 末尾加上个 '.'
$secure 是否安全链接
$httponly 是否只是http可用

setrawcookie

1
2
bool setrawcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
设置未 urlencoding 的cookie

socket

socket_get_status

1
2
socket_get_status
[see] stream_get_meta_data

socket_set_blocking

1
2
socket_set_blocking
[see] stream_set_blocking

socket_set_timeout

1
2
socket_set_timeout
[see] stream_set_timeout

原文地址 : 其他服务 - 网络函数(network)
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

其他服务 - AMQP

介绍
高级消息队列协议(AMQP)是一个异步消息传递所使用的应用层协议规范。作为线路层协议,而不是API(例如JMS),AMQP 客户端能够无视消息的来源任意发送和接受信息。现在,已经有相当一部分不同平台的服务器和客户端可以投入使用。
AMQP的原始用途只是为金融界提供一个可以彼此协作的消息协议,而现在的目标则是为通用消息队列架构提供通用构建工具。因此,面向消息的中间件 (MOM)系统,例如发布/订阅队列,没有作为基本元素实现。反而通过发送简化的AMQ实体,用户被赋予了构建例如这些实体的能力。这些实体也是规范的一 部分,形成了在线路层协议顶端的一个层级:AMQP模型。这个模型统一了消息模式,诸如之前提到的发布/订阅,队列,事务以及流数据,并且添加了额外的特 性,例如更易于扩展,基于内容的路由。
安装
这个扩展不支持windows, 因为 librabbitmq 库尚未支持 win 平台
配置
函数
AMQPConnection — The AMQPConnection class

1.AMQPConnection::connect — Establish a connection with the AMQP broker.
2.AMQPConnection::__construct — Create an instance of AMQPConnection
3.AMQPConnection::disconnect — Closes the connection with the AMQP broker.
4.AMQPConnection::getHost — Get the configured host
5.AMQPConnection::getLogin — Get the configured login
6.AMQPConnection::getPassword — Get the configured password
7.AMQPConnection::getPort — Get the configured port
8.AMQPConnection::getTimeout — Get the configured timeout
9.AMQPConnection::getVhost — Get the configured vhost
10.AMQPConnection::isConnected — Determine if the AMQPConnection object is connected to the broker.
11.AMQPConnection::reconnect — Closes any open connection and creates a new connection with the AMQP broker.
12.AMQPConnection::setHost — Set the amqp host.
13.AMQPConnection::setLogin — Set the login.
14.AMQPConnection::setPassword — Set the password.
15.AMQPConnection::setPort — Set the port.
16.AMQPConnection::setTimeout — Set the timeout.
17.AMQPConnection::setVhost — Set the amqp virtual host

AMQPChannel — The AMQPChannel class

1.AMQPChannel::commitTransaction — Commit a pending transaction
2.AMQPChannel::__construct — Create an instance of an AMQPChannel object
3.AMQPChannel::isConnected — Check the channel connection
4.AMQPChannel::qos — Set the Quality Of Service settings for the given channel
5.AMQPChannel::rollbackTransaction — Rollback a transaction
6.AMQPChannel::setPrefetchCount — Set the number of messages to prefetch from the broker
7.AMQPChannel::setPrefetchSize — Set the window size to prefetch from the broker
8.AMQPChannel::startTransaction — Start a transaction

AMQPExchange — The AMQPExchange class

1.AMQPExchange::bind — Bind to another exchange
2.AMQPExchange::__construct — Create an instance of AMQPExchange
3.AMQPExchange::declare — Declare a new exchange on the broker.
4.AMQPExchange::delete — Delete the exchange from the broker.
5.AMQPExchange::getArgument — Get the argument associated with the given key
6.AMQPExchange::getArguments — Get all arguments set on the given exchange
7.AMQPExchange::getFlags — Get the flag bitmask
8.AMQPExchange::getName — Get the configured name
9.AMQPExchange::getType — Get the configured type
10.AMQPExchange::publish — Publish a message to an exchange.
11.AMQPExchange::setArgument — Set the value for the given key
12.AMQPExchange::setArguments — Set all arguments on the exchange
13.AMQPExchange::setFlags — Set the flags on an exchange
14.AMQPExchange::setName — Set the name of the exchange
15.AMQPExchange::setType — Set the type of the exchange

AMQPQueue — The AMQPQueue class

1.AMQPQueue::ack — Acknowledge the receipt of a message
2.AMQPQueue::bind — Bind the given queue to a routing key on an exchange.
3.AMQPQueue::cancel — Cancel a queue binding.
4.AMQPQueue::__construct — Create an instance of an AMQPQueue object
5.AMQPQueue::consume — Consume messages from a queue
6.AMQPQueue::declare — Declare a new queue
7.AMQPQueue::delete — Delete a queue and its contents.
8.AMQPQueue::get — Retrieve the next message from the queue.
9.AMQPQueue::getArgument — Get the argument associated with the given key
10.AMQPQueue::getArguments — Get all arguments set on the given queue
11.AMQPQueue::getFlags — Get the flag bitmask
12.AMQPQueue::getName — Get the configured name
13.AMQPQueue::nack — Mark a message as explicitly not acknowledged.
14.AMQPQueue::purge — Purge the contents of a queue
15.AMQPQueue::setArgument — Set the value for the given key
16.AMQPQueue::setArguments — Set all arguments on the queue
17.AMQPQueue::setFlags — Set the queue flags
18.AMQPQueue::setName — Set the queue name
19.AMQPQueue::unbind — Unbind the queue from a routing key.

AMQPEnvelope — The AMQPEnvelope class

1.AMQPEnvelope::getAppId — Get the message appid
2.AMQPEnvelope::getBody — Get the message body
3.AMQPEnvelope::getContentEncoding — Get the message contentencoding
4.AMQPEnvelope::getContentType — Get the message contenttype
5.AMQPEnvelope::getCorrelationId — Get the message correlation id
6.AMQPEnvelope::getDeliveryTag — Get the message delivery tag
7.AMQPEnvelope::getExchange — Get the message exchange
8.AMQPEnvelope::getExpiration — Get the message expiration
9.AMQPEnvelope::getHeader — Get a specific message header
10.AMQPEnvelope::getHeaders — Get the message headers
11.AMQPEnvelope::getMessageId — Get the message id
12.AMQPEnvelope::getPriority — Get the message priority
13.AMQPEnvelope::getReplyTo — Get the message replyto
14.AMQPEnvelope::getRoutingKey — Get the message routing key
15.AMQPEnvelope::getTimeStamp — Get the message timestamp
16.AMQPEnvelope::getType — Get the message type
17.AMQPEnvelope::getUserId — Get the message user id
18.AMQPEnvelope::isRedelivery — Whether this is a redelivery of the message


原文地址 : 其他服务 - AMQP
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问

其它服务 - chdb

其它服务 - chdb

其它服务 - chdb

关联网址: http://cr.yp.to/cdb.html chdb (constant hash database)是一个键值对应的数据库

安装

这个模块使用 cmph 模块的 perfect hashing 函数
http://pecl.php.net/package/chdb

配置

定义常量

函数

1
2
3
4
5
6
7
chdb {
/* Methods */
// 创建, 路径为 chdb 文件的路径, 创建一个 chdb 实例
public __construct ( string $pathname )
// 根据 键名返回值
public string get ( string $key )
}

bool chdb_create ( string $pathname , array $data )
建立一个 chdb 文件, 将指定的数组存入到文件中


原文地址 : 其它服务 - chdb
本站是作者语雀文档的镜像站, 如对文章有任何疑问请移步语雀进行 提问