变态重口极致另类在线-波多久久夜色精品国产-波多野结衣在线观看一区-波多野结衣在线观看一区二区-污污的网站免费阅读-污污视频网址

當(dāng)前位置:首頁文章首頁 IT學(xué)院 PHP

運(yùn)用PHP做一個全能搜索引擎

作者:  來源:  發(fā)布時間:2011-5-25 15:40:44  點(diǎn)擊:
本文章分享給各位,教你如何利用PHP做一個站內(nèi)全能的搜索引擎,希望對大家有用。
重在了解一下方法。寫程序前先要想好一個思路,下面是我的思路,可能誰有更好的,但注意這只是一個方法問題 :遍歷所有文件,讀取內(nèi)容,搜索關(guān)鍵字,如果匹配就放入一個數(shù)組,讀數(shù)組。在實(shí)現(xiàn)這些步驟之前,我假定你的網(wǎng)頁都是標(biāo)準(zhǔn)的,就是有標(biāo)題(<title></title>),也有(<bod *></body>),如果你是用dreamweaver或者frontp...
  正文:朋友用dreamweaver做了一個網(wǎng)站,沒有動態(tài)的內(nèi)容,只是一些個人收藏的文章,個人介紹等等。現(xiàn)在內(nèi)容比較多了,想叫我?guī)退鲆粋搜索引擎。說實(shí)在的,這是一個不難的問題,于是就隨手做了一個。現(xiàn)在我在其它論壇上也看到有人想做這個,于是就想說說這方面的知識,重在了解一下方法。

寫程序前先要想好一個思路,下面是我的思路,可能誰有更好的,但注意這只是一個方法問題 :遍歷所有文件  讀取內(nèi)容  搜索關(guān)鍵字,如果匹配就放入一個數(shù)組  讀數(shù)組。在實(shí)現(xiàn)這些步驟之前,我假定你的網(wǎng)頁都是標(biāo)準(zhǔn)的,就是有標(biāo)題(<title></title>),也有(<bod *></body>),如果你是用dreamweaver或者frontpage設(shè)計(jì)的,那么除非你故意刪掉,它們都在存在的。下面就讓我們一步步來完成并在工程中改善這個搜索引擎。

一,設(shè)計(jì)搜索表單
在網(wǎng)站的根目錄下建個search.htm,內(nèi)容如下
<html>
<head>
<title>搜索表單</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="search.php">
  <table width="100%" cellspacing="0" cellpadding="0">
    <tr>
      <td width="36%">
        <div align="center">
          <input type="text" name="keyword">
        </div>
      </td>
      <td width="64%">
        <input type="submit" name="Submit" value="搜索">
      </td>
    </tr>
  </table>
</form>
</body>
</html>


二,搜索程序
再在根目錄下建個search.php 的文件,用來處理search.htm表單傳過來的數(shù)據(jù).內(nèi)容如下
<?php
//獲取搜索關(guān)鍵字
$keyword=trim($_POST[“keyword”]);
//檢查是否為空
if($keyword==””){
   echo”您要搜索的關(guān)鍵字不能為空”;
   exit;//結(jié)束程序
}
?>

這樣如果訪問者輸入的關(guān)鍵字為空時,可以做出提示。下面是遍歷所有文件。

我們可以用遞歸的方法遍歷所有的文件,可以用函數(shù)opendir,readdir,也可以用PHP Directory的類。我們現(xiàn)在用前者.
<?php
  //遍歷所有文件的函數(shù)
  function listFiles($dir){
   $handle=opendir($dir);
   while(false!==($file=readdir($handle))){
          if($file!="."&&$file!=".."){
          //如果是目錄就繼續(xù)搜索
          if(is_dir("$dir/$file")){
             listFiles("$dir/$file");
          }
              else{
            //在這里進(jìn)行處理
             }
      }
   }
}

?>

在紅字的地方我們可以對搜索到的文件進(jìn)行讀取,處理.下面就是讀取文件內(nèi)容,并檢查內(nèi)容中是否含有關(guān)鍵字$keyword,如果含有就把文件地址賦給一個數(shù)組。
<?php
//$dir是搜索的目錄,$keyword是搜索的關(guān)鍵字 ,$array是存放的數(shù)組
function listFiles($dir,$keyword,&$array){
   $handle=opendir($dir);
   while(false!==($file=readdir($handle))){
          if($file!="."&&$file!=".."){
          if(is_dir("$dir/$file")){
             listFiles("$dir/$file",$keyword,$array);
          }
              else{
            //讀取文件內(nèi)容
            $data=fread(fopen("$dir/$file","r"),filesize("$dir/$file"));
            //不搜索自身
            if($file!=”search.php”){
              //是否匹配
                          if(eregi("$keyword",$data)){
                  $array[]="$dir/$file";
                          }
            }
             }
      }
   }
}
//定義數(shù)組$array
$array=array();
//執(zhí)行函數(shù)
listFiles(".","php",$array);
//打印搜索結(jié)果
foreach($array as $value){
   echo "$value"."<br>n";
}
?>

現(xiàn)在把這個結(jié)果和開頭的一段程序結(jié)合起來,輸入一個關(guān)鍵字,然后就會發(fā)現(xiàn)你的網(wǎng)站中的相關(guān)結(jié)果都被搜索出來了。

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
主站蜘蛛池模板: 九九热播视频 | 日日夜夜爽 | 欧美成视频 | 免费黄在线 | 老司机日日摸夜夜摸精品影院 | 日本ccc三级| 日韩综合一区 | 欧美日本在线视频 | 亚洲视频在线观看免费视频 | 亚洲黄色a | 黄视频在线免费看 | 中文国产成人精品少久久 | 99视频免费在线观看 | 国产无遮挡男女羞羞影院在线播放 | 中文字幕亚洲精品日韩精品 | 成人小视频免费 | 免费一级毛片在线视频观看 | 激情综合亚洲欧美日韩 | 一级爱一级做a性视频 | 91视频麻豆视频 | 国产亚洲一区二区三区 | 久久久青草青青国产亚洲免观 | 波多野结衣中文一区二区免费 | 日本午夜免费福利视频 | 成人中文字幕一区二区三区 | 久久亚洲最大成人网4438 | 国产97色在线 | 日韩 | 免费一级在线观看 | 成人青草亚洲国产 | 国产一级特黄aaaa大片野外 | 亚洲国产欧洲 | 黄色大片免费网站 | 日韩欧美一区二区三区免费观看 | 免费视频中文字幕 | 精品xxxxxbbbb欧美中文 | 亚洲综合五月 | 午夜小视频在线播放 | 日本一区二区免费在线 | 欧美老妇人与禽交 | 小优视频在线观看网 | 国内精品久久久久久影院老狼 |