探討PHP實現(xiàn)站內搜索引擎的具體方法
作者:佚名
站內搜索對于一個網站來說是基本的網站功能。我們可以通過PHP來實現(xiàn)這一功能。希望新手們能夠通過本文介紹的PHP實現(xiàn)站內搜索引擎的方法學到新的知識。
我們在實際的編碼中,可以利用PHP提供的應用程序來實現(xiàn)我們的站內搜索引擎的搭建。下面我們將會把具體的實現(xiàn)代碼貼上。我們可以將PHP實現(xiàn)站內搜索引擎做的稍微復雜一些:使用一個頁面既輸出一個表單供用戶輸入搜索字串又輸出查詢結果。
#t#以下就是PHP實現(xiàn)站內搜索引擎的具體代碼:
- <?
- 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()用來檢查查詢字串是否為空
- // 如果不為空,調用grep查詢
- echo "<HR>\n";
- // 調用grep對所有文件進行大小寫非敏感模式的查詢
- $cmdstr = "grep -i $searchstr *";
- $fp = popen( $cmdstr, "r" ); // 執(zhí)行命令并輸出管道
- $myresult = array(); // 存儲查詢結果
- while( $buffer = fgetss ($fp, 4096))
- {
- // grep返回這樣格式: 文件名:匹配字串出現(xiàn)行數
- // 因此我們利用函數split()分離處理數據
- list($fname, $fline) = split(":",$buffer, 2);
- // 我們只輸出***次匹配的結果
- if ( !defined($myresult[$fname]))
- $myresult[$fname] = $fline;
- }
- // 現(xiàn)在我們將結果存儲在數組中,下面就可以處理并輸出了
- 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");
- ?>
怎么樣,通過對上面這段代碼的理解,新手們是否已經掌握了PHP實現(xiàn)站內搜索引擎的具體方法呢?
責任編輯:曹凱
來源:
百度博客