我用php语言设计了一个网站。我的网站上有一个搜索框。现在我想让它可用意味着如果用户想要搜索任何东西,他只需在那里输入并获得所需的结果。这是必要的使用PHP或它可以很容易地发生HTML标签???
答案 0 :(得分:7)
网站上的大多数简单搜索都不会搜索网站的结构,他们使用MySQL中的LIKE语法在相关数据库表的文本字段中查找字词。因此,如果您有博客,则可以让用户以这种方式在博客正文中进行搜索,并返回包含该术语的条目列表。通过一些巧妙的计算,您甚至可以按照该术语出现的次数来命令该列表。
在这些情况下,当用户在搜索框中键入“taco”并按下Enter键时,用户将进入一个PHP页面,该页面在数据库上运行LIKE查询,并向用户显示包含单词Taco的博客帖子它们。
严格来说,上述内容不是网站搜索。如果您的网站包含大量平面HTML页面以及其他以某种方式不在数据库内的页面,则需要对网站进行爬网,并通过搜索该数据来公开数据。 Google can set you up with this.您还可以使用各种第三方工具。但是,学习如何自己构建Web爬虫可能是一个很好的练习。
以下是生成URL数据库的Web爬网程序的基本步骤。这个兔子洞永远延伸,所以这只是你需要做的最小的工作搜索。
您的数据库将只有一个表。该表需要以下字段:
爬虫本身需要连续运行或使用cron调度程序每隔几分钟运行一次。它需要执行这些最基本的操作:
<a href="http://www.mysite.com/taco/">Tacos!</a>
并创建所有这些网址的数组。显然,这只会创建所有网页的列表以及它们上面的文字,但这足以让您使用基本搜索中的相同技术创建搜索网站。
您可以通过几种简单的方式改进上述抓取工具。
答案 1 :(得分:2)
最简单的是添加Google(或其他搜索引擎)网站搜索。您不需要PHP,但需要一些HTML。
虽然Google网站搜索是最简单的解决方案,但您也可以使用自己的PHP搜索解决方案或使用第三方脚本,例如此
3rd party search spider script(我自己也没有使用它,也没有附属,它是你可能在互联网上找到的一种脚本的例子而不是推荐)
答案 2 :(得分:0)
您无法使用HTML标记执行此类功能。 PHP不是技术上必要(有替代品),但在你的情况下,可能的答案是:是的,你需要使用PHP。
答案 3 :(得分:0)
最好的是你应该使用谷歌搜索 实施谷歌搜索并不难。您必须提供有关您网站的信息,并且将生成您必须在html页面上放置的脚本
答案 4 :(得分:0)
这是搜索栏的php代码
家 html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn, em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,input, textarea,fieldset,legend,table,caption,tbody,tfoot,thead,tr,th,td {margin:0;填充:0;边界:0;概要:0; }
$keyword=trim($_POST["keyword"]);
//check if the keyword is empty
if($keyword==""){
echo"no keywords";
exit;
}
//With above, you can give hints to your users when they forget to enter a keyword. Now let's go through all the files or articles in your website.
function listFiles($dir){
$handle=opendir($dir);
while(false!==($file=readdir($handle))){
if($file!="."&&$file!=".."){
//if it is a directory, then continue
if(is_dir("$dir/$file")){
listFiles("$dir/$file");
}
else{
//process the searching here with the following PHP script
}
}
}
}
//The following scripts read, process files and check whether the files contain $keyword. If $keyword is found in the file, the file address will be saved in an array-type variable.
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{
//read file
$data=fread(fopen("$dir/$file","r"),filesize("$dir/$file"));
//avoid search search.php itself
if($file!="search.php"){
//contain keyword?
if(eregi("$keyword",$data)){
if(eregi("(.+)",$data,$m)){
$title=$m["1"];
}
else{
$title="no title";
}
$array[]="$dir/$file $title";
}
}
}
}
}
}
//define array $array
$array=array();
//execute function
listFiles(".","php",$array);
//echo/print search results
foreach($array as $value){
list($filedir,$title)=split("[ ]",$value,"2");
echo "$value"."
\n";
}
?>
hello
</body>
</html>