<?php
## san2(at)linuxchannel.net
##
## 2003.04.27 bug fixed
## 2002.05.09 new build
##
## using the 'UW CSE search the CSE web'
## UW CSE : Uinversity of Washington Computer Science & Engineering
## google like search engin !!!
## more information & get source : http://linksearch.sourceforge.net

## get search form
##
## argument : array
##
function get_csesearchform($csevars)
{
  
//$formsize = sform(30,1);
  
$formsize 30;
  
$kwd htmlspecialchars(urldecode($csevars['kwd']));

  return <<< _EOF_
  <FORM METHOD=get ACTION=$csevars[action]>
  <INPUT TYPE=text NAME=kwd SIZE=
$formsize VALUE="$kwd">
  <INPUT TYPE=submit VALUE=' ˻ '>
  </FORM>
_EOF_;
}

## arguments :
##   $csevars             array
##   $csevars[sitesearch] string, replace your DOMAIN or HTTP_HOST
##   $csevars[action]     string, your REQUEST_URI or URL action(ex: /search.php or /search/)
##   $csevars[kwd]        string, keyword from GET form
##
function get_csegooglelist($csevars)
{
  global 
$_GET// for PHP/4.0.x

  
$skip = ($start $_GET['start']) ? "&start=$start&sa=N" '';
  
$kwd urlencode($csevars['kwd']);
  
$sitesearch $csevars['sitesearch'];
  
$fpath "/u/UWCSE?q=$kwd&hl=ko&domains=$sitesearch&sitesearch=$sitesearch";

  if(
$fp = @fsockopen('www.google.com'80, &$errno, &$errstr10))
  {
    
fputs($fp"GET $fpath$skip HTTP/1.0\r\n\r\n");
    while(!
feof($fp)) $list .= fgets($fp,1024);
    
fclose($fp);

    
## remove html head and etc
    ##
    
$list eregi_replace('^.+</script>','',$list);
    
$list eregi_replace('^.+</center><table',"\n\n<table",$list);    

    
## remove html footer and etc
    ##
    
$list eregi_replace("<center>.+$","\n\n",$list);
    
$list ereg_replace("<!--- HTML Footer START --->.+$",'',$list); // do not remove this line
    
$list eregi_replace('.+</HTML>.+','',$list); // do not remove this line

    ## string replace to my site format
    ##
    
$from = array(
        
'/<a class=fl([^>]+)>([^>]+)>/i',
        
'/cs\.washington\.edu/i',
        
'/td bgcolor=#3366cc/i',
        
'/&lr=/i',
        
'/san2@/i',
        
';/u/UWCSE\?q=[^>]+&(start|filter)=;i',
        );

    
$to = array(
        
'',
        
$sitesearch,
        
'td bgcolor=#8899CC',
        
'',
        
'san2(at)',
        
$csevars['action']."?kwd=$kwd&\\1="
        
);

    
$list preg_replace($from,$to,$list);
  }

  return 
$list;
}

## print searched lists
##
## argument : void
##
## return   : long string
##
function print_searched()
{
  global 
$_GET$_SERVER// for PHP/4.0.x

  
$csevars['sitesearch'] = str_replace('www.','',strtolower($_SERVER['HTTP_HOST']));
  
$csevars['action'] = preg_replace('/\?.*/i','',$_SERVER['REQUEST_URI']);
  
$csevars['kwd'] = stripslashes(trim($_GET['kwd']));

  
$searchform get_csesearchform($csevars);

  echo 
"\n<B>Search site target '$csevars[sitesearch]'(in UW CSE)</B>\n$searchform\n\n";

  if(
$_GET['kwd'])
  {
    echo 
'<HR>'."\n";
    echo 
get_csegooglelist($csevars);
    echo 
'<HR>'."\n";
    echo 
"\n<CENTER>\n$searchform</CENTER>\n\n";
  }
}

print_searched();

?>