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

PHP對文本文件的搜索

2022-06-13   來源: PHP編程 
    ——此文章摘自《完全手冊PHP網絡開發詳解》定價 特價 詳細>>

    本節將介紹一個對文件夾下全部文本文件進行搜索的方法PHP程序通過對文件夾下全部文件的讀取來檢測文件是否包含搜索的內容具體代碼如下所示
    <?php
    //獲得關鍵詞
    $colname_rs = $_GET[key];
    $result = explode($_GET[key]);
    $file_result = array();                         //初始化數組
    $dir = files/;                                //定義路徑
    $dir_res = opendir($dir);                       //打開目錄
    while($filen=readdir($dir_res))                 //循環讀取目錄中的文件
    {
        if($filen == || $filen == )     //將當前目錄和父目錄過濾掉
        {
            continue;
        }
        $file = fopen($dir$filen r);            //打開文件
        $filesize = filesize($dir$filen);          //獲取文件長度
        $filecont = fread($file $filesize);        //獲取文件的全部內容
        fclose($file);                              //關閉文件
        //循環搜索文件
        for($i=$j=;$i<count($result);$i++)
        {
             if($result[$i]!= && strstr($filecont $result[$i]))
                  //如果文件找到則將文件名保存到數組中
            {
                $file_result[$j] = $filen;
                $j++;
            }
        }
    }
    closedir($dir_res);                             //關閉目錄
    ?>
    <html>
    <head>
    <title>Search</title>
    <meta httpequiv=ContentType content=text/html; charset=gb>
    </head>
    <body>
    <form name=form method=get action=?>
      <div align=center>請輸入要搜索的關鍵詞
        <input name=key type=text size= value=<?php echo $_GET[key] ?>>
        <input type=submit value=Submit>
      </div>
    </form>
    <p align=center><B>當前關鍵詞
    <?php
    for($i=;$i<count($result);$i++)                //獲得所有的關鍵詞
    {
      echo $result[$i] ;
    }
    ?></B></p>
    <p><hr></p>
    <?php for($j=;$j<count($file_result);$j++) { ?>
    <p>* <a href=<?php echo $dir$file_result[$j]; ?>><?php echo $file_result [$j]; ?></a></p>
    <?php } ?>
    </body>
    </html>

    運行結果如圖所示


  搜索文本文件


From:http://tw.wingwit.com/Article/program/PHP/201311/21396.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.