[COLOR= #0000BB]<?php[/COLOR]
[COLOR= #FF8000]/*
# ########################################################################################################################################
# Project: PHPLinkDirectory: Version 2.2.0
#
# **********************************************************************
# Copyright (C) 2004-2008 NetCreated, Inc. (http://www.netcreated.com/)
#
# **********************************************************************
#
# By using the software you agree to the terms:
# You may not redistribute, sell or otherwise share this software in whole or in part without the consent of the
# the ownership of PHP Link Directory. Please contact david@david-duval.com if you need more information.
# You agree to retain a link back to http://www.phplinkdirectory.com/ on all pages of your directory.
# If you wish to remove the link from the footer of the pages, You must purchase a license to do so. The license
# is $50.00 USD and purchase can be arranged by emailing help@phplinkdirectory.com .
# Removal of the link back without license purchase may be cause for permanent removal of permission to use this
# script.
# In some cases, users may be required to agree to changes in the software license before receiving updates to the software.
# For questions, help, comments, discussion, etc., please join the
# PHP Link Directory Forum http://www.phplinkdirectory.com/forum/
#
# @link http://www.phplinkdirectory.com/
# @copyright 2004-2008 NetCreated, Inc. (http://www.netcreated.com/)
# @projectManager David DuVal <david@david-duval.com>
# @package PHPLinkDirectory
# ########################################################################################################################################
*/
/**
Google PageRank Checksum Algorithm (Toolbar V3.x/4.x) V1.3
compatible with PHP 4.4.x/PHP 5.x, supported X86_64 CPU
Authors webpage:
http://pagerank.gamesaga.net/
ChangeLog:
2005-09-13 V0.1 first release
2005-10-21 V1.1 fix a bug for the final character
2006-09-21 V1.2 compatible with PHP 4.4/PHP 5.x
2006-09-29 V1.3 X86_64 CPU supported
*/
//Convert a string to a 32-bit integer[/COLOR]
[COLOR= #007700]function[/COLOR] StrToNum[COLOR= #007700]([/COLOR][COLOR= #0000BB]$Str[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$Check[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$Magic[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$Int32Unit[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]4294967296[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #FF8000]// 2^32[/COLOR]
[COLOR= #0000BB]$length[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$Str[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/for"]for[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]$length[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR][COLOR= #007700]++)
{[/COLOR]
[COLOR= #0000BB]$Check[/COLOR] [COLOR= #007700]*=[/COLOR] [COLOR= #0000BB]$Magic[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]/*
If the float is beyond the boundaries of integer (usually +/- 2.15e+9 = 2^31),
the result of converting to integer is undefined
refer to http://www.php.net/manual/en/language.types.integer.php
*/[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$Check[/COLOR] [COLOR= #007700]>=[/COLOR] [COLOR= #0000BB]$Int32Unit[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$Check[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$Check[/COLOR] [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]$Int32Unit[/COLOR] [COLOR= #007700]* (int) ([/COLOR][COLOR= #0000BB]$Check[/COLOR] / [COLOR= #0000BB]$Int32Unit[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #FF8000]//If the check less than -2^31[/COLOR]
[COLOR= #0000BB]$Check[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$Check[/COLOR] [COLOR= #007700]< -[/COLOR][COLOR= #0000BB]2147483648[/COLOR][COLOR= #007700]) ? ([/COLOR][COLOR= #0000BB]$Check[/COLOR] [COLOR= #007700]+[/COLOR] [COLOR= #0000BB]$Int32Unit[/COLOR][COLOR= #007700]) :[/COLOR] [COLOR= #0000BB]$Check[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$Check[/COLOR] [COLOR= #007700]+=[/COLOR] [URL="http://www.php.net/ord"]ord[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$Str[/COLOR][COLOR= #007700]{[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]});
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$Check[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]//Genearate a hash for an URL[/COLOR]
[COLOR= #007700]function[/COLOR] HashURL[COLOR= #007700]([/COLOR][COLOR= #0000BB]$String[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]=[/COLOR] StrToNum[COLOR= #007700]([/COLOR][COLOR= #0000BB]$String[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0x1505[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0x21[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$Check2[/COLOR] [COLOR= #007700]=[/COLOR] StrToNum[COLOR= #007700]([/COLOR][COLOR= #0000BB]$String[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]0x1003F[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]>>=[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]= (([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]>>[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]) &[/COLOR] [COLOR= #0000BB]0x3FFFFC0[/COLOR] [COLOR= #007700]) | ([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0x3F[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]= (([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]>>[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]) &[/COLOR] [COLOR= #0000BB]0x3FFC00[/COLOR] [COLOR= #007700]) | ([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0x3FF[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]= (([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]>>[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]) &[/COLOR] [COLOR= #0000BB]0x3C000[/COLOR] [COLOR= #007700]) | ([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0x3FFF[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$T1[/COLOR] [COLOR= #007700]= (((([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0x3C0[/COLOR][COLOR= #007700]) <<[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]) | ([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0x3C[/COLOR][COLOR= #007700])) <<[/COLOR][COLOR= #0000BB]2[/COLOR] [COLOR= #007700]) | ([/COLOR][COLOR= #0000BB]$Check2[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0xF0F[/COLOR] [COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$T2[/COLOR] [COLOR= #007700]= (((([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0xFFFFC000[/COLOR][COLOR= #007700]) <<[/COLOR] [COLOR= #0000BB]4[/COLOR][COLOR= #007700]) | ([/COLOR][COLOR= #0000BB]$Check1[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0x3C00[/COLOR][COLOR= #007700])) <<[/COLOR] [COLOR= #0000BB]0xA[/COLOR][COLOR= #007700]) | ([/COLOR][COLOR= #0000BB]$Check2[/COLOR] [COLOR= #007700]&[/COLOR] [COLOR= #0000BB]0xF0F0000[/COLOR] [COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$T1[/COLOR] [COLOR= #007700]|[/COLOR] [COLOR= #0000BB]$T2[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]//Genearate a checksum for the hash string[/COLOR]
[COLOR= #007700]function[/COLOR] CheckHash[COLOR= #007700]([/COLOR][COLOR= #0000BB]$Hashnum[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$CheckByte[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$Flag[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$HashStr[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/sprintf"]sprintf[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]%u[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$Hashnum[/COLOR][COLOR= #007700]) ;[/COLOR]
[COLOR= #0000BB]$length[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/strlen"]strlen[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$HashStr[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/for"]for[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$length[/COLOR] [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]>=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR] [COLOR= #0000BB]$i[/COLOR] [COLOR= #007700]--)
{[/COLOR]
[COLOR= #0000BB]$Re[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$HashStr[/COLOR][COLOR= #007700]{[/COLOR][COLOR= #0000BB]$i[/COLOR][COLOR= #007700]};[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]1[/COLOR] [COLOR= #007700]=== ([/COLOR][COLOR= #0000BB]$Flag[/COLOR] [COLOR= #007700]%[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #0000BB]$Re[/COLOR] [COLOR= #007700]+=[/COLOR] [COLOR= #0000BB]$Re[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$Re[/COLOR] [COLOR= #007700]= (int)([/COLOR][COLOR= #0000BB]$Re[/COLOR] / [COLOR= #0000BB]10[/COLOR][COLOR= #007700]) + ([/COLOR][COLOR= #0000BB]$Re[/COLOR] [COLOR= #007700]%[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #0000BB]$CheckByte[/COLOR] [COLOR= #007700]+=[/COLOR] [COLOR= #0000BB]$Re[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$Flag[/COLOR] [COLOR= #007700]++;
}[/COLOR]
[COLOR= #0000BB]$CheckByte[/COLOR] [COLOR= #007700]%=[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR] [COLOR= #007700]!==[/COLOR] [COLOR= #0000BB]$CheckByte[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$CheckByte[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]10[/COLOR] [COLOR= #007700]-[/COLOR] [COLOR= #0000BB]$CheckByte[/COLOR][COLOR= #007700];[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]1[/COLOR] [COLOR= #007700]=== ([/COLOR][COLOR= #0000BB]$Flag[/COLOR] [COLOR= #007700]%[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]) )
{[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]1[/COLOR] [COLOR= #007700]=== ([/COLOR][COLOR= #0000BB]$CheckByte[/COLOR] [COLOR= #007700]%[/COLOR] [COLOR= #0000BB]2[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #0000BB]$CheckByte[/COLOR] [COLOR= #007700]+=[/COLOR] [COLOR= #0000BB]9[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #0000BB]$CheckByte[/COLOR] [COLOR= #007700]>>=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}
}[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #DD0000]7[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$CheckByte[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$HashStr[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]//Return -1 if no page rank was found[/COLOR]
[COLOR= #007700]function[/COLOR] get_page_rank[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #FF8000]//Define multiple Google domains to check PR at[/COLOR]
[COLOR= #0000BB]$googleDomains[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]www.google.com[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]toolbarqueries.google.com[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]toolbarqueries.google.com.tr[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]www.google.com.tr[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]toolbarqueries.google.de[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000]www.google.de[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]//Choose a random Google domain in order to prevent abuse[/COLOR]
[COLOR= #0000BB]$useGoogleHost[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]$googleDomains[/COLOR][COLOR= #007700][[/COLOR][URL="http://www.php.net/mt_rand"]mt_rand[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [URL="http://www.php.net/count"]count[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$googleDomains[/COLOR][COLOR= #007700]) -[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])];[/COLOR]
[COLOR= #FF8000]//Wheter to use another connection type
//Auto modified if other options (ie: cURL) are not available[/COLOR]
[COLOR= #0000BB]$useOtherConn[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//Number of seconds to wait whilst trying to connect[/COLOR]
[COLOR= #0000BB]$timeout[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]10[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//Make sure URL is not encoded[/COLOR]
[COLOR= #0000BB]$url[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/urldecode"]urldecode[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]//Remove all kind of white-space chars, ecept the basic space[/COLOR]
[COLOR= #0000BB]$search[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL] [COLOR= #007700]([/COLOR] [COLOR= #DD0000]"n"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #FF8000]//*NIX[/COLOR]
[COLOR= #DD0000]"r"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #FF8000]//Mac[/COLOR]
[COLOR= #DD0000]"rn"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #FF8000]//Windows[/COLOR]
[COLOR= #DD0000]"t"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #FF8000]//Tab[/COLOR]
[COLOR= #DD0000]"x0B"[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #FF8000]//Vertical Tab[/COLOR]
[COLOR= #DD0000]"0"[/COLOR] [COLOR= #FF8000]//NULL BYTE[/COLOR]
[COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$url[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/str_replace"]str_replace[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$search[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$url[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/trim"]trim[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/empty"]empty[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #FF8000]//URL is empty
//return N/A[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #007700]-[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]//Correct URL value[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](![/COLOR][URL="http://www.php.net/preg_match"]preg_match[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]#^http[s]?://#i[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #0000BB]$url[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]http://[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$url[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]//Check if "allow_url_fopen" is enabled[/COLOR]
[COLOR= #0000BB]$allowUrlFopen[/COLOR] [COLOR= #007700]= ([/COLOR][URL="http://www.php.net/function_exists"]function_exists[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]ini_get[/COLOR][COLOR= #007700]) &&[/COLOR] [URL="http://www.php.net/ini_get"]ini_get[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]allow_url_fopen[/COLOR][COLOR= #007700]) ?[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]//Determine checksum[/COLOR]
[COLOR= #0000BB]$checksum[/COLOR] [COLOR= #007700]=[/COLOR] CheckHash[COLOR= #007700]([/COLOR]HashURL[COLOR= #007700]([/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700]));[/COLOR]
[COLOR= #0000BB]$queryString[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]/search?client=navclient-auto&ch=[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$checksum[/COLOR][COLOR= #007700].[/COLOR][COLOR= #DD0000]&features=Rank:&q=info:[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$url[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//Define Pagerank as -1 (N/A)[/COLOR]
[COLOR= #0000BB]$pagerank[/COLOR] [COLOR= #007700]= -[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//String that will contain the PR content by Google[/COLOR]
[COLOR= #0000BB]$responseContent[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #FF8000]//Try to use "file_get_contents" (best method)
//According to PHP manual: http://www.php.net/manual/en/function.file-get-contents.php
//file_get_contents() is the preferred way to read the contents of a file into a string.
//It will use memory mapping techniques if supported by your OS to enhance performance.[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/function_exists"]function_exists[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]file_get_contents[/COLOR][COLOR= #007700]) &&[/COLOR] [COLOR= #0000BB]$allowUrlFopen[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #0000BB]$responseContent[/COLOR] [COLOR= #007700]= @[/COLOR] [URL="http://www.php.net/file_get_contents"]file_get_contents[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]http://[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$useGoogleHost[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$queryString[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/empty"]empty[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$responseContent[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #FF8000]//FALSE or empty response content[/COLOR]
[COLOR= #0000BB]$useOtherConn[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]//Content received, make sure to stop here[/COLOR]
[COLOR= #0000BB]$useOtherConn[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];
}
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]//"file_get_contents" not available
//Try cURL or "fsockopen"[/COLOR]
[COLOR= #0000BB]$useOtherConn[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}[/COLOR]
[COLOR= #FF8000]//Use cURL if available for a second best performance[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/function_exists"]function_exists[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]curl_init[/COLOR][COLOR= #007700]) &&[/COLOR] [COLOR= #0000BB]$useOtherConn[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #FF8000]//Initialize a cURL session[/COLOR]
[COLOR= #0000BB]$cResource[/COLOR] [COLOR= #007700]= @[/COLOR] curl_init[COLOR= #007700]();[/COLOR]
[COLOR= #FF8000]//Set cURL options[/COLOR]
[COLOR= #007700]@[/COLOR] curl_setopt [COLOR= #007700]([/COLOR][COLOR= #0000BB]$cResource[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_URL[COLOR= #007700],[/COLOR] [COLOR= #DD0000]http://[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$useGoogleHost[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$queryString[/COLOR][COLOR= #007700]);
@[/COLOR] curl_setopt [COLOR= #007700]([/COLOR][COLOR= #0000BB]$cResource[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_RETURNTRANSFER[COLOR= #007700],[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700]);
@[/COLOR] curl_setopt [COLOR= #007700]([/COLOR][COLOR= #0000BB]$cResource[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_HTTP_VERSION[COLOR= #007700],[/COLOR] CURL_HTTP_VERSION_[COLOR= #0000BB]1[/COLOR]_[COLOR= #0000BB]0[/COLOR][COLOR= #007700]);
@[/COLOR] curl_setopt [COLOR= #007700]([/COLOR][COLOR= #0000BB]$cResource[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_USERAGENT[COLOR= #007700],[/COLOR] [COLOR= #DD0000]Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1) Gecko/20021204[/COLOR][COLOR= #007700]);
@[/COLOR] curl_setopt [COLOR= #007700]([/COLOR][COLOR= #0000BB]$cResource[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_CONNECTTIMEOUT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$timeout[/COLOR][COLOR= #007700]);
@[/COLOR] curl_setopt [COLOR= #007700]([/COLOR][COLOR= #0000BB]$cResource[/COLOR][COLOR= #007700],[/COLOR] CURLOPT_TIMEOUT[COLOR= #007700],[/COLOR] [COLOR= #0000BB]$timeout[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]//Get content[/COLOR]
[COLOR= #0000BB]$responseContent[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/trim"]trim[/URL] [COLOR= #007700](@[/COLOR] curl_exec [COLOR= #007700]([/COLOR][COLOR= #0000BB]$cResource[/COLOR][COLOR= #007700]));
@[/COLOR] curl_close [COLOR= #007700]([/COLOR][COLOR= #0000BB]$cResource[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/empty"]empty[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$responseContent[/COLOR][COLOR= #007700]))[/COLOR] [COLOR= #FF8000]//FALSE or empty response content[/COLOR]
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]//An error occured or no content available
//Give Pagerank another, try last method "fsockopen"[/COLOR]
[COLOR= #0000BB]$useOtherConn[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #FF8000]//Content received, make sure to stop here[/COLOR]
[COLOR= #0000BB]$useOtherConn[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];
}
}[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$useOtherConn[/COLOR] [COLOR= #007700]==[/COLOR] [COLOR= #0000BB]1[/COLOR][COLOR= #007700])
{[/COLOR]
[COLOR= #FF8000]//Open socket connection[/COLOR]
[COLOR= #0000BB]$fp[/COLOR] [COLOR= #007700]= @[/COLOR] [URL="http://www.php.net/fsockopen"]fsockopen[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$useGoogleHost[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]80[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$errno[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$errstr[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$timeout[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](![/COLOR][COLOR= #0000BB]$fp[/COLOR][COLOR= #007700])
{[/COLOR]
[URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]"{$errstr} ({$errno})<br />n"[/COLOR][COLOR= #007700];
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
[COLOR= #0000BB]$out[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]"GET {$queryString} HTTP/1.1rn"[/COLOR] [COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$out[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"Host: {$useGoogleHost}rn"[/COLOR] [COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$out[/COLOR] [COLOR= #007700].=[/COLOR] [COLOR= #DD0000]"Connection: Closernrn"[/COLOR] [COLOR= #007700];
@[/COLOR] [URL="http://www.php.net/fwrite"]fwrite[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$fp[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$out[/COLOR][COLOR= #007700]);
@[/COLOR] [URL="http://www.php.net/stream_set_timeout"]stream_set_timeout[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$fp[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$timeout[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/while"]while[/URL] [COLOR= #007700](![/COLOR][URL="http://www.php.net/feof"]feof[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$fp[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #0000BB]$responseContent[/COLOR] [COLOR= #007700].= @[/COLOR] [URL="http://www.php.net/fgets"]fgets[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$fp[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]1024[/COLOR][COLOR= #007700]);
}
@[/COLOR] [URL="http://www.php.net/fclose"]fclose[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$fp[/COLOR][COLOR= #007700]);
}
}[/COLOR]
[COLOR= #FF8000]//Search for Pagerank in response code[/COLOR]
[URL="http://www.php.net/if"]if[/URL] [COLOR= #007700]([/COLOR][URL="http://www.php.net/preg_match"]preg_match[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]#Rank_([d]+):([d]+):([d]+)#si[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$responseContent[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$matches[/COLOR][COLOR= #007700]))
{[/COLOR]
[COLOR= #0000BB]$pagerank[/COLOR] [COLOR= #007700]= ([/COLOR][URL="http://www.php.net/isset"]isset[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$matches[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]3[/COLOR][COLOR= #007700]]) ?[/COLOR] [URL="http://www.php.net/trim"]trim[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$matches[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]3[/COLOR][COLOR= #007700]]) :[/COLOR] [COLOR= #0000BB]$pagerank[/COLOR][COLOR= #007700]);
}[/COLOR]
[COLOR= #FF8000]//Allow numeric value with a minus[/COLOR]
[COLOR= #0000BB]$pagerank[/COLOR] [COLOR= #007700]= ([/COLOR][URL="http://www.php.net/preg_match"]preg_match[/URL] [COLOR= #007700]([/COLOR][COLOR= #DD0000]#^[-]?[d]+$#[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$pagerank[/COLOR][COLOR= #007700]) ?[/COLOR] [COLOR= #0000BB]$pagerank[/COLOR] [COLOR= #007700]: -[/COLOR][COLOR= #0000BB]1[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #0000BB]$pagerank[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$pagerank[/COLOR] [COLOR= #007700]<[/COLOR] [COLOR= #0000BB]0[/COLOR] [COLOR= #007700]? -[/COLOR][COLOR= #0000BB]1[/COLOR] [COLOR= #007700]:[/COLOR] [URL="http://www.php.net/intval"]intval[/URL] [COLOR= #007700]([/COLOR][COLOR= #0000BB]$pagerank[/COLOR][COLOR= #007700]));[/COLOR][COLOR= #FF8000]//Not lower than "-1"
//Pagerank cannot be higher than 10 (just in case errors occur)[/COLOR]
[COLOR= #0000BB]$pagerank[/COLOR] [COLOR= #007700]= ([/COLOR][COLOR= #0000BB]$pagerank[/COLOR] [COLOR= #007700]>[/COLOR] [COLOR= #0000BB]10[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #0000BB]10[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #0000BB]$pagerank[/COLOR][COLOR= #007700]);[/COLOR]
[URL="http://www.php.net/return"]return[/URL] [COLOR= #0000BB]$pagerank[/COLOR][COLOR= #007700];
}[/COLOR]
?>
Het is een script van PHPdl, maar aan dat forum heb ik nog niets gehad.
Voor de rest zit er nog een pagerank.tld file maar dat is toch enkel de template?