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