Search
Recommended Sites
Related Links






Valid XHTML 1.0 Transitional

Valid CSS!
   

Informative Articles

4 Tips to a More Visitor-Friendly Website
I remember my very first website. I thought it was the most amazing thing ever created; it had Flash, Javascript, an animated graphic I designed all on my own, plus various bits of 'artwork' placed at strategic locations throughout the site. Plus it...

Free Automatic Content - Can the Search Engines See Yours?
Ever heard any of this advice? * Content Is King - so Search Engines and Visitors will Love your Site * Make Your Site Sticky - so Visitors will Return * Add New Content Regularly - so Search Engines will Rank your Site Higher Are they...

How to Build a Search Engine-Friendly Web Site: Understanding Critical Touch Points Equals Unrivaled Success
As a seasoned search engine marketing professional, I've optimized hundreds of W eb sites over the years. A vast majority of the time, I'm brought into the W eb development process late in the game. Rarely am I brought in at the ideal time:...

How To Retain More Of Your Visitors
Did you know that most of your visitors probably never go beyond your homepage? And a lot of them leave within ten seconds of hitting your homepage, NEVER to return again? These are wasted visitors, and you must do everything possible to reduce...

Shopping Carts For The Weary
To choose the means whereby we put our products on the world-wide-web, we proceed by a process of elimination. The chief criteria for judging a shopping cart is the number of credit card processors and shipping services it supports, and the...

 
Make a Search Engine For Your Website With PHP


This hands on PHP Programming article provides the knowledge necessary to design and develop a search engine for your website using PHP version 4.0 and above. Making a search engine for your website with PHP is really easy and provides substantial functionality required by most of the small to medium websites. This article introduces every steps of the development, including both design and PHP programming. Basic computer skills and knowledge of HTML fundamentals are required. Ok, let's begin now.
Step 1: Design Search Box
Under your website root, make a file called search.htm or anything you like and type in the following code:
<html>
<head>
<title>Web Search</title>
<meta http-equiv="Content-Type" content="text/html">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="search.php">
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="36%">
<div align="center">
<input type="text" name="keyword">
</div>
</td>
<td width="64%">
<input type="submit" name="Submit" value="Search">
</td>
</tr>
</table>
</form>
</body>
</html>
Step 2: Write search.php file. It is the core of your website search engine.
Under your website root, create a file called search.php or anything you like.
<?php
//get keywords
$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.
<?php
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.
<?php
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)){
$array[]="$dir/$file";
}
}
}
}
}
}
//define array $array
$array=array();
//execute function
listFiles(".","php",$array);
//echo/print search results
foreach($array as $value){
echo "$value"."<br>\n";
}
?>
Now, combine the programs listed above, you will find all the related results in your websites will be found and listed. A further optimization of the search engine can be taken by adding the following,
1,list the title of all searching results
REPLACE THE FOLLOWING
if(eregi("$keyword",$data)){
$array[]="$dir/$file";
}
WITH
if(eregi("$keyword",$data)){
if(eregi("<title>(.+)
</title>",$data,$m)){
$title=$m["1"];
}
else{
$title="no title";
}
$array[]="$dir/$file $title";
}
2,Add links to searching results
CHANGE THE FOLLOWING
foreach($array as $value){
echo "$value"."<br>\n";
}
TO
foreach($array as $value){
list($filedir,$title)=split("[ ]",$value,"2");
echo "<a href=$filedir>$value</a>"."<br>\n";
}
3 Set time limit for PHP execution
ADD THE FOLLOWING AT THE BEGINNING OF PHP FILES
set_time_limit("600");
The above unit is second&#65292;so ten minutes is the litmit.
Now, combine all the above programs and get the complete search.php file as following,
<?php
set_time_limit("600");
$keyword=trim($_POST["keyword"]);
if($keyword==""){
echo"Please enter your keyword";
exit;
}
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{
$data=fread(fopen("$dir/$file","r"),filesize("$dir/$file"));
if(eregi("<body([^>]+)>(.+)</body>",$data,$b)){
$body=strip_tags($b["2"]);
}
else{
$body=strip_tags($data);
}
if($file!="search.php"){
if(eregi("$keyword",$body)){
if(eregi("<title>(.+)</title>",$data,$m)){
$title=$m["1"];
}
else{
$title="no title";
}
$array[]="$dir/$file $title";
}
}
}
}
}
}
$array=array();
listFiles(".","$keyword",$array);
foreach($array as $value){
list($filedir,$title)=split("[ ]",$value,"2");
echo "<a href=$filedir target=_blank>$title </a>"."<br>\n";
}
?>
Now, you have made a search engine for your website, enjoy it!

About The Author

Rory Canyon is the founder of ScriptMenu.com, a free web directory for PHP, ASP, ASP.NET, PERL, XML, Java, JavaScript, Flash, CFML, Python and other web programming resources.
For more information, visit http://www.scriptmenu.com

Sign up for PayPal and start accepting credit card payments instantly.