<?  
 
  /*! \file example2.php 
      \brief Retrieve # of each keyword from search results on google page 
      \author Voznyak Nazar, 7 Jul 2005 
      \email narko@mail.lviv.ua 
   */ 
 
session_start();  
 
$NumberOfRecordsOnPage = 100; 
 
if ($_POST["operation"] == "" && $_GET["operation"] == "" && $_GET["record"] == "") { 
  unset($_SESSION["Results"]); 
?> 
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\"> 
<html> 
    <FRAMESET ROWS="36%,*"> 
    <FRAME NAME="Search" ID="Search" SRC="example2.php?operation=showsearch"> 
    <FRAME NAME="Results" ID="Results" SRC="example2.php?operation=showindex"> 
  </FRAMESET> 
</html> 
<? 
exit; 
} 
?><html> 
<head> 
  <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> 
  <title>Keywords</title> 
</head> 
<body> 
<? 
   
if ($_GET["operation"] == "showsearch") { 
 
?> 
<form action="" method="POST"> 
<input type=hidden name=operation value="search"> 
<table width='70%' border=0> 
<tr> 
<td valign='top'><b>Keywords</b></td> 
 
<td><textarea name='Keyword' cols=65 rows=10><? echo $_POST["Keyword"] ?></textarea></td> 
<td valign='top'><input type=submit value="Search"> 
</tr></table> 
 
</form> 
<? 
} 
 
if ($_POST["operation"] == "search") { 
  $ResultKeywords = array(); 
  $Errors = array(); 
   
  // initializing and preparations 
  $Keyword = trim($_POST["Keyword"]); 
 
  if (strstr($Keyword, "\r\n"))  
    $l_sKeywords = explode("\r\n", $Keyword); 
  else 
  if (strstr($Keyword, ";"))  
    $l_sKeywords = explode(";", $Keyword); 
  else 
  if (strstr($Keyword, "\t"))  
    $l_sKeywords = explode("\t", $Keyword); 
  else 
  if (strstr($Keyword, ","))  
    $l_sKeywords = explode(",", $Keyword); 
 
  $l_aResult[] = array('name' => 'TOTAL', 'n1' => 0, 'total' => 0); 
  $TotalN1 = 0; 
  $Total = 0; 
 
  foreach ($l_sKeywords as $Keyword) { 
   if ($Keyword != "") { 
 
    // begin of retrieving all the similar keywords 
    $Keyword = ucwords($Keyword); 
 
    // try to read HTML document succefully for 10 times 
    for ($i=0; $i<20; $i++) { 
      $PageContent = file_get_contents("http://www.google.com.ua/search?hl=uk&q=" . (str_replace(" ", "+", $Keyword))); 
      if ($PageContent) break; 
    } 
 
    if ($PageContent === false)  
      $Errors[] = $Keyword; 
 
    // add results for current keyword to common list 
    $l_iTotal = substr_count($PageContent, $Keyword); 
    $l_aResult[] = array('name' => $Keyword, 'total' => $l_iTotal); 
    $Total += $l_iTotal; 
   } 
  } 
 
  $l_aResult[0]['total'] = $Total; 
 
  $_SESSION["Results"] = $l_aResult; 
 
  echo("<script>window.parent.Results.location.href=\"example2.php?operation=showindex\";</script>"); 
  exit; 
} 
 
if ($_GET["operation"] == "showindex") { 
  echo("<p align=center>"); 
 
  // no matches 
  if (sizeof($_SESSION["Results"]) == 0) { 
    echo ("There is no records found"); 
  } 
 
  // all retrieved matches fit page 
  elseif (sizeof($_SESSION["Results"]) <= $NumberOfRecordsOnPage) 
    $ShowRecords = true; 
 
  else { 
    // prepare pagination 
    $Index = 0; 
    if (sizeof($_SESSION["Results"]) > 0) { 
      while ($Index < sizeof($_SESSION["Results"])) { 
        $Index++; 
        echo("<a href=\"?record=" . ($Index - 1) ."\">" . $Index . "-"); 
        $Index += $NumberOfRecordsOnPage - 1; 
        if ($Index > sizeof($_SESSION["Results"])) 
          $Index = sizeof($_SESSION["Results"]); 
        echo($Index . "</a><br>"); 
      } 
    } 
  } 
   
  if (sizeof($_SESSION["Errors"]) > 0) { 
    echo("<br><br><b>Errors:</b><br>"); 
    foreach ($Errors as $value) 
      echo($value . "<br>"); 
  } 
  echo("</p>"); 
} 
 
// shows up resulting table 
if ($_GET["record"] != "" || ($ShowRecords)) { 
?> 
 
<TABLE WIDTH="100%" BORDER="1"> 
<TH><a href='javascript: window.parent.Results.location.href="example2.php?operation=showindex&sort=name"'>Name</a></TH> 
<TH><a href='javascript: window.parent.Results.location.href="example2.php?operation=showindex&sort=total"'>Words #</a></TH> 
 
<? 
  if ($_GET["record"] == "") $_GET["record"] = 0; 
 
  require_once('aasort.class.php'); 
 
  $l_aResults = $_SESSION["Results"]; 
  $l_aTotal = array_shift($l_aResults); 
 
  $aasort = &new AASort($l_aResults); 
  $l_aResults = $aasort->sort(($_GET['sort']) ? ($_GET['sort']) : 'name', SORT_ASC); 
 
  array_unshift($l_aResults, $l_aTotal); 
 
  foreach ($l_aResults as $l_aRes) { 
    print "<tr>". 
          "<td>".$l_aRes['name']."</td>". 
          "<td>".number_format($l_aRes['total'], 0, '.', ',')."</td>". 
          "</tr>"; 
  } 
} 
 
?> 
 
</TABLE> 
 
</body> 
</html>
 
 |