模式匹配符 功能 i 模式中的字符將同時匹配大小寫字母. m 字符串視為多行 s 將字符串視為單行,換行符作為普通字符. x 將模式中的空白忽略. A 強制僅從目標字符串的開頭開始匹配. D 模式中的美元元字符僅匹配目標字符串的結(jié)尾. U 匹配最近的字符串. 模式匹配符的用法如下: / 正則表達示/模式匹配符 模式匹配符是放在這句話的最后的。例如: /\w+/s
2018-07-160個贊
fopen、fread、fclose操作讀取文件 上面file_get_contents打開文件的方式簡單、粗暴。下面的 resource fopen ( string $文件名, string 模式) string fread ( resource $操作資源, int 讀取長度) bool fclose ( resource $操作資源 ) 通過上面的函數(shù)我們來講解資源類型的通常操作方式: 1.打開資源 2.使用相關(guān)函數(shù)進行操作 3.關(guān)閉資源 fopen函數(shù) fopen函數(shù)的功能是打開文件,參數(shù)主要有兩個: 1.文件打開的路徑 2.打開文件的模式 返回類型是一個資源類型,我們第一次遇到了之前基礎(chǔ)類型的時候講到的資源類型。 資源類型需要其他的函數(shù)來操作這個資源。所有的資源有打開就要有關(guān)閉。 fread函數(shù) 函數(shù)的功能的功能是讀取打開的文件資源。讀取指定長度的文件資源,讀取一部份向后移動一部份。至到文件結(jié)尾。 fclose函數(shù) fclose函數(shù)的功能是關(guān)閉資源。資源有打開就有關(guān)閉。 了解完函數(shù),后兩個函數(shù)比較簡單。而fopen函數(shù)的模式到底是什么,fopen的模式有下面幾個,我們來講一下fopen的模式: 模式 說明 r 只讀方式打開,將文件指針指向文件頭。 r+ 讀寫方式打開,將文件指針指向文件頭。 w 寫入方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建 w+ 讀寫方式打開,將文件指針指向文件頭并將文件大小截為零。如果文件不存在則嘗試創(chuàng)建 a 寫入方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建 a+ 讀寫方式打開,將文件指針指向文件末尾。如果文件不存在則嘗試創(chuàng)建之 x 創(chuàng)建并以寫入方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創(chuàng)建 x+ 創(chuàng)建并以讀寫方式打開,將文件指針指向文件頭。如果文件已存在,則 fopen() 調(diào)用失敗并返回 FALSE,并生成一條 E_WARNING 級別的錯誤信息。如果文件不存在則嘗試創(chuàng)建
模式 說明 t windows下將\n轉(zhuǎn)為\r\n b 二進制打開模式 說明: 實驗無法讓肉眼看到這個實驗效果。大家記住有這個特點即可。 Windows 下提供了一個文本轉(zhuǎn)換標記('t')可以透明地將 \n 轉(zhuǎn)換為 \r\n。 與此對應(yīng)還可以使用 'b' 來強制使用二進制模式,這樣就不會轉(zhuǎn)換數(shù)據(jù)。要使用這些標記,要么用 'b' 或者用 't' 作為 mode 參數(shù)的最后一個字符。
2018-07-170個贊
?? ??? ??:PHP? ?? ??? ???? ?????.
模式和w模式的不同 同樣是下面的這段代碼,我們改為a模式。 <?php $filename = 'test.txt'; $fp= fopen($filename, "a"); $len = fwrite($fp,'讀大學迷茫了,PHP中文網(wǎng)學PHP給你希望'); echo $len .'字節(jié)被寫入了\n'; ?> 打開網(wǎng)頁執(zhí)行這段代碼,你會發(fā)現(xiàn):每刷新一次,文件中就會多一段 :讀大學迷茫了,PHP中文網(wǎng)學PHP給你希望。 總結(jié): 模式 總結(jié) x 每次寫入會干掉原有文件的內(nèi)容,文件不存在都會創(chuàng)建 a 每次寫入都會向文件的尾端追加內(nèi)容 注:a+ 是增強的追加功能??梢宰x取時也可以使用。 x模式和w模式的不同 這段代碼我們再實驗一次,改為x模式: <?php $filename = 'test.txt'; $fp= fopen($filename, "x"); $len = fwrite($fp,'讀大學迷茫了,PHP中文網(wǎng)學PHP給你希望'); echo $len .'字節(jié)被寫入了\n'; ?> 我們會發(fā)現(xiàn): 1.文件存在的時候會報錯 2.如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的時候又報錯了 3.x+ 是增強的x模式。讀取時也可以使用。
2018-07-170個贊
我們之前創(chuàng)建的文件都是永久文件。 而創(chuàng)建臨時文件在我們平時的項目開發(fā)中也非常有用。創(chuàng)建臨時文件的幾個好處: 文完后即刪除 不需要去維護這個文件的刪除狀態(tài) 例如:我需要把A的文件內(nèi)容轉(zhuǎn)存B里面,把B的文件內(nèi)容轉(zhuǎn)存到C里面。 就跟現(xiàn)實生活中一樣,我可以先用一個臨時的瓶子把B的水裝起來,然后把A的數(shù)據(jù)寫入到B里面。把臨時瓶子的水追加到C里面。 我們來學習一下這個函數(shù): resource tmpfile ( ) 功能:創(chuàng)建一個臨時文件,返回資源類型。關(guān)閉文件即被刪除。 <?php //創(chuàng)建了一個臨時文件 $handle = tmpfile(); //向里面寫入了數(shù)據(jù) $numbytes = fwrite($handle, '寫入臨時文件'); //關(guān)閉臨時文件,文件即被刪除 fclose($handle); echo '向臨時文件中寫入了'.$numbytes . '個字節(jié)'; ?>
2018-07-170個贊
?? ??? ??:PHP? ?? ?? ?? ??? ?????.
1.我們在做軟件安裝的時候,大家會發(fā)現(xiàn)如果文件存在了,就跳轉(zhuǎn)到了其他的地方。 2.如果在安裝的過程當中,某些文件沒有寫入權(quán)限,就不讓進行安裝。 我們來舉一個國內(nèi)非常出名的軟件,discuz的安裝過程截圖給大家看看
我們來學習一下下面的一批函數(shù)。然后,我們來通過一個例子進行學習。 bool file_exists ( $指定文件名或者文件路徑) 功能:文件是否存在。 bool is_readable ( $指定文件名或者文件路徑) 功能:文件是否可讀 bool is_writeable ( $指定文件名或者文件路徑) 功能:文件是否可寫 bool is_executable ( $指定文件名或者文件路徑) 功能:文件是否可執(zhí)行 bool is_file ( $指定文件名或者文件路徑) 功能:是否是文件 bool is_dir ( $指定文件名或者文件路徑) 功能:是否是目錄 void clearstatcache ( void ) 功能:清楚文件的狀態(tài)緩存 上面的功能一看就清楚了。那實驗,我們就來寫這個最開始我們舉的這個例子。 我們來講第一個例子,文件鎖。如果已經(jīng)安裝了,存在安裝鎖就提示已安裝,否則就繼續(xù)安裝。 我們假設(shè)安裝界面的網(wǎng)址是:install.php,安裝的鎖文件是install.lock。我們就可以檢測install.lock文件是否存在。 <?php if(file_exists('install.lock')){ echo '已安裝,請不要再次進行安裝'; exit; } ?> 我們接下來做一個文件安裝檢測的實驗來檢測文件或目錄是否有寫入或者讀取權(quán)限。如果沒有則不能進行安裝。 處理這件事情的思路如下: 1.定義一批需要檢測權(quán)限的數(shù)組 2.可以檢測是文件夾還是文件 3.做一個標置位變量,如果標置位變量一旦為false則不顯示下一步的安裝 <?php //可以定義一批文件是否存在 $files = [ 'config.php', 'img/', 'uploads/', ]; //定義標志位變量 $flag = true; foreach($files as $v){ echo $v; //判斷是文件還是文件夾 if(is_file($v)){ echo '是一個文件 '; }else if(is_dir($v)){ echo '是一個文件夾 '; } if(is_readable($v)){ echo ' 可讀'; }else{ echo '<font color="red">不可讀</font>'; } if(is_writeable($v)){ echo '可寫'; }else{ echo '<font color="red">不可寫</font>'; } echo '<br />'; } if($flag){ echo '<a href="step1">下一步</a>'; }else{ echo '不能進行安裝'; } ?> 通過上面的例子,我們就做到了。實現(xiàn)PHP某個軟件安裝過程當中的安裝檢測。 也就是我們上面思路的實現(xiàn)。
2018-07-170個贊
函數(shù)名 功能 file 把整個文件讀入一個數(shù)組中 fgets 從文件指針中讀取一行,讀到最后返回false fgetc 從文件指針中讀取一個字符,讀到最后返回false ftruncate 將文件截斷到給定的長度
函數(shù)名 功能 file 把整個文件讀入一個數(shù)組中 fgets 從文件指針中讀取一行,讀到最后返回false fgetc 從文件指針中讀取一個字符,讀到最后返回false ftruncate 將文件截斷到給定的長度 我們通過一個實例來把上面幾個函數(shù)都用到。 我們在demo.txt文件中寫入一批文件: abcdeefghijklk opqrst uvwxyz 12345678 <?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個字符 echo fgetc($fp); //我要全部讀取可以,讀取一次將結(jié)果賦值一次給$string while($string = fgetc($fp)){ echo $string; } ?> fgets每次打開一行: <?php //以增加的r模式打開 $fp = fopen('demo.txt','r+'); //你分發(fā)現(xiàn)每次只讀一個字符 echo fgets($fp); echo fgets($fp); echo fgets($fp); echo fgets($fp); ?> 上面的代碼,你會發(fā)現(xiàn)每次讀取一次打開一行。讀取最后返回的是false。 我們接下來看文件截取函數(shù): <?php //打開我們上面的demo.txt文件 $file = fopen("demo.txt", "a+"); //你可以數(shù)數(shù)20個字有多長,看看是不是達到效果了 echo ftruncate($file,20); fclose($file); ?> 上例中我們發(fā)現(xiàn),截取多長就能顯示多長的內(nèi)容。 文件的時間函數(shù) 函數(shù) 功能說明 filectime 文件創(chuàng)建時間 filemtime 文件修改時間 fileatime 文件上次訪問時間 <?php $filename = 'demo.txt'; if (file_exists($filename)) { echo '$filename文件的上次訪問時間是:' . date("Y-m-d H:i:s", fileatime($filename)); echo '$filename文件的創(chuàng)建時間是: ' . date("Y-m-d H:i:s", filectime($filename)); echo '$filename文件的修改時間是: ' . date("Y-m-d H:i:s", filemtime($filename));} ?>
2018-07-170個贊
文件鎖的用途: 若一個人在寫入一個文件,另外一個人同時也打個了這個文件進行寫入文件。 這情況下,如果遇到一定的碰撞概率的話,不知道到底誰的操作為準。 因此,這個時候我們引入鎖機制。 若用戶A在寫入或者讀取這個文件的時候,將文件加上共享所。我可以讀,其他人也可以讀。 但是,我如果這與的時候。我使用獨占鎖。這個文件歸我了,你們都別動,除非我將文件鎖進行釋放。 注意:不論加上了文件鎖后要注意釋放。
鎖類型 說明 LOCK_SH 取得共享鎖定(讀取的程序) LOCK_EX 取得獨占鎖定(寫入的程序 LOCK_UN 釋放鎖定(無論共享或獨占) 我們接下來把demo.txt加上一個獨占鎖,進行寫入操作。 <?php $fp = fopen("demo.txt", "r+"); // 進行排它型鎖定 if (flock($fp, LOCK_EX)) { fwrite($fp, "文件這個時候被我獨占了喲\n"); // 釋放鎖定 flock($fp, LOCK_UN); } else { echo "鎖失敗,可能有人在操作,這個時候不能將文件上鎖"; } fclose($fp); ?> 說明: 1.上例中我為了寫入文件,把文件加上了獨占鎖。 2.如果我操作完成,寫入完成后,解除掉了獨占鎖。 3.如果是在讀取文件的時候,大家可加按照同樣的處理思路加上共享鎖。
2018-07-180個贊
8-9 PHP目錄處理函數(shù): 處理文件夾的基本思想如下: 1.讀取某個路徑的時候判斷是否是文件夾 2.是文件夾的話,打開指定文件夾,返回文件目錄的資源變量 3.使用readdir讀取一次目錄中的文件,目錄指針向后偏移一次 4.使用readdir讀取到最后,沒有可讀的文件返回false 5.關(guān)閉文件目錄 我們來學習一比常用函數(shù): 函數(shù)名 功能 opendir 打開文件夾,返回操作資源 readdir 讀取文件夾資源 is_dir 判斷是否是文件夾 closedir 關(guān)閉文件夾操作資源 filetype 顯示是文件夾還是文件,文件顯示file,文件夾顯示dir
2018-07-180個贊
8-11 PHP文件路徑函數(shù): 1.文件后綴需要取出來 2.路徑需要取出名字不取目錄 3.只需要取出路徑名中的目錄路徑 4.或者把網(wǎng)址中的各個部份進行解析取得獨立值 5.甚至是自己組成一個url出來 ... .... 很多地方都需要用路徑處理類的函數(shù)。 我們把常用的路徑處理函數(shù)為大家做了標注,大家對著這個路徑處理函數(shù)進行處理即可: 函數(shù)名 功能 pathinfo 返回文件的各個組成部份 basename 返回文件名 dirname 文件目錄部份 parse_url 網(wǎng)址拆解成各部份 http_build_query 生成url 中的query字符串 http_build_url 生成一個url
2018-07-180個贊
?? ??? ??:??? ?? ??? ?? ? ????
1:看一下HTML入門書籍; 2:學一下word文檔編輯軟件
2018-06-170個贊
難道也是和其他語言一樣,有字符型,整形,double什么之類的。
2018-06-190個贊