探討PHP實現(xiàn)站內(nèi)搜索引擎的具體方法
作者:佚名 
  站內(nèi)搜索對于一個網(wǎng)站來說是基本的網(wǎng)站功能。我們可以通過PHP來實現(xiàn)這一功能。希望新手們能夠通過本文介紹的PHP實現(xiàn)站內(nèi)搜索引擎的方法學到新的知識。
 我們在實際的編碼中,可以利用PHP提供的應用程序來實現(xiàn)我們的站內(nèi)搜索引擎的搭建。下面我們將會把具體的實現(xiàn)代碼貼上。我們可以將PHP實現(xiàn)站內(nèi)搜索引擎做的稍微復雜一些:使用一個頁面既輸出一個表單供用戶輸入搜索字串又輸出查詢結果。
#t#以下就是PHP實現(xiàn)站內(nèi)搜索引擎的具體代碼:
- <?
 - include("include/common.inc");
 - $title = "Search";
 - include("include/header.inc");
 - ?>
 - <P>
 - <FORM ACTION="<? echo "$PHP_SELF"; ?>" METHOD="POST">
 - <INPUT TYPE="text" NAME="searchstr" value="<? echo "$searchstr"; ?>"
 - SIZE="20" MAXLENGTH="30">
 - <INPUT TYPE="submit" VALUE="Search!">
 - </FORM>
 - </P>
 - <?
 - if ( ! empty($searchstr) )
 - {
 - // empty()用來檢查查詢字串是否為空
 - // 如果不為空,調(diào)用grep查詢
 - echo "<HR>\n";
 - // 調(diào)用grep對所有文件進行大小寫非敏感模式的查詢
 - $cmdstr = "grep -i $searchstr *";
 - $fp = popen( $cmdstr, "r" ); // 執(zhí)行命令并輸出管道
 - $myresult = array(); // 存儲查詢結果
 - while( $buffer = fgetss ($fp, 4096))
 - {
 - // grep返回這樣格式: 文件名:匹配字串出現(xiàn)行數(shù)
 - // 因此我們利用函數(shù)split()分離處理數(shù)據(jù)
 - list($fname, $fline) = split(":",$buffer, 2);
 - // 我們只輸出***次匹配的結果
 - if ( !defined($myresult[$fname]))
 - $myresult[$fname] = $fline;
 - }
 - // 現(xiàn)在我們將結果存儲在數(shù)組中,下面就可以處理并輸出了
 - if ( count($myresult) )
 - {
 - echo "<OL>\n";
 - while(list($fname,$fline) = each($myresult))
 - echo "<LI>
 - <A HREF=\"$fname\">$fname</A> : $fline </LI>\n";
 - echo "</OL>\n";
 - }
 - else
 - {
 - // 如果沒有查詢結果
 - echo "Sorry. Search on <B>$searchstr</B>
 - returned no results.<BR>\n";
 - }
 - pclose($fp);
 - }
 - ?>
 - <?
 - include("include/footer.inc");
 - ?>
 
怎么樣,通過對上面這段代碼的理解,新手們是否已經(jīng)掌握了PHP實現(xiàn)站內(nèi)搜索引擎的具體方法呢?
責任編輯:曹凱 
                    來源:
                    百度博客
 














 
 
 



 
 
 
 