php fgets() 函數使用實例程式碼

怪我咯
發布: 2023-03-13 13:40:02
原創
1384 人瀏覽過

fgets() 函數從檔案指標讀取一行。

語法

fgets(file,length)
登入後複製
參數#描述
file必需。規定要讀取的文件。
length可選。規定要讀取的位元組數。預設是 1024 位元組。

說明

從 file 指向的檔案讀取一行並回傳長度最多為 length - 1 位元組的字串 。碰到換行符號(包括在回傳值)、EOF 或已經讀取了 length - 1 位元組後停止(要看先碰到那一種情況)。如果沒有指定 length,則預設為 1K,或說 1024 位元組。

若失敗,則傳回 false。

提示與註解

註解:length 參數從 PHP 4.2.0 起成為可選項,如果忽略,則行的長度被假定為 1024 位元組。從 PHP 4.3 開始,忽略掉 length將繼續從流中讀取資料直到行結束。如果檔案中的大多數行都大於 8 KB,則在腳本中指定最大行的長度在利用資源上更為有效。

註解:從 PHP 4.3 開始本函數可以安全地用於二進位檔案。早期的版本則不行。

註解:如果碰到 PHP 在讀取檔案時無法辨識 Macintosh 檔案的行結束符,可以啟動 auto_detect_line_endings 執行時期設定選項。

下面使用PHP fgets()函數按行讀取文字檔案的實例,程式碼如下

$handle = @fopen("D:/public/test.txt", "r");
if ($handle) {
    while (!feof($handle)) {
    
        $str = fgets($handle, 4096);
       
  //$str = '#主单词1#';
  if(preg_match('/#(.+)#/',$str,$matches)){
     
     $di_word = $matches[1];
     $di_word = mysql_escape_string($di_word);
     $sql = " SELECT di_id FROM `du_index` WHERE di_word = '{$di_word}'";
     $result = mysql_query($sql);
     $row = mysql_fetch_row($result);
     $di_id =  $row[0];
     if (count($dy_word)>0){
      $sql = " INSERT INTO `du_yun` (`di_id`,`di_word`,`dy_word`,`dy_description`,`dy_status`,`dy_time`) VALUES";
      for ($i=0;$i<count($dy_word);$i++){
     $sql .= " (&#39;{$di_id_1}&#39;,&#39;{$di_word_1}&#39;,&#39;{$dy_word[$i]}&#39;,&#39;{$dy_description[$i]}&#39;,&#39;1&#39;,now()),";
     
      }
      $result = mysql_query(substr($sql,0,-1).&#39;;&#39;);
      if ($result){}else{
      echo $sql . &#39;<br />&#39;;
         }
     }
     $di_id_1 = $di_id;
     $di_word_1 = $di_word;
     $dy_word = $dy_description = array();
     $sql = &#39;&#39;;
     continue;
  }; 
  //$str = &#39;[志願者]參[與]人員&#39;;
  if (preg_match(&#39;/^\[(.+)\](.+)$/&#39;,$str,$matches)){
     $dy_word[]        = trim($matches[1]);
     $dy_description[] = trim($matches[2]);
     continue;
  }
  
 }
 if (count(dy_word)>0){
     $sql = " INSERT INTO `du_yun` (`di_id`,`di_word`,`dy_word`,`dy_description`,`dy_status`,`dy_time`) VALUES";
     for ($i=0;$i<count($dy_word);$i++){
       $sql .= " (&#39;{$di_id_1}&#39;,&#39;{$di_word_1}&#39;,&#39;{$dy_word[$i]}&#39;,&#39;{$dy_description[$i]}&#39;,&#39;1&#39;,now()),";
       
     }
     $result = mysql_query(substr($sql,0,-1).&#39;;&#39;) or die(mysql_error());
        if ($result){}else{
      echo $sql . &#39;<br />&#39;;
     }
 }
    fclose($handle);
}
登入後複製

以上是php fgets() 函數使用實例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板