转载:PHP扩展函数库-文件系统、进程与网络
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() 返回绝对路径
feof() 函数检测是否已到达文件末尾 (eof)
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()
原文链接:http://blog.csdn.net/zzulp/article/details/7749866
官网链接:http://php.net/manual/zh/refs.fileprocess.process.php
转载:PHP扩展函数库-文件系统、进程与网络的更多相关文章
- Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介
原文:Linux内核分析(四)----进程管理|网络子系统|虚拟文件系统|驱动简介 Linux内核分析(四) 两天没有更新了,上次博文我们分析了linux的内存管理子系统,本来我不想对接下来的进程管理 ...
- rootkit——一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,一般都和木马、后门等其他恶意程序结合使用
Rootkit是指其主要功能为隐藏其他程式进程的软件,可能是一个或一个以上的软件组合:广义而言,Rootkit也可视为一项技术. 目录 1 rootkit是什么 2 rootkit的功能 root ...
- C/C++ 用libcurl库进行http通讯网络编程
C/C++ 用libcurl库进行http通讯网络编程 目录索引: 一.LibCurl基本编程框架 二.一些基本的函数 三.curl_easy_setopt函数部分选项介绍 四.curl_easy_p ...
- C++ 用libcurl库进行http通讯网络编程 【转】
http://www.cnblogs.com/moodlxs/archive/2012/10/15/2724318.html C++ 用libcurl库进行http通讯网络编程 目录索引: 一.Lib ...
- [转载]文件过滤驱动 文件系统激活通知 IoRegisterFsRegistrationChange函数实现
IoRegisterFsRegistrationChange 注册一个文件系统变动回调函数,用来被通知文件系统的激活和注销,激活是指第一次加载文件系统,当一个文件系统已经加载后,当加载一个同种文件系统 ...
- Wireshark 查看指定进程的网络包
Wireshark 查看指定进程的网络包 打开任务管理器,右键筛选列,选中PID(进程标识符): 找到该进程对应的PID,如1200: 在cmd中执行netstat -ano|findstr 1200 ...
- [转载] python利用psutil遍历进程名字和exe所在目录
本文转载自: http://www.duanzhihe.com/1594.html http://www.jianshu.com/p/64e265f663f6 import psutil,os,tim ...
- 7.Python3标准库--文件系统
''' Python的标准库中包含大量工具,可以处理文件系统中的文件,构造和解析文件名,还可以检查文件内容. 处理文件的第一步是要确定处理的文件的名字.Python将文件名表示为简单的字符串,另外还提 ...
- 【转载】Hadoop分布式文件系统HDFS的工作原理详述
转载请注明来自36大数据(36dsj.com):36大数据 » Hadoop分布式文件系统HDFS的工作原理详述 转注:读了这篇文章以后,觉得内容比较易懂,所以分享过来支持一下. Hadoop分布式文 ...
随机推荐
- 详解python中@的用法
python中@的用法 @是一个装饰器,针对函数,起调用传参的作用. 有修饰和被修饰的区别,‘@function'作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义). 代码1 ...
- produceTestDate
set serveroutput on --使用基本变量类型 declare --定义基本变量:类型 --基本数据类型 pnumber , ); pname ); pdate date; begin ...
- 【UI】数据表格设计
https://www.smashingmagazine.com/2019/02/complex-web-tables/ https://www.smashingmagazine.com/2019/0 ...
- AppCode 2016.3 注册码
43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiI ...
- centos7.5配置ntp时间服务器
Centos7配置ntp时间服务器 Centos7配置时间服务器,一个服务端,多个客户端,客户端去同步服务端 服务端: 1.先修改时区,否则即使配置完ntp时间也不对,修改时区参照:https://w ...
- jeecg启动报错“com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.”的解决办法
在运行"maven build"-->"tomcat:run"之后,报如下错误: com.mysql.jdbc.exceptions.jdbc4.MySQ ...
- 看看可爱c#中的delegate(委托)和event(事件)用法好不好
一.开篇忏悔 对自己最拿手的编程语言C#,我想对你说声对不起,因为我到现在为止才明白c#中的delegate和event是怎么用的,惭愧那.好了,那今天就趁月黑风高的夜晚简单来谈谈delegate和e ...
- HOSTS大法解决Github Clone太慢
经常要clone github中的一些项目,无奈如果不爬梯子的话速度实在是龟速,经常1k/s,于是搜了下解决方法,改HOSTS大法. Windows下在C:/Windows/system32/driv ...
- 针对thinkphp 5框架存储过程bug而重写的存储过程的扩展类
近期用tp5框架调取存储过程发现有bug,借鉴了一些官方的函数.以及找了个mysqli的类把存储过程重新写了个扩展类,下面两个类直接放置项目extend目录的stored(这个文件夹名称请按个人习惯命 ...
- Flutter Window环境运行(VSCode + 单独运行Android 虚拟机)
官网以及很多网上文章的开发都是基于Android ,因为它能创建不同类型移动设备虚拟机.但个人始终觉得它太庞大,启动慢耗资源,但我们使用Flutter又离不开虚拟机. 经过实践,现在能成功的单独启动移 ...