PHP學習之七:擴充函數庫-檔案系統、進程與網路

來源:互聯網
上載者:User

     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()

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.