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); }
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; }
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)"; }