Beispiel #1
0
function getById($id)
{
    global $servername, $username, $password, $dbname;
    $valueFromCache = getFromCache("D{$id}");
    if ($valueFromCache) {
        return $valueFromCache;
    }
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    if (!$conn) {
        die("Connection failed: " . mysql_error());
    }
    $sql = "SELECT * FROM Product WHERE Id={$id}";
    $result = mysqli_query($conn, $sql);
    $products = array();
    if (mysqli_num_rows($result) > 0) {
        while ($row = mysqli_fetch_assoc($result)) {
            array_push($products, array('id' => $row['Id'], 'name' => $row['Name'], 'description' => $row['Description'], 'price' => $row['Price'], 'url' => $row['Url']));
        }
    } else {
        die("Id not found ");
    }
    mysqli_close($conn);
    $jsonResult = json_encode($products[0]);
    addToCache("D{$id}", $jsonResult);
    return $jsonResult;
}
function fetchJSONUsingCache($url)
{
    if (!($jsonString = fetchFromCache($url))) {
        // check cache
        ///echo "Fetching {$url}...<br />\n";
        if (strpos($url, "api.twitter.com")) {
            // twitter needs auth
            $jsonString = fetchTwitterJSON($url);
        } else {
            // regular old url
            $result = @file($url);
            if (is_array($result)) {
                $jsonString = implode("", $result);
            } else {
                return false;
                // couldn't fetch
            }
        }
        addToCache($url, $jsonString);
    }
    return json_decode($jsonString);
}
Beispiel #3
0
function wxis_exe($url)
{
    global $wxisServer;
    global $scielo;
    $useCache = $scielo->_def->getKeyValue("ENABLED_CACHE");
    $restrito = false;
    if ($_SERVER['SCRIPT_NAME'] == '/scielolog.php') {
        $chave = $chaveNula;
        $restrito = true;
    }
    //verificando se usuario esta logado para utilizar o cacke, se estiver logado cache nao pode ser utilizado
    //isso ocorre apenas para sci_arttext e sci_abstract
    if (isset($_COOKIE["userID"]) && $_COOKIE["userID"] != "-2") {
        if ($_REQUEST["script"] == 'sci_arttext' or $_REQUEST["script"] == 'sci_abstract' or $_REQUEST["script"] == 'sci_home' or $_REQUEST["script"] == '') {
            $restrito = true;
            $useCache == '0';
        }
    }
    if ($useCache == '1' && !$restrito) {
        require_once 'cache.php';
        if (strpos($_SERVER['REQUEST_URI'], 'deletefromcache')) {
            $key = sha1(substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], 'deletefromcache') - 1));
            echo 'apagando chave ' . $key . 'XML resultado :' . deleteFromCache($key . 'XML');
            echo '<hr>';
            echo 'apagando chave ' . $key . 'HTML resultado :' . deleteFromCache($key . 'HTML');
            die;
        }
        if (strpos($_SERVER['REQUEST_URI'], 'cachestats')) {
            echo getStatsFromCache($_GET['type'], $_GET['slabs'], 10);
            die;
        }
        $result = "";
        $chave = sha1($_SERVER['REQUEST_URI']) . 'XML';
        $chaveNula = '42099b4af021e53fd8fd4e056c2568d7c2e3ffa8XML';
        $result = false;
        //a chave pode ver como XML por exemplo na home, quanto não há parametros na
        //URL, para evitar problemas, não colocamos essa chave em cache posis não podemos
        //prever quando essa situação poderá ocorrer novamente
        if ($chave != $chaveNula) {
            //pesquisa no cache a chave
            $result = getFromCache($chave);
            if ($result == false) {
                //se não achou, transforma, coloca no cache e retorna
                $result = wxis_exe_($url);
                addToCache($chave, $result);
            }
        } else {
            //se chave == XML então retorna o XML, sem passar pelo cache
            $result = wxis_exe_($url);
        }
    } else {
        //se cache desligado então retorna a transformação, sem passar pelo cache
        $result = wxis_exe_($url);
    }
    return $result;
}
Beispiel #4
0
 function _Transform()
 {
     $useCache = $this->_def->getKeyValue("ENABLED_CACHE");
     $chave = sha1($_SERVER['REQUEST_URI']) . 'HTML';
     $chaveNula = '42099b4af021e53fd8fd4e056c2568d7c2e3ffa8HTML';
     $result = false;
     $restrito = false;
     if ($_SERVER['SCRIPT_NAME'] == '/scielolog.php') {
         $chave = $chaveNula;
         $restrito = true;
     }
     //verificando se usuario esta logado para utilizar o cacke, se estiver logado cache nao pode ser utilizado
     //isso ocorre apenas para sci_arttext e sci_abstract
     if (isset($_COOKIE["userID"]) && $_COOKIE["userID"] != "-2") {
         if ($_REQUEST["script"] == 'sci_arttext' or $_REQUEST["script"] == 'sci_abstract' or $_REQUEST["script"] == 'sci_home' or $_REQUEST["script"] == '') {
             $restrito = true;
             $useCache == '0';
         }
     }
     if ($useCache == '1' && !$restrito) {
         require_once 'cache.php';
         if ($chave != $chaveNula) {
             $result = getFromCache($chave);
             if ($result != false) {
                 return $result . "\n" . '<!--CACHE MSG: XHTML ENCONTRADO NO CACHE-->' . "\n <!--" . $chave . '-->';
             } else {
                 $result = $this->_TransformXML();
                 if (addToCache($chave, $result)) {
                     return $result . "\n" . '<!--CACHE MSG: XHTML COLOCADO NO CACHE-->' . "\n <!--" . $chave . '-->';
                 } else {
                     return $result . "\n" . '<!--CACHE MSG: ERRO - XHTML NAO FOI INSERIDO NO CACHE-->' . "\n <!--" . $chave . '-->';
                 }
             }
         } else {
             return $this->_TransformXML() . "\n" . '<!--CACHE MSG: CACHE NAO FOI UTILIZADO  -->';
         }
     } else {
         return $this->_TransformXML() . "\n" . '<!--CACHE MSG: CACHE NAO FOI UTILIZADO -->';
     }
 }
function db_store_link($seed, $link)
{
    global $SAME_DOMAIN_FETCH_LEVEL, $MAX_PENETRATION;
    //echo "db_store_link($seed,$link)\n";
    #check if in tblPages
    #if not, store
    #get unique id, tblPages.iPageID
    #get if there is link from seed[iPageID] to $resolved address
    #if so increment link count
    #if not, insert new record with link count = 0
    #echo "start......db_store_link(...)\n";
    #echo "link is: $link\n";
    $link = html_entity_decode($link);
    $cleanUrl = clean_url($link);
    $cleanUrl = $cleanUrl;
    $domain = get_domain_part($link, $SAME_DOMAIN_FETCH_LEVEL);
    $link = $link;
    $page_id = checkCache($cleanUrl);
    if ($page_id == null) {
        $strSQL = "SELECT iPageID FROM tblPages WHERE strCleanURL=?";
        $page_id = db_run_select($strSQL, array($cleanUrl), true);
        addToCache($cleanUrl, $page_id);
    }
    if ($page_id == NULL && $MAX_PENETRATION == 0) {
        //we are set only to crawl only pages in db
        return NULL;
    } else {
        if ($page_id == NULL) {
            $strSQL = "INSERT INTO tblPages SET fkQueryID=?,strURL=?,strCleanURL=?,iLevel=?,strDomain=?";
            db_run_query($strSQL, array($seed["fkQueryID"], $link, $cleanUrl, $seed["iLevel"] + 1, $domain));
            //$strSQL="SELECT LAST_INSERT_ID();";//TODO: ONLY MYSQL
            //"SELECT iPageID FROM tblPages WHERE strCleanURL='" . $cleanUrl . "'";
            $page_id = $GLOBALS["db"]->lastInsertId();
            //db_run_select($strSQL,true);
            addToCache($cleanUrl, $page_id);
        } else {
            //check current level and give shorter level if possible?
        }
    }
    /*$strSQL="SELECT iLinkID FROM tblLinks " .
    			"WHERE fkParentID=" . $seed["iPageID"] . " AND fkChildID=" . $page_id;
    	$link_id = db_run_select($strSQL,true);
    	if ($link_id==NULL) {
    		$strSQL="INSERT INTO tblLinks(fkParentID,fkChildID,fkQueryID,iNumberTimes) VALUES (" .
    			$seed["iPageID"] . "," . $page_id . "," . $seed["fkQueryID"] . ",1)";
    		db_run_query($strSQL);
    	} else {
    		//update
    		$strSQL="UPDATE tblLinks SET iNumberTimes=iNumberTimes+1 WHERE iLinkID=" . $link_id;
    		db_run_query($strSQL);	
    	}*/
    //print "returnVal(" . 	$seed["iPageID"] . "," . $page_id . "," . $seed["fkQueryID"] . ",1)\n";
    return "(" . $seed["iPageID"] . "," . $page_id . "," . $seed["fkQueryID"] . ",1)";
}