多数大学生出来选择的工作和专业无关
首页 > 新闻动态 > 行业动态

探讨PHP实现站内搜索引擎的具体方法

时间:2018-03-21 18:12:19 [来源]:郑州PHP培训学校

   探讨PHP实现站内搜索引擎的具体方法

  站内搜索对于一个网站来说是基本的网站功能。我们可以通过PHP来实现这一功能。希望新手们能够通过本文介绍的PHP实现站内搜索引擎的方法学到新的知识。
  我们在实际的编码中,可以利用PHP提供的应用程序来实现我们的站内搜索引擎的搭建。下面我们将会把具体的实现代码贴上。我们可以将PHP实现站内搜索引擎做的稍微复杂一些:使用一个页面既输出一个表单供用户输入搜索字串又输出查询结果。
  以下就是PHP实现站内搜索引擎的具体代码:
  <?
  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" ); // 执行命令并输出管道$myresult = array(); // 存储查询结果
  while( $buffer = fgetss ($fp, 4096))
  {
  // grep返回这样格式: 文件名:匹配字串出现行数// 因此我们利用函数split()分离处理数据
  list($fname, $fline) = split(":",$buffer, 2);// 我们只输出第一次匹配的结果
  if ( !defined($myresult[$fname]))
  $myresult[$fname] = $fline;
  }
  // 现在我们将结果存储在数组中,下面就可以处理并输出了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实现站内搜索引擎的具体方法呢?
 
  解析PHP中反馈表单的具体实现办法
  PHP中反馈表单的实现其实是比较简单的,我们可以通过这种方法将用户的填写的一些信息进行处理反馈。希望新手们可以通过本文获得具体的知识。
  一个网站经常会出现用户注册的填写表单之类的功能。我们可以通过PHP来实现表单的获取和反馈。下面我们就来具体介绍一下PHP中反馈表单的具体实现方式。
  PHP中获取表单数据是很简单的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样使用了。
  <FORM name="myform" ACTION="process_form.php3" METHOD="POST">
  <INPUT TYPE="TEXT" NAME="mytext" VALUE="Some Value">
  </FORM>
  在process_form.php3中,变量$mytext就被赋予了输入的值--非常简单!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。
  根据这个PHP中反馈表单的方法,我们可以生成一个简单的包含三个元素的表单:姓名、e-mail地址和留言。当浏览者发送表单后,处理该表单的PHP页面(sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail给你。
  表单:form.php3
  <?
  include("include/common.inc");
  $title = "Feedback";
  include("include/header.inc");
  ?>
  <P>
  <FORM ACTION="sendfdbk.php3" METHOD="POST">
  <INPUT TYPE="text" NAME="name" value="Your name" SIZE="20" MAXLENGTH="30">
  <INPUT TYPE="text" MAXLENGTH="40" WIDTH="20" value="Your Email" NAME="email">
  <BR>
  <TEXTAREA ROWS="7" COLS="40" NAME="comment">
  Your feedback on my home page.
  </TEXTAREA>
  <BR>
  <INPUT TYPE="submit" VALUE="Send Feedback!">
  </FORM>
  </P>
  <?
  include("include/footer.inc");
  ?>
  PHP中反馈表单之处理表单:sendfdbk.php3
  <?
  include("include/common.inc");
  $title = "Feedback";
  include("include/header.inc");
  if ( $name == "" )
  {
  // 现在我很讨厌匿名的留言!
  echo "Duh ? How come you are anonymous?";}
  elseif ($name == "Your name")
  {
  // 这个浏览者真是不想透露姓名啊!
  echo "Hello ? <B>Your name</B> is supposed to be replaced withyour actual name!</B>";
  }
  else
  {
  // 输出一段礼貌的感谢语
  echo "
  Hello, $name.
  <BR>
  Thank you for your feedback. It is greatly appreciated.
  <BR>
  Thanking you
  <BR>
  $MyName <BR>
  $MyEmailLink
  ";
  // 最后mail出去
  mail($MyEmail, "Feedback.","
  Name : $name
  E-mail : $email
  Comment : $comment
  ");
  }
  include("include/footer.inc");
  ?>
  上面这段代码就是PHP中反馈表单的全部实现方式。
 
  PHP添加计数器的实例讲解
  我们下面将要为大家介绍一种简单的PHP添加计数器的方式,希望对初学PHP语言的新手们有所帮助,积累我们在实际编码中的经验。
  我们在建立网站的时候,有些站长会有在自己首页上添加计数器的需求,我们今天就向大家具体讲讲PHP添加计数器的实现方法。这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。
  counter.inc包含以下代码:
  <?
  /*
  || 一个简单的计数器
  */
  function get_hitcount($counter_file)
  {
  /* 将计数器归零
  这样如果计数器还未被使用,初始值将是1
  你当然也可以把初始值设成20000来骗人咯
  */
  $count=0;
  // 如果存放计数器文件已经存在,读取其中的内容if ( file_exists($counter_file) )
  {
  $fp=fopen($counter_file,"r");
  // 我们只取了前20位,希望你的站点不要太受欢迎啊$count=0+fgets($fp,20);
  // 由于函数fgets()返回字符串,我们可以通过加0的方法将其自动转换为整数fclose($fp);
  // 对文件操作完毕
  }
  // 增加一次计数值
  $count++;
  // 将新的计数值写入文件
  $fp=fopen($counter_file,"w");
  fputs($fp,$count);
  fclose($fp);
  # 返回计数值
  return ($count);
  }
  ?>
  PHP添加计数器之后的一步就是我们需要更改front.php3文件以显示这个计数器:
  <?
  include("include/counter.inc");
  // 我把计数值放在文件counter.txt中,读出并输出printf ("<CENTER><B>%06d</B></CENTER> <BR> \n",get_hitcount("counter.txt"));
  include("include/footer.inc");
  ?>
  以上全部代码就是PHP添加计数器的实现方式,希望对有需要的朋友有所帮助。
 

上一篇:PHP7.2中一些弃用的功能

下一篇:探讨如何实现PHP删除数组元素