本文目錄一覽:
關於PHP文件的函數
這兩個是隱藏文件,’.’表示是當前目錄,’..’表示的是上一層目錄。Linux裡面這很常見的,Windows裡面也有,只是你看不到。希望你能理解。
PHP函數代碼基礎知識?
我們在學習PHP開發相關基礎知識的時候,對於不同的開發原理以及代碼的使用都是基本的能力要求。今天,雲南電腦培訓就一起來了解PHP開發基礎知識中的函數代碼都有哪些。
array()
array(value1,value2?..)創建數組
array_chunk(array,size,preserve_keys)把一個數分割成新的數組塊[tk]
array_combine(keys,values)通過合併兩個數組(鍵名數組,鍵值數組)組成一個新的數組
array_count_values(array)用於統計數組中所有值出現的次數
array_diff(array1,array2,…)比較數組返回兩個數組的差集(只比較鍵值)
array_diff_assoc(array1,array2,..)比較數組返回兩個數組的差集(比較鍵名和鍵值)
array_diff_key(array1,array2,…)比較數組返回兩個數組的差集(只比較鍵名)
array_fill(index,number,value)用給定的鍵值填充數組
array_filter(array,要用的回調函數)用回調函數過濾數組中的元素
array_flip(array)反轉/交換數組中的鍵名和對應關聯的鍵值[flp]
array_keys(array)返回數組中的所有鍵名
array_merge(array1,array2,..)把一個或多個數組合併一個數組[m:rd]
array_pad(array,size,value)將指定數量的帶有指定值的元素插入到數組中
array_pop(array)刪除後一個元素
array_push(array)末尾添加數組
array_shift(array())刪除數並返回被刪除的元素值
array_unshift(array))組中的一個元素添加一個或多個元素
array_rand(array,number)從數組中隨機選出一個或多個數組
array_replace(array1,array2…)使用後面數組的值替換一個數組的值
array_reverse(array)數組反轉並返回新的數組
array_search(value,array,strict(可選true,flase))搜索值返回鍵名。True搜索鍵名和值都一樣的元素
array_slice(array,start,length,preserve)返回數組中的選定部分
array_splice(array,start,length,array)把指定的元素去掉並用其他的替換
array_unique(array)刪除數組中的重複值美[junik]
array_values(array)返回數組中的所有值
array_key_exists(key,array)查找數組鍵名是否存在
count(array)返回數組中元素的數目美[kant]
in_array(‘值’,$array,bool)檢查數組中是否存在指定的值設置為TRUE,則in_array
函數檢查搜索的數據與數組的值的類型是否相同。
9個必須知道的實用PHP函數和功能
即使使用 PHP 多年 也會偶然發現一些未曾了解的函數和功能 其中有些是非常有用的 但沒有得到充分利用 並不是所有人都會從頭到尾一頁一頁地閱讀手冊和函數參考!
任意參數數目的函數
你可能已經知道 PHP 允許定義可選參數的函數 但也有完全允許任意數目的函數參數的方法 以下是可選參數的例子
以下為引用的內容
// function with optional arguments function foo($arg = $arg = ) {
echo “arg : $arg n”; echo “arg : $arg n”;
}
foo( hello world ); /* prints: arg : hello arg : world */
foo(); /* prints: arg : arg : */
現在讓我們看看如何建立能夠接受任何參數數目的函數 這一次需要使用 func_get_args() 函數
以下為引用的內容
// yes the argument list can be empty function foo() {
// returns an array of all passed arguments $args = func_get_args();
foreach ($args as $k = $v) { echo “arg” ($k+ ) “: $vn”; }
}
foo(); /* prints nothing */
foo( hello ); /* prints arg : hello */
foo( hello world again ); /* prints arg : hello arg : world arg : again */
使用 Glob() 查找文件
許多 PHP 函數具有長描述性的名稱 然而可能會很難說出 glob() 函數能做的事情 除非你已經通過多次使用並熟悉了它 可以把它看作是比 scandir() 函數更強大的版本 可以按照某種模式搜索文件
以下為引用的內容
// get all php files $files = glob( * php );
print_r($files); /* output looks like: Array ( [ ] = phptest php [ ] = pi php [ ] = post_output php [ ] = test php ) */
你可以像這樣獲得多個文件
以下為引用的內容
// get all php files AND txt files $files = glob( * {php txt} GLOB_BRACE);
lishixinzhi/Article/program/PHP/201311/21182
PHP中的文件系統函數(一)
從這篇文章開始,我們將學習一系列的 PHP 文件系統相關函數。其實這些函數中,有很多都是我們經常用到的,大家並不需要刻意地去記住它們,只要知道有這麼個東西,在使用的時候記得來查文檔就可以了。
文件路徑相關的函數往往在一些框架中會比較常見,而且多會配合 __FILE__ 、 __DIR__ 之類的魔術常量使用。
basename() 函數是獲得路徑中的文件名,它有兩個參數,第一個是文件的路徑,第二個是過濾掉的內容,比如第一條測試語句我們過濾掉文件的後綴名。
dirname() 返回的是路徑中的路徑部分,也就是不包含文件名的那部分內容,和 basename() 正好是相反的功能。
pathinfo() 函數用於以數組的形式返迴路徑中的信息,從結果來看,我們可以看到文件的 dirname 部分,basename 部分,以及文件的擴展名 extension 和不包含擴展名的 filename 內容。
realpath() 返回的是規範化的絕對路徑名,它擴展所有的符號連接並且處理輸入的路徑中的 ./ 、 ../ 以及多餘的 / ,返回的內容是標準規範的絕對路徑。
接下來,我們學習一些修改文件相關屬性的函數,主要就是在 Linux 系統環境中的文件權限信息的操作。
當然,首先我們得創建一個文件。和 Linux 中的命令是非常類似的。
touch() 函數除了給出要創建的文件名之外,還有兩個可選參數可以指定文件的創建時間及訪問時間,不給參數的話默認就是當前時間。這個文件名可以是相對或絕對路徑中有權限的目錄,並在該目錄下創建一個空的文件。
通過 fileowner() 函數,我們可以獲得某個文件所屬的用戶,默認情況下我們的用戶是當前運行 PHP 腳本的用戶,也就是系統目前的登錄用戶。在這裡,我們使用 chown() 函數,將用戶改為 www 用戶。clearstatcache() 是用於清理文件系統的緩存信息,如果不清理一下的話,fileowner() 返回的依然還是之前的用戶信息。
同理,使用 filegroup() 函數獲得文件的屬組信息,chgrp() 用於修改文件的屬組。fileperms() 用於返迴文件的權限信息,它返回的是數字模式的文件訪問權限,這裡我們使用 sprintf() 格式化結果後獲得我們常用的 Linux 系統權限格式。chmod() 函數用於修改文件的權限,它的權限參數是三個 8 進制數據組成的數字,也就是代表 Linux 系統中的 1 、2 、4 和它們的組合,所以我們需要在前面再加上一個 0 用於確保操作能夠正常執行。關於系統文件權限的知識大家需要認真學習 Linux 系統中相關的內容。
注意,上述函數如果在命令行中運行失敗,大部分原因是沒有權限,可以使用 sudo 進行測試。在 fastcgi 中運行時,就更加需要注意權限問題,僅在我們服務器可以操作的目錄中進行安全的文件權限修改。
stat() 函數可以獲取到指定文件的所有屬性信息,在這裡我們可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息。
在 Linux 系統中,有軟連接和硬連接的相關知識。其實軟連接就像是 Windows 中的快捷方式,而硬連接相關於複製了一份數據。在 PHP 中,也為我們提供了創建軟硬連接以及相關的一些操作。
使用 link() 函數創建的就是一個指定文件的硬連接文件,而使用 symlink() 創建的則是一個軟連接文件。相對來說,我們使用軟連接的場景會更多一些。lstat() 就和 stat() 函數的功能一樣,查看文件的各種屬性信息,不過 lstat() 函數針對的是軟硬連接文件。
同樣地,我們也可以修改軟硬連接的用戶和用戶組信息,不過它們的信息不能通過 fileowner() 或 filegroup() 查看。因為它們是連接文件,本身還是和原始文件綁定在一起的,使用 fileowner() 這類的函數查看到的依然是原始文件的信息。我們可以在系統環境中使用 ls -l 查看連接文件的用戶和用戶組信息是否修改成功。
今天的內容比較簡單,而且修改權限的操作也並不常用。不過對於系統安全來,它們還是非常有用的,比如對於上傳來說,我們要預防上傳可執行文件的話,就可以通過修改文件的權限來讓文件無法直接運行,從而起到安全保護的作用。另外,目錄路徑相關的操作也是一些框架的基礎,幾乎所有框架的入口或者說是 Composer 的入口,都會見到 dirname() 以及 basename() 之類函數的身影。
測試代碼:
中的文件系統函數(一).php
參考文檔:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301528.html