ホームページ > php教程 > php手册 > 古い記事を掘り出します: PHP テキスト サイトの全文検索

古い記事を掘り出します: PHP テキスト サイトの全文検索

WBOY
リリース: 2016-06-21 09:11:56
オリジナル
1135 人が閲覧しました

全文検索

/*************************************************** *
オリジナルの作者: uchinaboy
修正者: lingshidao
特徴: mysql のサポートは必要ありません。パスを設定する必要はありません。どのディレクトリに配置されていても、すべてのテキスト タイプのファイルが検索されます。ファイル関連のコンテンツが検索され、キーワードが自動的に強調表示されます。
変更内容: 自動ページングとスタイル設定ファイルを追加しました。
検索ボックスのコード (search.php と同じディレクトリに配置されている場合、変更する必要はありません):

********************************/
require ("template.php");
echo "

";
echo "检索结果";
echo "< /p>


";
if (function_exists("set_time_limit") && !get_cfg_var('safe_mode')){
set_time_limit(600);}
function get_msg($path) {
global $key, $i ;  
$handle = opendir($path);  
while ($filename = readdir($handle)) {
//echo $path."/".$filename."
";  
$newpath = $path."/".$ファイル名;  
if (is_file($newpath)) {
$fp = fopen($newpath, "r");  
$msg = fread($fp, ファイルサイズ($newpath));  
fclose($fp);  
match_show($key, $msg, $newpath, $filename);  
}
if (is_dir($path."/".$filename) && ($filename != ".") && ($filename != "..")) {
//echo "
< ;BR>
".$newpath."


";  
get_msg($path."/".$ファイル名);  
}
}
closedir($handle);  
$i を返します。  
}

function match_show($key, $msg, $newpath, $filename) {
global $i;
$key = チョップ($key);
if($key) { $check_type = preg_match("/.html?$/", $filename);
if($check_type) {$title = getHtmlTitle($msg);}
$msg = preg_replace("//is", "", $msg);
$msg = preg_replace("/<[^>]+>/", "", $msg);
$value = preg_match("/.*$key.*/i", $msg, $res);
if($value) {


if($title) {$m = $title;} else {$m = $filename;}
$i++;
$link = $newpath;
echo "$i.◆$m

";
}
}else {
echo "请输入关键词";
終了します。
}
}

function getHtmlTitle($msg) {

/* の場所を見つけます。 htmlファイル内にあります。 */<br> $lBound = strpos($msg, '<title>') + 7; //7 は <title> の長さです。<br><br> if ($lBound return;<br><br> /* の場所を見つけます。 htmlファイル内にあります。 */
$uBound = strpos($msg, '', $lBound);

if ($uBound < $lBound)
return;

/* $title から HTML タグと PHP タグを削除します以下の狂気とともに。 */
$title = ereg_replace("[tnr]", '', substr($msg, $lBound, $uBound - $lBound));
$title =rim(strip_tags($title));

if ( strlen($title) < 1) //空白のタイトルは無価値です。
return;

return $title;
}

$i = get_msg(".");
echo "

";
echo " $i メッセージが検索されました";
?>



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート