<?
/*! \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>
|