PHP学習の7:拡張関数ライブラリ-ファイルシステム、プロセスとネットワーク

6499 ワード

PHPの拡張関数ライブラリは非常に膨大で、公式の非公式で、ここでは現在よく使われている拡張だけを記録しています.この部分については、コアの関数も記録しているだけで、全面的な記録ではありません.詳細な拡張関数の説明については、PHPのユーザーズマニュアルを使用中に参照する必要があります.
1ディレクトリ操作
dir()はディレクトリオブジェクトを返します
read()ディレクトリオブジェクト内のエントリを巡る
     
<?php
$d=dir("./");


while($item=$d->read())
{
        echo $item;
        echo "
"; } $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_アクセス($file,$mode)ファイルへのアクセス権を表示します.is_readableなどのいくつかの関数の代替
    posix_errno()はposix関数が実行した前のエラーを返します.
    posix_getcwd()は、getcwd()と同じ現在のディレクトリを返します.
    posix_getgid()geteuid()getgid()getegied()getgroup()getpgid()getpgrp()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])キーを押して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)キーを押して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)は、$b_hashが真の場合、関連配列が返されます
    string http_build_query(array$data)hash配列データをhttp後の要求文字列に符号化する
string rawurlencode($str)RFC 1738に従って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)gethostbyname 1($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()