- 相關(guān)推薦
php文件鎖怎么用
PHP出現(xiàn)文件鎖與mysql表鎖有大概想的用法,就是同一時(shí)間只能讓一個(gè)人操作,這樣就避免了同時(shí)有多個(gè)人操作同一文件,這樣導(dǎo)致數(shù)據(jù)丟失的情況了。以下是小編為大家搜索整理的PHP文件鎖怎么用,希望能給大家?guī)韼椭?更多精彩內(nèi)容請(qǐng)及時(shí)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
鎖機(jī)制之所以存在是因?yàn)椴l(fā)導(dǎo)致的資源競(jìng)爭(zhēng),為了確保操作的有效性和完整性,可以通過鎖機(jī)制將并發(fā)狀態(tài)轉(zhuǎn)換成串行狀態(tài)。作為鎖機(jī)制中的一種,PHP的文件鎖也是為了應(yīng)對(duì)資源競(jìng)爭(zhēng)。假設(shè)一個(gè)應(yīng)用場(chǎng)景,在存在較大并發(fā)的情況下,通過fwrite向文件尾部多次有序的寫入數(shù)據(jù),不加鎖的情況下會(huì)發(fā)生什么?多次有序的寫入操作相當(dāng)于一個(gè)事務(wù),我們此時(shí)需要保證這個(gè)事務(wù)的完整性。
如果我們有兩個(gè)程序同時(shí)向某個(gè)文件中寫入數(shù)據(jù),為了保證數(shù)據(jù)的完整性,可以加一個(gè)文件鎖,先讓程序1執(zhí)行,程序1執(zhí)行完后,解鎖,再讓程序2執(zhí)行。實(shí)現(xiàn)代碼如下:
$fp = fopen('test.txt',"a");$count = 10;if (flock($fp, LOCK_EX)) {for($i=1;$i<$count;$i++){fwrite($fp, 'text2_'.$i."rn");echo "test2".date('h:i:s') . "";sleep(1); echo "test2".date('h:i:s');}flock($fp , LOCK_UN);}else{echo "Couldn't lock the file !";}fclose($fp);
【推薦閱讀】
PHP如何實(shí)現(xiàn)字符串翻轉(zhuǎn)
strrev函數(shù)對(duì)英文很好用,直接可以實(shí)現(xiàn)字符串翻轉(zhuǎn),但是面對(duì)中文呢?肯定都是亂碼,對(duì)于這樣的問題有很多,比如strstr,substr等函數(shù)都是這樣的。還好PHP提供了mb_類的函數(shù)實(shí)現(xiàn)不同編碼、不同語言之間的相互轉(zhuǎn)換等操作。
(直接使用php自帶函數(shù)strrev($str))
print_r(strrev($str));使用for循環(huán)方式,str_split($str)
$newArrOne = [];//初始化一個(gè)新的數(shù)組 $newStrOne = '';//初始化一個(gè)新的字符串 $newArrOne = str_split($str); $arrCount = count($newArrOne); for ($i=0; $i < $arrCount; $i++) { $newStrOne.=$newArrOne[$i]; } echo "
"; print_r($newStrOne); echo "
使用for循環(huán)方式,strlen($substr)
$newStrTwo = '';//初始化一個(gè)新的.字符串 $arrCountTwo = strlen($str); for ($i=1; $i <= $arrCountTwo; $i++) { $newStrTwo.=substr($str, -$i, 1); } echo "
"; print_r($newStrTwo)."\n"; echo "
使用for循環(huán)方式,strlen($substr)
$newStrThree = '';//初始化一個(gè)新的字符串$arrCountThree = strlen($str);for ($i = $arrCountThree; $i>=0;$i--) { @$newStrThree.=$str[$i];}echo "
";print_r($newStrThree)."\n";echo "
【php文件鎖怎么用】相關(guān)文章:
PHP文件怎么操作11-26
用PHP遍歷目錄下的全部文件02-11
php是什么文件03-30
PHP常用的文件操作函數(shù)11-26
php中目錄文件操作詳談03-01
PHP遍歷目錄文件常用方法03-24
深入理解PHP的.htaccess文件11-27