-
Rueben Ramirez authoredRueben Ramirez authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
index-wp-redis.php 5.36 KiB
<?php
// Start the timer so we can track the page load time
$start = microtime();
function getMicroTime($time) {
list($usec, $sec) = explode(" ", $time);
return ((float) $usec + (float) $sec);
}
function refreshHasSecret($secret) {
return isset($_GET['refresh']) && $_GET['refresh'] == $secret;
}
function requestHasSecret($secret) {
return strpos($_SERVER['REQUEST_URI'],"refresh=${secret}")!==false;
}
function isRemotePageLoad($currentUrl, $websiteIp) {
return (isset($_SERVER['HTTP_REFERER'])
&& $_SERVER['HTTP_REFERER']== $currentUrl
&& $_SERVER['REQUEST_URI'] != '/'
&& $_SERVER['REMOTE_ADDR'] != $websiteIp);
}
function handleCDNRemoteAddressing() {
// so we don't confuse the cloudflare server
if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
}
}
function getCleanUrl($secret) {
$replaceKeys = array("?refresh=${secret}","&refresh=${secret}");
$url = "http://${_SERVER['HTTP_HOST']}${_SERVER['REQUEST_URI']}";
$current_url = str_replace($replaceKeys, '', $url);
return $current_url;
}
$debug = true;
$cache = true;
$websiteIp = '127.0.0.1';
$reddis_server = '127.0.0.1';
$secret_string = 'changeme';
$current_url = getCleanUrl($secret_string);
$redis_key = md5($current_url);
handleCDNRemoteAddressing();
if(!defined('WP_USE_THEMES')) {
define('WP_USE_THEMES', true);
}
try {
// check if PECL Extension is available
if (class_exists('Redis')) {
if ($debug) {
echo "<!-- Redis PECL module found -->\n";
}
$redis = new Redis();
// Sockets can be used as well. Documentation @ https://github.com/nicolasff/phpredis/#connection
$redis->connect($reddis_server);
} else { // Fallback to predis5.2.php
if ($debug) {
echo "<!-- using predis as a backup -->\n";
}
include_once("wp-content/plugins/wp-redis-cache/predis5.2.php"); //we need this to use Redis inside of PHP