Public feed
#888992
function proxifyURL($url,$flag='',$absolute=true) {
global $base, $options;
if ( empty($url) ) return '';
// Ignore anchors
if ( $url{0} == '#' ) return $url;
// Ignore javascript
if ( strpos($url,'javascript:') === 0 ) return $url;
// Avoid double proxifying
if ( strpos($url,optURL) === 0 ) return $url;
// Absolute path from root
if ( strlen($url) && $url{0} == '/' ) {
$url = urlHOST . substr($url,1);
} else if ( strpos($url,'http://') !== 0 && strpos($url,'https://') !== 0 ) {
if ( $url == '.' )
$url = '';
if ( $base ) {
// Relative from BASE
$url = $base . $url;
} else {
// Relative from document
$url = urlHOST . urlPATH . $url;
}
}
// Simplify path
# Strip ./ (refers to current directory)
$url = str_replace('/./','/',$url);
if ( strlen($url) > 8 && strpos($url,'//',8) )
$url = preg_replace('#(?<!:)//#','/',$url);
# Convert ../ (= up a directory)
if ( strpos($url,'../') ) {
$parts = explode('/',$url);
// No directories to expand
if ( count($parts) == 1 ) return $url;
# Continue to loop through array while we still have ..
while ( in_array('..',$parts) ) {
// Check each part of the URL
foreach ( $parts as $key => $level ) {
// If this is the .., remove it and the previous directory
// so in effect we've travelled up a directory
if ( $level == '..' ) {
unset($parts[$previous]);
unset($parts[$key]);
break;
}
// If we remove more than one .. part, keys will no
// longer be consecutively ordered
$previous = $key;
}
}
# Return joined URI
$url = implode('/',$parts);
}
// Extract an #anchor
$jumpTo = '';
if ( strpos($url,'#') && preg_match('/#(.*)$/',$url,$anchor) ) {
$jumpTo = $anchor[0];
$url = str_replace($jumpTo,'',$url);
}
// Use base64 to hide target URL
if ( $options['encodeURL'] ) {
$uniquekey = "4";
global $uniquekey;
$array = str_split($url);
foreach($array as &$a)
{
$a = ord($a);
$a = $a * $uniquekey;
}
$url = implode('_',$array);
return $url;
}
$suffix = defined('BITFIELD') ? '&b=' . BITFIELD : '';
if ( $flag ) $suffix .= '&f='.$flag;
$prefix = $absolute ? optURL : '';
return $prefix . 'browse.php?u='.$url . $suffix . $jumpTo;
}
// Accepts http://yourproxy.site/browse.php?u=STRING and converts to
// http://www.domain.com/somepage.php
function deproxifyURL($url) {
// Remove our proxy URI
$url = str_replace(array(optURL,'browse.php?u='),'',$url);
global $uniquekey;
$array = explode("_", $url);
foreach($array as &$a)
{
$a = $a / $uniquekey;
$a = chr($a);
}
$url = implode('', $array);
return $url;
}