back link

Rate this post

 



$options = (array) get_option(‘widget_automaticbacklinks’);

foreach ( $defaults as $key => $value )
if ( !isset($options[$key]) )
$options[$key] = $defaults[$key];

?>


  • $abCacheFolderName = “automaticbacklinks_cache”;
    $abAccountCode = “6cae0e9624da6ae16f4116e61438edef”;
    $abCacheHours = “24”;/**
    * Do not change anything below
    * Do not change anything below
    * Do not change anything below
    * Do not change anything below
    * Do not change anything below
    */

    $v = “2.4”;
    $s = “wp”;
    $abMsg = array();
    if (trim($_GET[‘ab_debug’]) == ‘6cae0e9624da6ae16f4116e61438edef’) {
    $debug = true;
    echo “

  • Version: “.$v;
    echo “
  • System: “.$s;
    unset($_GET[‘ab_debug’]);
    }

    //Show phpinfo if debug is on and phpinfo is requested
    if ($debug && $_GET[‘phpinfo’]) {

    ?>

    $cacheFolder = abGetCacheFolder($abCacheFolderName, $debug);
    if ($cacheFolder) {

    //Current URL
    $page = abGetPageUrl($debug);
    if (abIsValidUrl($page, $debug)) {

    $cacheFileName = $cacheFolder.”/”.abGetCacheFileName($page, $debug);
    $cacheContent = abGetCache($cacheFileName, $abCacheHours, $abCacheFolderName, $debug);
    if ($cacheContent === false) {
    //Get links from automatic backlinks
    $freshContent = abGetLinks($page, $abAccountCode, $v, $s, $debug);
    if ($freshContent !== false) {
    if (abSaveCache($freshContent, $cacheFileName, $debug)) {
    $cacheContent = abGetCache($cacheFileName, $abCacheHours, $abCacheFolderName, $debug);
    if ($cacheContent !== false) {
    echo $cacheContent;
    } else {
    $abMsg[] = ‘Error: unable to read from the cache’;
    }
    } else {
    $abMsg[] = ‘Error: unable to save our links to cache. Please make sure that the folder ‘.$abCacheFolderName.’ located in the folder ‘.$_SERVER[‘DOCUMENT_ROOT’].’ and is writable’;
    }
    } else {
    $abMsg[] = ‘Error: unable to get links from server. Please make sure that your site supports either file_get_contents() or the cURL library.’;
    }
    } else {
    //Display the cached content
    echo $cacheContent;
    }

    } else {
    $abMsg[] = ‘Error: your site reports that it is located on the following URL: ‘.$page.’ – This is not a valid URL and we can not display links on this page. This is probably due to an incorrect setting of the $_SERVER variable.’;
    }

    } else {
    $abMsg[] = ‘Error: Unable to create or read from your link cache folder. Please try to create a folder by the name “‘.$abCacheFolderName.'” directly in the root of your site and make it writable’;
    }

    foreach ($abMsg as $error) {
    echo $error.”
    “;
    }

    ?>

}

register_sidebar_widget(“AutomaticBacklinks”, “widget_automaticbacklinks”);
register_widget_control(‘AutomaticBacklinks’, ‘widget_automaticbacklinks_control’);

}

add_action(‘init’, ‘widget_automaticbacklinks_init’);

/**
* Helper functions
*/

function abSaveCache($content, $file, $debug=false) {

//Prepend a timestamp to the content
$content = time().”|”.$content;

echo ($debug) ? ”

Saving Cache: “.$content : “”;

 

$fh = fopen($file, ‘w’);
if ($fh !== false) {
if (!fwrite($fh, $content)) {
echo ($debug) ? ”

Error Saving Cache!” : “”;
return false;
}
} else {
echo ($debug) ? ”
Error opening cache file for writing!” : “”;
return false;
}
if (!fclose($fh)) {
echo ($debug) ? ”
Error closing file handle!” : “”;
return false;
}

 

if (!file_exists($file)) {
echo ($debug) ? ”

Error could not create cache file!” : “”;
return false;
} else {
echo ($debug) ? ”
Cache file created successfully” : “”;
return true;
}

 

}

//Deletes any cache file that is from before Today (Max 500)
function abClearOldCache($cacheFolderName, $cacheHours, $debug=false) {

$today = date(‘Ymd’);
$cacheFolder = abGetCacheFolder($cacheFolderName);

if (is_dir($cacheFolder)) {

$allCacheFiles = glob($cacheFolder.’/*.cache’);
$todaysCacheFiles = glob($cacheFolder.’/’.$today.’*.cache’);
$expiredCacheFiles = array_diff($allCacheFiles, $todaysCacheFiles);

$i = 0;
foreach ($expiredCacheFiles as $expiredCacheFile) {
echo ($debug) ? ”

Deleting expired cache file: “.$expiredCacheFile : “”;
abRemoveCacheFile($expiredCacheFile, $debug);

 

// Limit to max 500
$i++;
if ($i >= 500) {
break;
}
}
}
}

//Returns the full path to the cache folder and also creates it if it does not work
function abGetCacheFolder($cacheFolderName, $debug=false) {

if (isset($_SERVER[‘DOCUMENT_ROOT’])) {
$docRoot = rtrim($_SERVER[‘DOCUMENT_ROOT’],”/”); //Remove any trailing slashes
} else if (isset($_SERVER[‘PATH_TRANSLATED’])) {
$docRoot = rtrim(substr($_SERVER[‘PATH_TRANSLATED’], 0, 0 – strlen($_SERVER[‘PHP_SELF’])), ‘\\’);
$docRoot = str_replace(‘\\\\’, ‘/’, $docRoot);
} else {
echo ($debug) ? ”

Error: Could not construct cache path” : “”;
}
$cacheFolder = $docRoot.”/”.$cacheFolderName;

 

echo ($debug) ? ”

Cache folder is: “.$cacheFolder : “”;

 

if (!file_exists($cacheFolder)) {
echo ($debug) ? ”

Cache folder does not exist: “.$cacheFolder : “”;
if (!@mkdir($cacheFolder,0777)) {
echo ($debug) ? ”
Error – could not create cache folder: “.$cacheFolder : “”;
return false;
} else {
echo ($debug) ? ”
Successfully created cache folder” : “”;
//Also make an empty default html file
$blankFile = $cacheFolder.”/index.html”;
if (!file_exists($blankFile)) {
$newFile = @fopen($blankFile,”w”);
@fclose($newFile);
}
}
}

 

return $cacheFolder;

}

//Url validation
function abIsValidUrl($url, $debug=false) {

$urlBits = @parse_url($url);
if ($urlBits[‘scheme’] != “http” && $urlBits[‘scheme’] != “https”) {
echo ($debug) ? ”

Error! URL does not start with http: “.$url : “”;
return false;
} else if (strlen($urlBits[‘host’]) < 4 || strpos($urlBits[‘host’], “.”) === false) {
echo ($debug) ? ”
Error! URL is incorrect: “.$url : “”;
return false;
}

 

return true;
}

//Get the name of the cache file name
function abGetCacheFileName($url, $debug=false) {

$cacheFileName = date(‘Ymd’).md5($url).”.cache”;
echo ($debug) ? ”

Cache file name for URL: “.$url.” is “.$cacheFileName : “”;
return $cacheFileName;

 

}

//Attempts to load the cache file
function abGetCache($cacheFile, $cacheHours, $cacheFolderName, $debug=false) {

//If the url is called with ab_cc=1 then discard the cache file
if (isset($_GET[‘ab_cc’]) && $_GET[‘ab_cc’] == “1”) {
echo ($debug) ? ”

Clear cache invoked!” : “”;
abRemoveCacheFile($cacheFile);
unset($_GET[‘ab_cc’]);
return false;
}

 

if (!file_exists($cacheFile)) {
echo ($debug) ? ”

Error! Cache file does not exist! “.$cacheFile : “”;
return false;
}

 

$cache_contents = @file_get_contents($cacheFile);

if ($cache_contents === false) {
echo ($debug) ? ”

Error: Cache file is completely empty!” : “”;
return false;
} else {
echo ($debug) ? ”
Cache file contents”.$cache_contents : “”;

 

//Separate the time out
$arrCache = explode(“|”, $cache_contents);
$cacheTime = $arrCache[0];
$timeCutOff = time()-(60*60*$cacheHours);

//Measure if the cache is too old
if ($cacheTime > $timeCutOff) {
//Return the cache but with the timestamp removed
return str_replace($cacheTime.”|”, “”, $cache_contents);
} else {
//echo “cacheTime ($cacheTime) <= timeCutOff ($timeCutOff)”;
abRemoveCacheFile($cacheFile, $debug);
abClearOldCache($cacheFolderName, $cacheHours, $debug); //Also remove other old cache files
return false;
}
}

}

//Delete a cache file
function abRemoveCacheFile($cacheFile, $debug=false) {
if (!@unlink($cacheFile)) {
echo ($debug) ? ”

Error: Could not remove cache file: “.$cacheFile : “”;
return false;
} else {
echo ($debug) ? ”
Successfully removed the cache file: “.$cacheFile : “”;
return true;
}
}

 

//Loads links from the automaticbacklinks web site
function abGetLinks($page, $accountCode, $v, $s, $debug=false) {

//Make the URL
$url = “http://links.automaticbacklinks.com/links.php”;
$url = $url.”?a=”.$accountCode;
$url = $url.”&v=”.$v;
$url = $url.”&s=”.$s;
$url = $url.”&page=”.urlencode($page);

echo ($debug) ? ”

Making call to AB: “.$url : “”;

 

ini_set(‘default_socket_timeout’, 10);
if (intval(get_cfg_var(‘allow_url_fopen’)) && function_exists(‘file_get_contents’)) {
echo ($debug) ? ”

Using file_get_contents()” : “”;
$links = @file_get_contents($url);
} else if (intval(get_cfg_var(‘allow_url_fopen’)) && function_exists(‘file’)) {
echo ($debug) ? ”
Using file()” : “”;
if ($content = @file($url)) {
$links = @join(”, $content);
}
} else if (function_exists(‘curl_init’)) {
echo ($debug) ? ”
Using cURL()” : “”;
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$links = curl_exec($ch);
curl_close ($ch);
} else {
echo ($debug) ? ”
Error: no method available to fetch links!” : “”;
return false;
}

 

return $links;

}

//remove ab_cc etc. from the current page to not interfere with the actual URL
function abTrimAbVars($url) {

$url = str_replace(“?ab_cc=1”, “”, $url);
$url = str_replace(“&ab_cc=1”, “”, $url);
$url = str_replace(“?ab_debug=6cae0e9624da6ae16f4116e61438edef”, “”, $url);
$url = str_replace(“&ab_debug=6cae0e9624da6ae16f4116e61438edef”, “”, $url);
$url = str_replace(“&phpinfo=1”, “”, $url);

return $url;

}

//Get page
function abGetPageUrl($debug=false) {

$query = “”;
$protocol = (isset($_SERVER[‘HTTPS’]) && strtolower($_SERVER[‘HTTPS’]) != “off”) ? “https://” : “http://”;
$host = $_SERVER[‘HTTP_HOST’];

if ($_SERVER[“REDIRECT_URL”]) {
//Redirect
if (isset($_SERVER[‘REDIRECT_SCRIPT_URI’])) {
//Use URI – it is complete
$page = $_SERVER[‘REDIRECT_SCRIPT_URI’];
} else {
//Use file and query
$file = $_SERVER[“REDIRECT_URL”];
if (isset($_SERVER[‘REDIRECT_QUERY_STRING’])) {
$query = “?”.$_SERVER[‘REDIRECT_QUERY_STRING’];
}
}
} else {
//No redirect
if (isset($_SERVER[‘SCRIPT_URI’])) {
//Use URI – it is complete
$page = $_SERVER[‘SCRIPT_URI’];
} else if (isset($_SERVER[‘REQUEST_URI’])) {
//Use URI
if (substr($_SERVER[‘REQUEST_URI’],0,4) == “http”) {
//Request URI has host in it
$page = $_SERVER[‘REQUEST_URI’];
} else {
//Request uri lacks host
$page = $protocol.$host.$_SERVER[‘REQUEST_URI’];
}
} else {
$file = $_SERVER[‘SCRIPT_NAME’];
if (isset($_SERVER[‘QUERY_STRING’])) {
$query = “?”.$_SERVER[‘QUERY_STRING’];
}
}
}
if (!$page) {
$page = $protocol.$host.$file.$query;
}

$page = abTrimAbVars($page);

echo ($debug) ? ”

This page is reported as: “.$page : “”;

 

return $page;

}

?>

Leave a Reply

Thư điện tử của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *