熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

Linux下的編程 PHP高級技巧全放送(二)

2013-11-15 12:21:35  來源: PHP編程 

  PHP和文件系統的維護
  
  PHP中有許多與文件系統有關的函數這些函數不僅可以打開文件還可以顯示目錄中的內容移動文件和其他一些功能許多人甚至用PHP開發基於互聯網的文件資源管理器
  
  關於文件路徑的解釋在Windows中可以在路徑中使用/和符號而在其他的操作系統中只能使用/符號出於一致性的緣故我們統一使用/符號
  
  下面的腳本樣例可以顯示一個目錄清單注釋已經包含在代碼中
  
  <? /*把要讀取的目錄的全路徑名存入一個名字為$dir_name的變量中 */
  $dir_name = /home/me/;
  /* 創建一個句柄其值是打開一個給定目錄的結果*/
  $dir = opendir($dir_name);
  /* 建立一個文字塊用以放置列表元素(文件名字)*/
  $file_list = <ul>;
  /* 使用一個while語句讀取已經打開的目錄中的所有元素如果文件的名字不是則顯示列表中的名字*/
  while ($file_name = readdir($dir)) {
  if (($file_name != ) && ($file_name != )) {
  $file_list = <li>$file_name;
  }
  }
  $file_list = </ul>;
  /*關閉打開的目錄結束PHP模塊*/
  closedir($dir);
  ?>
  <! Start your HTML >
  <HTML>
  <HEAD>
  <TITLE>Directory Listing</TITLE>
  </HEAD>
  <BODY>
  <! Use PHP to print the name of the directory you read >
  <P>Files in: <? echo $dir_name; ?></p>
  <! Use PHP to print the directory listing >
  <? echo $file_list; ?>
  </BODY>
  </HTML>
  
  好了我們已經得到了一個目錄清單需要注意的是要讀取一個文件(稍後我們將進行講解)或目錄的內容PHP運行的系統上的用戶必須至少有讀取文件的權限
  
  下面是一個如何拷貝文件的例子
  <? /*把你要拷貝的原文件的全路徑賦給一個名字為$original的變量中把拷貝的文件的全路徑賦予一個名字為$copied的變量中*/
  $original = /home/me/mydatabasedump;
  $copied = /archive/mydatabasedumo_;
  /* 使用copy()函數拷貝原始文件如果拷貝沒有完成則會顯示一個錯誤信息*/
  @copy($original $copied) or die(Couldnt copy file);
  ?>
  
  這個例子是一個文件備份系統的原型在這段腳本運行時它把文件拷貝到一個不同的位置進行保存稍微修改一下守護程序就可以在一天中你指定的時刻執行它而無需用戶的干預
  
  假定你在系統上安裝了Lynx可以創建一個守護程序的條目訪問這個文件訪問這個文件會運行這個腳本並建立一個拷貝文件下面的例子將在上午點鐘運行這個腳本然後關閉Lynx
  
   * * * [username] lynx dump >/dev/null >&
  
  如果運行的是CGI版本的PHP可以跳過Lynx部分而直接調用二進制文件
  
   * * * [username] php /path/to/copyfilephp >/dev/null >&
  
  豐富的數組函數
  
  PHP 中新添加了個與組數有關的函數其中一些常見的函數可以判斷一個數組中是否包含某個元素對一個數組中的元素進行計數添加或刪除數組中的元素或者對數組中的元素進行排序
  
  如果有一個很大的數組而你需要找出其中是否包含一個特定的元素就可以使用in_array()下面的例子將顯示Not found in this array因為在一個名字為$namesArray的數組中查找Albert而在$namesArray數組中不存在這樣一個元素
  <? $namesArray = array(Joe Jane Bob Mary Paul Eddie John);
  $lookingFor = Albert;
  if (in_array($lookingFor $namesArray)) {
  echo Youve found it!;
  } else {
  echo Not found in this array!;
  }
  ?>
  
  如果把$lookingFor的值改為Mary就會得到Youve found it!的信息因為Mary是$namesArray數組中的一個元素
  
  如果要對一個數組中的元素個數進行計數只要簡單地使用count()函數即可
  <? $namesArray = array(Joe Jane Bob Mary Paul Eddie John);
  $count = count($namesArray); ?>
  
  返回的$count的值為
  
  可以在一個數組的開頭或結尾處添加元素還可以使用array_merge()來建立一個包含二個或更多數組中元素的新數組合並時元素的順序會按指定的順序排列如果原來的數組是被排過序的在合並後需要對它重新排序
  
  我們可以首先利用array_push()在數組的結尾處添加一個元素
  <? /* 建立一個數組 */
  $fruitArray = array(apple orange banana kiwi pear);
  /* 向數組中添加元素 */
  array_push($fruitArray grape pineapple tomato);
  /*顯示每個元素及其序號*/
  while (list($key$value) = each($fruitArray)) {
  echo $key : $value<br>;
  }
  ?>
  
  運行上面的程序將得到下面的結果
   : apple
   : orange
   : banana
   : kiwi
   : pear
   : grape
   : pineapple
   : tomato
  
  如果需要在數組的開頭添加元素其代碼與上面的代碼差不多唯一的不同之處是需要用array_unshift()代替array_push()
  <?
  /* 建立一個數組*/
  $fruitArray = array(apple orange banana kiwi pear);
  /* 向數組中添加元素*/
  array_unshift($fruitArray grape pineapple tomato);
  /* 顯示每個元素及其序號*/
  while (list($key$value) = each($fruitArray)) {
  echo $key : $value<br>;
  }
  ?>
  
  運行上面的程序將得到下面的結果
   : grape
   : pineapple
   : tomato
   : apple
   : orange
   : banana
   : kiwi
   : pear
  
  array_merge()函數可以把二個或更多的數組合並為一個數組
  <? /*建立第一個數組*/
  $fruitArray = array(apple orange banana kiwi pear);
  /*/建立第二個數組*/
  $vegArray = array(carrot green beans asparagus artichoke corn);
  /*把這二個數組合並為一個數組*/
  $goodfoodArray = array_merge($fruitArray $vegArray);
  /* 顯示每個元素及其序號*/
  while (list($key$value) = each($goodfoodArray)) {
  echo $key : $value<br>;
  }
  ?>
  
  運行上面的腳本將得到下面的結果
   : apple
   : orange
   : banana
   : kiwi
   : pear
   : carrot
   : green beans
   : asparagus
   : artichoke
   : corn
  
  現在我們已經掌握了如何添加元素和合並數組我們再來看看如何從一個數組中刪除元素從一個數組的末尾刪除一個元素可以使用array_pop()函數使用array_shift()函數可以從一個數組的開頭刪除一個元素盡管使用array_pop()或 array_shift()從數組中刪除了一個元素你還可以把這個元素當作一個變量來使用
  
  使用array_pop()從一個數組的末尾刪除一個元素
  <?
  /*建立一個數組*/
  $fruitArray = array(apple orange banana kiwi pear);
  /* 從數組的末尾刪除一個元素*/
  $popped = array_pop($fruitArray);
  /* 顯示刪除後數組的內容和你刪除的元素*/
  while (list($key$value) = each($fruitArray)) {
  echo $key : $value<br>;
  }
  echo <br>and finally in $popped: $popped;
  ?>
  
  運行上面的腳本會得到下面的結果
   : apple
   : orange
   : banana
   : kiwi
  and finally in $popped: pear
  
  我們再來討論一個從一個數組的末尾刪除元素的例子
  <?
  /* 建立一個數組*/
  $fruitArray = array(apple orange banana kiwi pear);
  /*從一個數組的開始刪除一個元素*/
  $shifted = array_shift($fruitArray);
  /* 顯示刪除後數組的內容和你刪除的元素*/
  while (list($key$value) = each($fruitArray)) {
  echo $key : $value<br>;
  }
  echo <br>and finally in $shifted: $shifted;
  ?>
  
  運行上述腳本會得到如下的顯示結果
   : orange
   : banana
   : kiwi
   : pear
  and finally in $shifted: apple
  
  另外還有幾個函數可以對數組中的元素進行排序但在這裡我們將只簡要介紹基本的排序函數說明排序的過程
  <? /*建立一個數組*/
  $fruitArray = array(apple orange banana kiwi pear);
  /* 對數組進行排序*/
  sort($fruitArray);
  /*顯示每個元素及其序號*/
  while (list($key$value) = each($fruitArray)) {
  echo $key : $value<br>;<
From:http://tw.wingwit.com/Article/program/PHP/201311/20800.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.