|
custom web design |
| |
custom web development |
| |
/**
* AutomaticBackLinks.com - PHP linking code
* Copy and paste this code in your php document where you want your links to display
* Make sure that this code is inside PHP tags
*/
error_reporting(1);
//Settings
$abCacheFolderName = "automaticbacklinks_cache";
$abAccountCode = "e20da98172913b537dab99efdfbc588c";
$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.3";
$s = "php";
$abMsg = array();
if (trim($_GET['ab_debug']) == 'e20da98172913b537dab99efdfbc588c') {
$debug = true;
echo "Version: ".$v;
echo "System: ".$s;
unset($_GET['ab_debug']);
}
//Create cache folder if it does not exist
$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 has CHMOD 0777';
}
} 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 CHMOD the folder to 0777';
}
foreach ($abMsg as $error) {
echo $error." ";
}
/**
* 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 older than 24 hours
function abClearOldCache($cacheFolderName, $cacheHours, $debug=false) {
$cacheFolder = abGetCacheFolder($cacheFolderName);
if (is_dir($cacheFolder)) {
if ($dh = opendir($cacheFolder)) {
while (($file = readdir($dh)) !== false) {
if (strpos($file, ".cache")) {
$modified = filemtime($cacheFolder."/".$file);
$timeCutOff = time()-(60*60*$cacheHours);
if ($modified < $timeCutOff) {
@unlink($cacheFolder."/".$file);
}
}
}
closedir($dh);
}
}
}
//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 = 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://www.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=e20da98172913b537dab99efdfbc588c", "", $url);
$url = str_replace("&ab_debug=e20da98172913b537dab99efdfbc588c", "", $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['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 if (isset($_SERVER['SCRIPT_URI'])) {
//Use URI - it is complete
$page = $_SERVER['SCRIPT_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;
}
//Show phpinfo if debug is on and phpinfo is requested
if ($debug && $_GET['phpinfo']) {
?>
|
| |
custom web software |
| |
customized software development |