久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      php如何修改php文件內(nèi)容

      php修改文件內(nèi)容的方法:首先通過file_put_contents函數(shù)寫入文件;然后使fwrite配合fopen進(jìn)行寫入并修改的操作;最后通過file_exists等函數(shù)檢測(cè)文件屬性即可。

      php如何修改php文件內(nèi)容

      推薦:《PHP視頻教程》

      file_put_contents寫入文件

      我們先來學(xué)習(xí)第一種寫入文件的方式:

      int file_put_contents ( string $文件路徑, string $寫入數(shù)據(jù)])

      功能:向指定的文件當(dāng)中寫入一個(gè)字符串(會(huì)清空原有的內(nèi)容),如果文件不存在則創(chuàng)建文件。返回的是寫入的字節(jié)長(zhǎng)度

      <?php    $data = "在PHP中文網(wǎng)學(xué)好PHP,妹子票子不再話下!";     $numbytes = file_put_contents('binggege.txt', $data); //如果文件不存在創(chuàng)建文件,并寫入內(nèi)容     if($numbytes){         echo '寫入成功,我們讀取看看結(jié)果試試:';         echo file_get_contents('binggege.txt');     }else{        echo '寫入失敗或者沒有權(quán)限,注意檢查';    } ?>

      fwrite配合fopen進(jìn)行寫入操作

      int fwrite ( resource $文件資源變量, string $寫入的字符串 [, int 長(zhǎng)度])
      <?php    $filename = 'test.txt';    $fp= fopen($filename, "w");  //w是寫入模式,文件不存在則創(chuàng)建文件寫入。    $len = fwrite($fp, '我是一只來自北方的狼,卻在南方凍成了狗');    fclose($fp);    print $len .'字節(jié)被寫入了n'; ?>

      總結(jié):
      1.不論有沒有新建都會(huì)打開文件重新寫入
      2.原有的文件內(nèi)容會(huì)被覆蓋掉
      3.文件不存在會(huì)創(chuàng)建

      那我們來對(duì)比一下以下幾個(gè)模式的不同:

      模式 說明
      r 只能讀不能使用fwrite寫
      r+ 可操作讀、寫
      w 只可以寫功能
      w+ 即可讀又可以寫

      a模式和w模式的不同

      同樣是下面的這段代碼,我們改為a模式。

      <?php    $filename = 'test.txt';    $fp= fopen($filename, "a");    $len = fwrite($fp,'讀大學(xué)迷茫了,PHP中文網(wǎng)學(xué)PHP給你希望');    echo  $len .'字節(jié)被寫入了n'; ?>

      打開網(wǎng)頁執(zhí)行這段代碼,你會(huì)發(fā)現(xiàn):每刷新一次,文件中就會(huì)多一段
      :讀大學(xué)迷茫了,PHP中文網(wǎng)學(xué)PHP給你希望。

      總結(jié):

      模式 總結(jié)
      x 每次寫入會(huì)干掉原有文件的內(nèi)容,文件不存在都會(huì)創(chuàng)建
      a 每次寫入都會(huì)向文件的尾端追加內(nèi)容

      x模式和w模式的不同

      這段代碼我們?cè)賹?shí)驗(yàn)一次,改為x模式:

      <?php    $filename = 'test.txt';    $fp= fopen($filename, "x");    $len = fwrite($fp,'讀大學(xué)迷茫了,PHP中文網(wǎng)學(xué)PHP給你希望');    echo  $len .'字節(jié)被寫入了n'; ?>

      我們會(huì)發(fā)現(xiàn):

      1.文件存在的時(shí)候會(huì)報(bào)錯(cuò)  2.如果把$filename 改成其他的文件名,就可以了。但是,再次刷新的時(shí)候又報(bào)錯(cuò)了  3.x+ 是增強(qiáng)的x模式。讀取時(shí)也可以使用。

      php 創(chuàng)建臨時(shí)文件

      我們來學(xué)習(xí)一下這個(gè)函數(shù):

      resource tmpfile ( )

      功能:創(chuàng)建一個(gè)臨時(shí)文件,返回資源類型。關(guān)閉文件即被刪除。

      php移動(dòng)、拷貝和刪除文件

      重命名文件

      bool rename($舊名,$新名);

      這個(gè)函數(shù)返回一個(gè)bool值,將舊的名字改為新的名字。

      <?php  //舊文件名 $filename = 'test.txt';  //新文件名 $filename2 = 'reName.txt.';  //修改名稱 rename($filename, $filename2); ?>

      復(fù)制文件

      復(fù)制文件,就相當(dāng)于是克隆技術(shù),將一個(gè)原來的東西再克隆成一個(gè)新的東西。兩個(gè)長(zhǎng)得一模一樣。

      bool copy(源文件,目標(biāo)文件)

      功能:將指定路徑的源文件,復(fù)制一份到目標(biāo)文件的位置。

      <?php      //舊文件名     $filename = 'copy.txt';          //新文件名     $filename2 = 'copy2.txt';          //修改名字。     copy($filename, $filename2);  ?>

      注:
      1·復(fù)制的文件名不能和源文件同名,否則無法復(fù)制;
      2.復(fù)制文件名如果已經(jīng)存在的話,會(huì)把源文件的內(nèi)容copy一份替換復(fù)制文件的內(nèi)容。

      刪除文件

      刪除文件就是將指定路徑的一個(gè)文件刪除,不過這個(gè)刪除是直接刪除。使用的是windows電腦,你在回收站看不到這個(gè)文件。

      你只會(huì)發(fā)現(xiàn),這個(gè)文件消失了。

      bool unlink(指定路徑的文件)
      <?php    $filename = 'test.txt';     if (unlink($filename)) {        echo  "刪除文件成功 $filename!n";    } else {        echo "刪除 $filename 失敗!n";    } ?>

      php檢測(cè)文件屬性函數(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)緩存

      我們來講第一個(gè)例子,文件鎖。如果已經(jīng)安裝了,存在安裝鎖就提示已安裝,否則就繼續(xù)安裝。

      我們假設(shè)安裝界面的網(wǎng)址是:install.php,安裝的鎖文件是install.lock。我們就可以檢測(cè)install.lock文件是否存在。

      <?php  if(file_exists('install.lock')){     echo '已安裝,請(qǐng)不要再次進(jìn)行安裝';    exit;  } ?>

      php 文件常用函數(shù)和常量

      平臺(tái) 分割符
      windows
      類unix /

      我們會(huì)使用到一個(gè)常量:

      DIRECTORY_SEPARATOR //代表反斜杠

      由于FILE是PHP的預(yù)定義常量,所以沒辦法改變,如果需要讓FILE也自適應(yīng)操作系統(tǒng)。
      那么就是不要用FILE,可以用自定義的常量,并且把FILE處理一下,如下:

      <?php //獲取文件路勁,然后用DIRECTORY_SEPARATOR替換路勁中的'/'、'\'; $_current_file = str_replace(array('/', '\'), DIRECTORY_SEPARATOR, __FILE__);  //重新字定義常量,輸出格式化后的文件路勁 define('__CUR_FILE__', $_current_file);  echo __CUR_FILE__;      // D:myphptestinidex.php  ?>

      文件指針操作函數(shù)

      rewind ( resource handle) 功能:指針回到開始處  fseek ( resource handle, int offset [, int from_where]) 功能:文件指針向后移動(dòng)指定字符
      <?php  > demo2.txt     >     aaaaa     >     bbbbb     >     11111     >     22222  $fp = fopen('demo2.txt', 'r+'); //讀取10個(gè)字符, //讀取前十個(gè)字節(jié)(空格算一個(gè),換行算兩個(gè)字節(jié)) echo fread($fp,10);  //指針設(shè)置回到開始處     rewind($fp);    // aaaaa bbb //再讀取10次看看輸出的是什么 echo '<br>'; echo fread($fp,10);     // aaaaa bbb echo '<br>'; //文件指針向后移動(dòng)10個(gè)字符,(當(dāng)前指針在最開始的位置) echo fseek($fp,10);     // fseek的返回值為0 echo '<br>'; //再看看文件中輸出的是什么 echo fread($fp,10);     // bb 11111  echo '<br>'; fclose($fp); ?>

      filesize 檢測(cè)文件的大小

      <?php   $filename = 'demo.txt'; echo $filename . '文件大小為: ' . filesize($filename) . ' bytes';  ?>

      其它操作文件的函數(shù)

      其實(shí)還有一些其他操作文件的函數(shù),讀取文件

      函數(shù)名 功能
      file 把整個(gè)文件讀入一個(gè)數(shù)組中
      fgets 從文件指針中讀取一行,讀到最后返回false
      fgetc 從文件指針中讀取一個(gè)字符,讀到最后返回false
      ftruncate 將文件截?cái)嗟浇o定的長(zhǎng)度

      fgetc

      //以增加的r模式打開 $fp = fopen('demo2.txt','r+');  //你會(huì)發(fā)現(xiàn)每次只讀一個(gè)字符 echo  fgetc($fp) .'<br />'; //只讀取一個(gè)字符  //我要全部讀取可以,讀取一次將結(jié)果賦值一次給$string while($string = fgetc($fp)){      echo $string;     //讀取不到返回false }

      fgets

      //以增加的r模式打開 $fp = fopen('demo.txt','r+');  //你會(huì)發(fā)現(xiàn)每次讀取一次打開一行 echo  fgets($fp); echo  fgets($fp); echo  fgets($fp); echo  fgets($fp);   //讀取不到返回false

      ftruncate返回值為1 int

      ftruncate($file , len);截取的長(zhǎng)度大于文件內(nèi)容長(zhǎng)度,會(huì)用空字符填補(bǔ)
      //打開我們上面的demo.txt文件 $file = fopen("demo.txt", "a+");  //你可以數(shù)數(shù)20個(gè)字有多長(zhǎng),看看是不是達(dá)到效果了 echo ftruncate($file,20); fclose($file);

      文件的時(shí)間函數(shù)

      函數(shù) 功能說明
      filectime 文件創(chuàng)建時(shí)間
      filemtime 文件修改時(shí)間
      fileatime 文件上次訪問時(shí)間
      <?php  $filename = 'demo.txt';      if (file_exists($filename)) {        echo '$filename文件的上次訪問時(shí)間是:'  . date("Y-m-d H:i:s", fileatime($filename));        echo '$filename文件的創(chuàng)建時(shí)間是: ' . date("Y-m-d H:i:s", filectime($filename));         echo '$filename文件的修改時(shí)間是: ' . date("Y-m-d H:i:s", filemtime($filename));}          ?>

      php 文件鎖處機(jī)制

      文件鎖的用途:

      若一個(gè)人在寫入一個(gè)文件,另外一個(gè)人同時(shí)也打個(gè)了這個(gè)文件進(jìn)行寫入文件。
      這情況下,如果遇到一定的碰撞概率的話,不知道到底誰的操作為準(zhǔn)。
      因此,這個(gè)時(shí)候我們引入鎖機(jī)制。
      若用戶A在寫入或者讀取這個(gè)文件的時(shí)候,將文件加上共享所。我可以讀,其他人也可以讀。
      但是,我如果這與的時(shí)候。我使用獨(dú)占鎖。這個(gè)文件歸我了,你們都別動(dòng),除非我將文件鎖進(jìn)行釋放。

      注意:加上了文件鎖后要注意釋放。

      php 文件鎖處機(jī)制
      文件鎖機(jī)制一般在單一打開文件的時(shí)候根本看不到效果。這一塊的學(xué)習(xí)有一點(diǎn)點(diǎn)抽象。

      大家不要去思考怎么實(shí)現(xiàn)的呀?

      為什么看不到效果呀?
      答:因?yàn)殡娔X的操作太快了,基本上是毫秒級(jí)的。所以這個(gè)實(shí)驗(yàn)其實(shí)是看不到效果的。

      這一章了解文件鎖的基本概念即可,熟悉文件鎖函數(shù)和鎖機(jī)制。

      文件鎖的用途:

      若一個(gè)人在寫入一個(gè)文件,另外一個(gè)人同時(shí)也打個(gè)了這個(gè)文件進(jìn)行寫入文件。
      這情況下,如果遇到一定的碰撞概率的話,不知道到底誰的操作為準(zhǔn)。
      因此,這個(gè)時(shí)候我們引入鎖機(jī)制。
      若用戶A在寫入或者讀取這個(gè)文件的時(shí)候,將文件加上共享所。我可以讀,其他人也可以讀。
      但是,我如果這與的時(shí)候。我使用獨(dú)占鎖。這個(gè)文件歸我了,你們都別動(dòng),除非我將文件鎖進(jìn)行釋放。

      注意:不論加上了文件鎖后要注意釋放。

      我們來看看這個(gè)函數(shù):

      bool flock ( resource $handleFile , int $operation)

      我們來看看鎖類型:

      鎖類型 說明
      LOCK_SH 取得共享鎖定(讀取的程序)
      LOCK_EX 取得獨(dú)占鎖定(寫入的程序)
      LOCK_UN 釋放鎖定(無論共享或獨(dú)占)

      我們接下來把demo2.txt加上一個(gè)獨(dú)占鎖,進(jìn)行寫入操作。

          $fp = fopen("demo2.txt", "r+");          // 進(jìn)行排它型鎖定     if (flock($fp, LOCK_EX)) {              echo '1';              fwrite($fp, "文件這個(gè)時(shí)候被我獨(dú)占了喲n");              // 釋放鎖定         flock($fp, LOCK_UN);     } else {         echo "鎖失敗,可能有人在操作,這個(gè)時(shí)候不能將文件上鎖";     }          fclose($fp);

      說明:

      1.上例中我為了寫入文件,把文件加上了獨(dú)占鎖。

      2.如果我操作完成,寫入完成后,解除掉了獨(dú)占鎖。

      3.如果是在讀取文件的時(shí)候,大家可加按照同樣的處理思路加上共享鎖。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)