您的位置:首页 > 理论基础 > 计算机网络

PHP学习之七:扩展函数库-文件系统、进程与网络

2012-07-16 22:03 302 查看
PHP的扩展函数库十分庞大,官方的非官方的,在这里只记录一些目前比较常用的扩展,对于这一部分,也只是记录其中一些核心的函数,不是一个全面记录。对于详细的扩展函数说明,需要在使用中参考PHP的用户手册。
1 目录操作

dir() 返回一个目录对象

read() 遍历目录对象中的条目

<?php
$d=dir("./");

while($item=$d->read())
{
echo $item;
echo "\n";
}

$d->rewind();
$d->close();
?>


2 文件系统操作

dirname() 返回路径中的目录名部分

basename() 返回路径中文件名部分

chown chgrp chmod 与同名的linux系统调用类似

mkdir mkdir copy rename delete unlink tmpname touch tmpfile umask与同名的linux系统调用类似

disk_free_space() disk_total_space()

fopen fread fwrite feof fflush fclose fseek ftell rewind等与同名C标准库函数功能类似

file_exists() 检查文件与目录是否存在

file() 将整个文件读入数组,每个下标对应文件的一行

file_get_contents() 将整个文件读入到一个字符串,支持从文件的特定位置开始读取若干字符

file_put_contents($file,$data) 将字符串数据写入到指定文件

readfile() readlink 将file或link内容直接输出

fileatime filemtime filectime 取得文件的上次访问/修改/inode修改时间

fileowner filegroup 返回文件所有者及组的号

filesize filetype fileperms 取得文件的大小、类型、权限

fputcsv fgetcsv 从文件中读取csv格式的数据或将csv格式数据写入文件

fstat ftruncate 获取指针对应文件的stat信息/截断到给定的长度

stat 根据文件名获取文件的stat信息

is_dir is_file is_link is_executable is_readable is_writeable is_uploaded_file 判断文件的属性

move_uploaded_file

parse_ini_file parse_ini_string 解析ini文件及字符串,返回一个关联数据,可以通过名称访问相关配置项

pathinfo 返回关联数组,包含了dirname,basename,extname ,filename

popen pclose 打开/关闭指向进程的管道文件

realpath() 返回绝对路径

3 进程控制

3.1 POSIX扩展


posix_access($file,$mode) 查看文件的访问权限,可以由is_readable等几个函数代替

posix_errno() 返回posix函数执行的上个错误

posix_getcwd() 返回当前目录,与getcwd()相同

posix_getgid() geteuid() getgid() getegied() getgroup() getpgid() getpgrp() getpid() getsid等与同名linux系统调用类似

posix_getlogin() 获取登录名称

posix_getpwnam() 获取用户的详情

posix_getrlimit() 获取资源限制

posix_kill() posix_times()

3.2 程序执行函数

string exec($cmd, array &$output, int &$return_var) 执行外部程序,并返回输出的最后一行

string shell_exec($cmd) 与`cmd` 功能一样,将返回程序的所有输出

string system() 执行命令,并显示输出,返回值为输出的最后一行

escapeshellarg() 转义字符串以作为shell参数

escapeshellcmd() 转义字符以作为shell命令

proc_open() 执行程序,并打开一个管道用于读写相应的输入和输出

proc_nice() 调整程序的优先级

proc_close() 关闭打开的程序

proc_terminate() 终止打开的程序

3.3 信号量、IPC与共享内存

resource sem_get(int $key, [int $max_acquire=1[,int $perm=0666[,int $auto_release=1]]]) 返回一个SYSTEM V的信号量,首次调用时会创建,随后的各次调用会返回不同的标识符,但均访问同一个信号量。

bool sem_remove(resource $handler) 从系统中移除指定的信号量,之后将不可再访问

bool sem_acquire($handler) 在获得信号量之前一直阻塞

bool sem_release($handler) 释放之前获得的信号量

resource msg_get_queue(int $key[,int $perms = 0666]) 按key返回一个SYSTEM V的消息队列。首次调用时会创建,随后的各次调用会返回不同的标识符,但均访问同一个消息队列。

boo msg_remove_queue($handler) 移除系统的消息队列,之后进程将不可再访问

bool msg_send($queue, int $msg_type,$msg[,bool $serialize=true[. bool $blocking=true [, int &$errcode]]] ) 向消息存入一个消息

msg_recvive($queue, int $expect_type, &$msgtype, $maxsize, &$msg [, bool $unserialize=true [, $flag = 0 [,&$errcode ]]] ) 从消息队列取出一个消息

array msg_stat_queue($handler) 查看消息队列上的相关属性

bool msg_set_queue() 设置消息上的相关属性

resource shm_attach($key,$perms) 按key返回一个SYSTEM V的共享内存。首次调用时会创建,随后的各次调用会返回不同的标识符,但均访问同一个消息队列。

bool shm_remove($handler) 从系统中移除共享内存对象

bool shm_detach($handler) 与共享内存对象断开,但系统中仍存在相关对象

bool shm_put_var($hanlder ,$key, $val) 向共享内存设置数据

mixed shm_get_var($handler ,$key) 从共享内存取数据

bool shm_remove_var($handler, $key) 从共享内存移除数据

4 网络扩展

4.1 URL扩展


string base64_decode($str) 返回原串

string base64_encode($str) 返回编码串

array get_headers($url,$b_hash) 返回指定URL服务器的响应头,若$b_hash为真,则返回关联数组

string http_build_query(array $data) 将hash数组数据编码为http之后的请求字符串

string rawurlencode($str) 根据RFC1738对URL进行编码

string rawurldecode($str) 对URL进行解码

<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');

echo http_build_query($data); // foo=bar&baz=boom&cow=milk&php=hypertext+processor

$url = 'http://username:password@hostname/path?arg=value#anchor';

print_r(get_headers($url));
/*
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
*/


4.2 socket扩展

resource socket_create($domain,$type,$protocol) 返回一个套接字描述符

socket_bind($sock,$ip,$port) 设定绑定

socket_listen($socket,$backlog) 监听端口

resource socket_accept($sock)

resource socket_connect($sock,$ip,$port) 连接远程地址与端口

string socket_read($sock,$length) 从套接字上读取数据

int socket_write($sock,$str,$len) 从套接字上写数据

int socket_recv/send($sock,$&buf,$len,$flag) 从套接字上接收与发送数据

socket_recvfrom/sendto($sock,$&buf,$len,$flag,$&ip,$&port)

socket_get/set_option($sock,$level,$optname,[$optname]) 设置套接字选项

socket_set_nonblock($sock) 设置为非阻塞

socket_getpeer/sockname($sock,$&ip,$&port)

socket_strerror($errno)

socket_clear_error($sock)

4.3 网络工具

array dns_get_record($hostname,$type,$&auth_ns,$&additional ) 获取对应类型的主机名的DNS记录,可返回认证NS及附加信息

bool dns_check_record($name,$type)/checkdnsrr type有MX,A,ANY,AAAA,ALL,若找到对应记录则返回T,否则为F

dns_get_mx /getmxrr($host,array$& mxlist) 获取对应主机的MX记录

resource fsockopen($ip,$port) 返回一个网络连接,相当于运行了socket_create和socket_connect

string gethostbyaddr($ip) gethostbyname1($host) 返回对应的域名或地址,若使用带1的函数,则返回一个地址数组

getprotobyname/number()

getservbyname()/getservbyport()

string inet_ntop($in_addr)

string inet_pton($ip)

long2ip()/ip2long()

setsookie/setrawcookie($name,$val,$expier,$domain,)

socket_get_status()

socket_set_timeout()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐