Web Analytics Made Easy -
StatCounter Problem trying to see Youtube through this proxy script - CodingForum

Announcement

Collapse
No announcement yet.

Problem trying to see Youtube through this proxy script

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem trying to see Youtube through this proxy script

    Hi,

    As I am in Turkey at present, I can not see vidoes on
    youtube. So I have tried a few proxies but keep finding them slow or
    not working.

    So I have installed myphpProxy on my server under the
    domain name www.blog-start.com

    Unfortuantely it is not not working correctly
    - whenever I try to watch a video (any video),
    the screen displays the message:
    "We're sorry, this video is no longer available".

    Any ideas what may be wrong ?

    (you can try it yourself - no password on the site yet )

    Here is the code:

    PHP Code:
    <?php

    /*
     phpMyProxy is a free php proxy script
    */

    error_reporting(E_ALL);
    session_start();
    //@set_time_limit(0);

    define('_PROXY_VERSION''1.0.3');
    define('_CWD'dirname(__FILE__));
    //define('_SAFE_MODE', (bool)@ini_get('safe_mode'));
    //define('_OPEN_BASEDIR', (bool)@ini_get('open_basedir'));

    if(get_magic_quotes_gpc()) {
        if(@
    ini_get('magic_quotes_sybase')) {
            
    $_GET _strip_single_quotes($_GET);
            
    $_POST _strip_single_quotes($_POST);
            
    $_COOKIE _strip_single_quotes($_COOKIE);
        } else {
            
    $_GET _stripslashes($_GET);
            
    $_POST _stripslashes($_POST);
            
    $_COOKIE _stripslashes($_COOKIE);
        }
    }

    // Require configurations
    require './proxy.config.php';


    // Get theme directory
    $_theme_dir './themes/' $_theme;
    if(!
    file_exists($_theme_dir)) {
        
    $_theme_dir './themes/default';
    }
    define('_THEME_DIR'$_theme_dir);
    unset(
    $_langfile$_theme_dir);


    if(!
    function_exists('http_build_query')) { // PHP4 doesn't have this function, we have to create one like PHP5.
        
    function http_build_query($formdata$prefix ''$first true) {
            static 
    $data = array();
            static 
    $size false;
            static 
    $count 0;
            if(
    is_object($formdata)) {
                
    $formdata unserialize(serialize($formdata));
            }
            if(
    $size == false$size count($formdata);
            foreach(
    $formdata as $key => $value) {
                
    $key urlencode($key);
                if(
    is_object($value)) {
                    
    $value unserialize(serialize($value));
                }
                if(
    $first$count++;
                if(
    is_array($value)) {
                    
    http_build_query($value, (($first and !is_numeric($key)) ? '' $prefix) . $key . ($first '' ']') . '['false);
                } else {
                    
    $data[] = (($first and !is_numeric($key)) ? '' $prefix) . $key . ($first '' ']') . '=' urlencode($value);
                }
            }
        
            if(
    $count == $size and $first) return ($data) ? implode('&'$data) : '';
        }
    }


    // Do something
    $_SERVER['REQUEST_METHOD'] = strtoupper($_SERVER['REQUEST_METHOD']);
    $_referer = (isset($_SERVER['HTTP_REFERER']) ? trim($_SERVER['HTTP_REFERER']) : false);

    // Get available protocols
    $_protocols = array('http''ftp');
    $_curl_version curl_version();
    $_https = ((is_array($_curl_version) and in_array('https'$_curl_version['protocols'])) or (is_string($_curl_version) and strpos($_curl_version'OpenSSL/') !== false)) ? true false;
    if(
    $_https) {
        
    $_protocols[] = 'https';
    }
    unset(
    $_curl_version);

    // Setup options and take relevant action
    if(!isset($_SESSION['_options']) or !is_array($_SESSION['_options'])) {
        
    $_SESSION['_options'] = array();
    }
    if(isset(
    $_POST[$_config['url_var_name']]) and !isset($_GET[$_config['url_var_name']])) {
        if(!isset(
    $_POST['options']) or !is_array($_POST['options'])) {
            
    $_POST['options'] = array();
        }
        foreach(
    $_options as $_option => $_value) {
            
    $_SESSION['_options'][$_option] = (!$_frozen_options[$_option] ? (isset($_POST['options'][$_option]) ? $_POST['options'][$_option] : 0) : $_value);
        }
        
        
    $_url trim($_POST[$_config['url_var_name']]);
    } elseif(isset(
    $_GET[$_config['url_var_name']])) {
        foreach(
    $_options as $_option => $_value) {
            
    $_SESSION['_options'][$_option] = ((isset($_SESSION['_options'][$_option]) and !$_frozen_options[$_option]) ? $_SESSION['_options'][$_option] : $_value);
        }

        
    $_url _decode_url(trim($_GET[$_config['url_var_name']]));
        if((
    count($_GET) > and !isset($_GET['_x_fin_x_'])) or (count($_GET) > and isset($_GET['_x_fin_x_']))) {
            unset(
    $_GET[$_config['url_var_name']], $_GET['_x_fin_x_']);
            
    $_url .= ($_GET) ? '?' http_build_query($_GET) : '';
            
    _redirect(_rewrite_url($_url));
        }
    } else {
        foreach(
    $_options as $_option => $_value) {
            
    $_SESSION['_options'][$_option] = ((isset($_SESSION['_options'][$_option]) and !$_frozen_options[$_option]) ? $_SESSION['_options'][$_option] : $_value);
        }
        
    _report();
    }

    // Validate user input
    if($_url == '') {
        
    _report(array('error' => 'empty_url'));
    }
    if(!
    in_array($_SERVER['REQUEST_METHOD'], array('HEAD''GET''POST'))) {
        
    _report(array('error' => 'unsupported_method'));
    }

    if(
    strpos($_url':') === false) {
        
    $_url 'http://' $_url;
    }
    $_url preg_replace('#:/{3,}#i''://'$_url);

    $_url_com = @parse_url($_url);
    $_url_com['scheme'] = strtolower($_url_com['scheme']);
    if(empty(
    $_url_com) or !isset($_url_com['host'])) {
        
    _report(array('error' => 'incorrect_url'));
    }
    if(
    preg_match('/^127\.|192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[01])\./i'$_url_com['host']) or strpos($_url_com['host'], '.') === false) {
        
    _report(array('error' => 'denied_url'));
    }
    foreach(
    $_disallowed_hosts as $_disallowed_host) {
        if(
    $_url_com['host'] == $_disallowed_host or $_url_com['host'] == 'www.' $_disallowed_host) {
            
    _report(array('error' => 'denied_url'));
        }
    }
    if(!
    in_array($_url_com['scheme'], $_protocols)) {
        
    _report(array('error' => 'unsupported_protocol'));
    }


    // Prevent HotLinking
    if(!$_config['allow_hotlinking']) {
        
    $_hotlink true;
        if(
    $_referer) {
            
    $_hotlink_domains[] = $_SERVER['HTTP_HOST'];
            
    $_referer_com = @parse_url($_referer);
            foreach(
    $_hotlink_domains as $_hotlink_domain) {
                if(
    $_hotlink_domain == $_referer_com['host'] or $_hotlink_domain == 'www.' $_referer_com['host'] or 'www.' $_hotlink_domain == $_referer_com['host']) {
                    
    $_hotlink false;
                    break;
                }
            }
        } elseif (!
    $_config['nonreferer_hotlink'] and !$_referer) {
            
    $_hotlink false;
        }

        if(
    $_hotlink) {
            switch(
    $_config['upon_hotlink']) {
                case 
    1:
                    
    _report(array('error' => 'hotlinking'));
                break;
                
                case 
    2:
                    
    header('HTTP/1.0 404 Not Found');
                    exit;
                break;
                
                default:
                    
    _redirect($_config['upon_hotlink']);
            }
        }
    // End of hotlinking prevention

    // Save username and password to the session
    if(!isset($_SESSION['_authorization'])) {
        
    $_SESSION['_authorization'] = array();
    }
    if(isset(
    $_POST[$_config['url_var_name']]) and (isset($_POST['username']) or isset($_POST['password']))) {
        
    $_SESSION['_authorization'][$_url_com['host']] = (isset($_POST['username']) ? $_POST['username'] : '') . ':' . (isset($_POST['password']) ? $_POST['password'] : '');
    } else {
        
    $_SESSION['_authorization'][$_url_com['host']] = (isset($_SESSION['_authorization'][$_url_com['host']]) ? $_SESSION['_authorization'][$_url_com['host']] : '');
    }

    // Complete URL
    $_url $_url_com['scheme'] . '://';
    $_base = array('scheme' => $_url_com['scheme']);
    if(isset(
    $_url_com['user']) or isset($_url_com['pass'])) {
        
    $_url .= $_url_com['user'];
        if(isset(
    $_url_com['pass'])) {
            
    $_url .= ':' $_url_com['pass'];
        }
        
    $_url .= '@';
    }
    $_url .= $_url_com['host'];
    if(isset(
    $_url_com['port'])) {
        
    $_url .= ':' $_url_com['port'];
    }
    $_base['webroot'] = $_url;
    if(isset(
    $_url_com['path'])) {
        
    $_url .= $_url_com['path'];
    }
    $_base['path'] = isset($_url_com['path']) ? $_url_com['path'] : '/';
    $_base['webpath'] = $_url;
    if(isset(
    $_url_com['query'])) {
        
    $_url_com['query'] = str_replace('&amp;''&'$_url_com['query']);
        
    parse_str($_url_com['query'], $_query_pairs);
        
    $_url .= '?' http_build_query($_query_pairs);
        unset(
    $_query_pairs);
    }
    $_base['url'] = $_url;
    //echo $_url;exit;


    // Redirect if neccessary
    if(isset($_POST[$_config['url_var_name']]) and !isset($_GET[$_config['url_var_name']])) {
        
    _redirect('?' $_config['url_var_name'] . '=' _encode_url($_url) . (isset($_url_com['fragment']) ? '#' $_url_com['fragment'] : ''));
    }

    // Setup options
    $_curl_options = array();
    $_uploaded_files = array();
    if(
    $_SERVER['REQUEST_METHOD'] != 'GET') {
        
    $_curl_options[CURLOPT_CUSTOMREQUEST] = $_SERVER['REQUEST_METHOD'];
        if(!isset(
    $_POST[$_config['url_var_name']]) and $_SERVER['REQUEST_METHOD'] == 'POST') {
            
    $_postfields $_POST;
            if(@
    ini_get('file_uploads') and $_FILES) {
                foreach(
    $_FILES as $_key => $_value) {
                    if(
    is_array($_value['tmp_name'])) {
                        foreach(
    $_value['tmp_name'] as $_k => $_v) {
                            
    $_new_name dirname($_v) . '/' $_value['name'][$_k];
                            @
    unlink($_new_name);
                            if([email protected]
    rename($_v$_new_name)) {
                                
    $_new_name $_v;
                            }
                            
    $_postfields[$_key '[' $_k ']'] = '@' $_new_name;
                        }
                    } else {
                        
    $_new_name dirname($_value['tmp_name']) . '/' $_value['name'];
                        @
    unlink($_new_name);
                        if([email protected]
    rename($_value['tmp_name'], $_new_name)) {
                            
    $_new_name $_value['tmp_name'];
                        }
                        
    $_postfields[$_key] = '@' $_new_name;
                    }
                }
            }
            
    $_curl_options[CURLOPT_POSTFIELDS] = $_postfields;
            unset(
    $_postfields$_new_name);
        }
    }
    if(
    $_url_com['scheme'] == 'https') {
        
    $_curl_options[CURLOPT_SSL_VERIFYPEER] = false;
        
    $_curl_options[CURLOPT_SSL_VERIFYHOST] = false;
    }

    // Pass headers
    $_passible_headers = array(
        
    'HTTP_ACCEPT' => 'Accept',
        
    'HTTP_ACCEPT_CHARSET' => 'Accept-Charset',
        
    'HTTP_ACCEPT_LANGUAGE' => 'Accept-Language',
        
    'HTTP_USER_AGENT' => 'User-Agent',
        
    'HTTP_CACHE_CONTROL' => 'Cache-Control',
    );
    $_headers = array();
    foreach(
    $_passible_headers as $_header_key => $_header_name) {
        if(isset(
    $_SERVER[$_header_key])) $_headers[] = $_header_name ': ' $_SERVER[$_header_key];
    }

    // Remove referers
    if($_SESSION['_options']['remove_referers']) {
        
    $_headers[] = 'Referer: ';
    } else {
        if(
    $_referer) {
            
    $_referer_com = @parse_url($_referer);
            if(
    $_url_com['host'] == $_referer_com['host'] or $_url_com['host'] == 'www.' $_referer_com['host'] or 'www.' $_url_com['host'] == $_referer_com['host']) {
                
    $_headers[] = 'Referer: ' $_referer;
            } else if(
    $_referer_com['host'] == $_SERVER['HTTP_HOST'] or $_referer_com['host'] == 'www.' $_SERVER['HTTP_HOST'] or 'www.' $_referer_com['host'] == $_SERVER['HTTP_HOST']) {
                if(isset(
    $_referer_com['query'])) {
                    
    $_referer_vars = array();
                    
    parse_str($_referer_com['query'], $_referer_vars);
                    
    $_internal_referer _decode_url($_referer_vars[$_config['url_var_name']]);
                    
    $_headers[] = 'Referer: ' . (($_internal_referer) ? $_internal_referer $_url);
                } else {
                    
    $_headers[] = 'Referer: ' $_url;
                }
            } else {
                
    $_headers[] = 'Referer: ' $_url;
            }
        }
    }


    // Get content
    $_r = array('headers' => array());
    $_p curl_init($_url);
    if(
    $_SESSION['_options']['accept_cookies']) {
        
    $_cookie_file _CWD '/cookies/' session_id() . '.txt';
        if(!
    file_exists($_cookie_file)) {
            
    $_cookie = @fopen($_cookie_file'wb');
            @
    fclose($_cookie);
        }
        
    curl_setopt($_pCURLOPT_COOKIEJAR$_cookie_file);
        
    curl_setopt($_pCURLOPT_COOKIEFILE$_cookie_file);
    }
    curl_setopt($_pCURLOPT_REFERERfalse);
    curl_setopt($_pCURLOPT_FAILONERRORtrue);
    curl_setopt($_pCURLOPT_FORBID_REUSEfalse);
    curl_setopt($_pCURLOPT_FRESH_CONNECTfalse);
    curl_setopt($_pCURLOPT_TIMEOUT60);
    curl_setopt($_pCURLOPT_MAXREDIRS10);
    curl_setopt($_pCURLOPT_FILETIMEtrue);
    curl_setopt($_pCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($_pCURLOPT_HTTPHEADER$_headers);
    curl_setopt($_pCURLOPT_HEADERFUNCTION'_headerfunction');
    if(
    defined('CURLOPT_AUTOREFERER')) curl_setopt($_pCURLOPT_AUTOREFERERfalse);

    if(
    $_SESSION['_authorization'][$_url_com['host']]) curl_setopt($_pCURLOPT_USERPWD$_SESSION['_authorization'][$_url_com['host']]);
    foreach(
    $_curl_options as $_option => $_value) {
        
    curl_setopt($_p$_option$_value);
    }

    if(
    defined('_DEVELOPMENT_MODE')) {
        
    $_curl_log fopen('./curl_log.txt''ab');
        
    fwrite($_curl_log"[ " date('Y-m-d H:i:s') . " ]\r\n");
        
    flock($_curl_logLOCK_EX);
        
    curl_setopt($_pCURLOPT_VERBOSEtrue);
        
    curl_setopt($_pCURLOPT_STDERR$_curl_log);
    }

    $_r['content'] = curl_exec($_p);
    $_r['info'] = curl_getinfo($_p);
    $_r['errno'] = curl_errno($_p);
    $_r['error'] = curl_error($_p);
    curl_close($_p);

    if(
    defined('_DEVELOPMENT_MODE')) {
        
    fwrite($_curl_log"=> Error Code: {$_r['errno']}\r\n=> Error Message: {$_r['error']}\r\n\r\n\r\n");
        
    flock($_curl_logLOCK_UN);
        
    fclose($_curl_log);
    }

    // Delete uploaded files if did
    foreach($_uploaded_files as $_uploaded_file) {
        @
    unlink($_uploaded_file);
    }
    unset(
    $_p$_uploaded_files$_uploaded_file$_curl_options);

    // Handle errors or redirection returned by the distination
    if($_r['errno'] == 28 or $_r['errno'] == 6) {
        
    _report(array('error' => 'server_not_found'));
    }
    //if($_r['info']['url'] != $_url) {
    //    _redirect('?' . $_config['url_var_name'] . '=' . _encode_url($_r['info']['url']));
    //}
    if($_r['info']['http_code'] == 401) { // Authorization Required
        
    sscanf($_r['headers']['www-authenticate'][0], 'Basic realm=%s'$_realm);
        
    $_realm = array();
        
    preg_match('#basic realm=(?:\'|\")(.*?)(?:\'|\")#si'$_r['headers']['www-authenticate'][0], $_realm);
        
    $_realm $_realm $_realm[1] : '';
        
    $_lang['enter_username_password'] = sprintf($_lang['enter_username_password'], trim($_realm'"\''), $_base['webroot']);
        unset(
    $_realm);
        
    _report(array('error' => 'authorization_required''username' => '''password' => ''));
    }
    if(
    $_r['info']['http_code'] == 404) { // File not found
        
    _report(array('error' => 'error_404'));
    }
    if(
    $_config['max_file_size'] > and $_r['info']['download_content_length'] > $_config['max_file_size']) {
        
    $_lang['file_too_large'] = sprintf($_lang['file_too_large'], _number_format($_config['max_file_size'] / 1048576), _number_format($_r['info']['download_content_length'] / 1048576));
        
    _report(array('error' => 'file_too_large'));
    }

    // Try to detect Content-Type
    if(!isset($_r['headers']['content-type']) and function_exists('mime_content_type')) {
        
    $_r['headers']['content-type'] = array(mime_content_type($_url));
    }
    if(isset(
    $_r['headers']['content-type'])) {
        
    $_content_type explode(';'$_r['headers']['content-type'][0]);
        
    $_content_type array_map('trim'$_content_type);
    } else {
        
    $_content_type = array('text/html');
    }

    // Use compress output or not?
    if($_config['compress_output'] and (in_array($_content_type[0], $_proxify) and $_content_type[0] != 'text/css') and !(bool)@ini_get('zlib.output_compression') and extension_loaded('zlib')) ob_start('ob_gzhandler');

    // Out content don't need to be proxified
    if(!in_array($_content_type[0], $_proxify)) {
        
    _out(false$_content_type[0]);
    }

    // Try to find <base> tag out and re-setup $_base
    if(preg_match('#(<base[^>]*\bhref\s*=\s*[\(\'\"]+)(.*?)([\'\"\)]+[^>]*>)#si'$_r['content'], $match)) {
        
    $_base_com = @parse_url($match[2]);
        if(
    $_base_com) {
            
    $_base_url $_base_com['scheme'] . '://';
            
    $_base_com['scheme'] = strtolower($_base_com['scheme']);
            
    $_base = array('scheme' => $_base_com['scheme']);
            if(isset(
    $_base_com['user']) or isset($_base_com['pass'])) {
                
    $_base_url .= $_base_com['user'];
                if(isset(
    $_base_com['pass'])) {
                    
    $_base_url .= ':' $_base_com['pass'];
                }
                
    $_base_url .= '@';
            }
            
    $_base_url .= $_base_com['host'];
            if(isset(
    $_base_com['port'])) {
                
    $_base_url .= ':' $_base_com['port'];
            }
            
    $_base['webroot'] = $_base_url;
            if(isset(
    $_base_com['path'])) {
                
    $_base_url .= $_base_com['path'];
            }
            
    $_base['path'] = isset($_base_com['path']) ? $_base_com['path'] : '/';
            
    $_base['webpath'] = $_base_url;
            if(isset(
    $_base_com['query'])) {
                
    $_base_com['query'] = str_replace('&amp;''&'$_base_com['query']);
                
    parse_str($_base_com['query'], $_query_pairs);
                
    $_base_url .= '?' http_build_query($_query_pairs);
                unset(
    $_query_pairs);
            }
            
    $_base['url'] = $_base_url;
            unset(
    $_base_url);
        }
        unset(
    $_base_com);
        
        
    $_r['content'] = str_replace($match[0], ''$_r['content']);
    }

    // Remove Images
    if($_SESSION['_options']['remove_images']) {
        
    $_r['content'] = preg_replace('#<img[^>]*>#si'''$_r['content']);
        
    $_r['content'] = preg_replace('#(\Wbackground(?:\-image|)?\s*:\s*?.*?)url\s*\(.*?\)(\s)*(;)?#Ssi''\\1none\\2\\3'$_r['content']);
    }

    // Out if it's CSS file
    if($_content_type[0] == 'text/css') {
        
    $_r['content'] = _rewrite_css($_r['content']);
        
    _out();
    }

    // Handle Options
    if($_SESSION['_options']['remove_title']) { // Remove Page Title
        
    $_r['content'] = preg_replace('#<title\s*>[^<]*</\s*title\s*>#si''<title></title>'$_r['content']);
    }
    $_scripts = array();
    if(
    $_SESSION['_options']['remove_scripts']) { // Remove scripts
        
    $_r['content'] = preg_replace('#<script[^>]*>.*?</\s*script\s*>#si'''$_r['content']);
        
    $_r['content'] = preg_replace('#\Won[a-z]+\s*=\s*(?:\"[^\"]*\"|\'[^\']*\'|[^\s\>]*)#si'''$_r['content']);
        
    $_r['content'] = preg_replace('#<noscript[^>]*>(.*?)</\s*noscript\s*>#si''\\1'$_r['content']);
    } else {
        
    // Handle scripts #1
        
    _rewrite_tags(array('script' => array('src')));
        
    preg_match_all('#<script[^>]*>.*?</\s*script\s*>#si'$_r['content'], $_scripts);
        
    $_scripts $_scripts[0];
        foreach(
    $_scripts as $_key => $_script) {
            
    $_scripts['@[email protected]@-script-' $_key '[email protected]@[email protected]'] = $_script;
            unset(
    $_scripts[$_key]);
        }
        
    $_r['content'] = str_replace($_scriptsarray_keys($_scripts), $_r['content']);
    }
    if(
    $_SESSION['_options']['remove_meta']) { // Remove meta tags
        
    $_r['content'] = preg_replace('#<meta[^>]*\bname\s*=\s*(?:\"[^\"]*\"|\'[^\']*\'|[^\s\>]*)[^>]*>#si'''$_r['content']);
    }

    // Rewrite URLs
    _rewrite_tags(array(
        
    'a' => array('href'),
        
    'img' => array('src''longdesc'),
        
    'image' => array('src''longdesc'),
        
    'body' => array('background'),
        
    'base' => array('href'),
        
    'frame' => array('src''longdesc'),
        
    'iframe' => array('src''longdesc'),
        
    'head' => array('profile'),
        
    'layer' => array('src'),
        
    'input' => array('src''usemap'),
        
    'form' => array('action'),
        
    'area' => array('href'),
        
    'link' => array('href''src''urn'),
        
    'meta' => array('content'),
        
    'param' => array('value'),
        
    'applet' => array('codebase''code''object''archive'),
        
    'object' => array('usermap''codebase''classid''archive''data'),
        
    'select' => array('src'),
        
    'hr' => array('src'),
        
    'table' => array('background'),
        
    'tr' => array('background'),
        
    'th' => array('background'),
        
    'td' => array('background'),
        
    'bgsound' => array('src'),
        
    'blockquote' => array('cite'),
        
    'del' => array('cite'),
        
    'embed' => array('src'),
        
    'fig' => array('src''imagemap'),
        
    'ilayer' => array('src'),
        
    'ins' => array('cite'),
        
    'note' => array('src'),
        
    'overlay' => array('src''imagemap'),
        
    'q' => array('cite'),
        
    'ul' => array('src')
    ));

    // Handle scripts #2
    if(!$_SESSION['_options']['remove_scripts']) {
        
    $_r['content'] = str_replace(array_keys($_scripts), $_scripts$_r['content']);
    }
    unset(
    $_scripts);

    // Rewrite Inline CSS
    $_r['content'] = preg_replace('#(<[a-z]+\s*[^>]*url\s*\([\'\"]?)(.*?)([\'\"]?\)[^>]*>)#Sesi''stripslashes("\\1") . _rewrite_url("\\2") . stripslashes("\\3")'$_r['content']);

    // Rewrite CSS
    if(preg_match_all('#<style[^>]*>.*?</\s*style\s*>#Ssi'$_r['content'], $_matches)) {
        
    $_newinx count($_matches);
        
    $_matches[$_newinx] = array();
        foreach(
    $_matches[0] as $_key => $_match) {
            
    $_matches[$_newinx][] = _rewrite_css($_match);
        }
        
    $_r['content'] = str_replace($_matches[0], $_matches[$_newinx], $_r['content']);
        unset(
    $_matches$_newinx$_key$_match);
    }

    // Include mini form
    if($_SESSION['_options']['include_form'] and (!isset($_GET['_x_fin_x_']) or $_GET['_x_fin_x_'] != '1')) {
        include 
    _THEME_DIR '/mini_form.php';
        
    $_r['content'] = preg_replace('#(<body(?:\s*[a-z]+\s*=\s*(?:\"[^\"]*\"|\'[^\']*\'|[^\s\>]*))*.*?>)#si''\\1' $_form$_r['content'], 1);
        
    //end of if
    }

    // Out proxified content
    _out();

    FUNCTIONS ON NEXT POST
     OS NOT ENOUGH ROOM ON THIS ONE
    ?>
    Really appreciate any help
    If you want to attract and keep more clients, then offer great customer support.

    Support-Focus.com. automates the process and gives you a trust seal to place on your website.
    I recommend that you at least take the 30 day free trial.

  • #2
    PHP Code:

    // Functions
    function _redirect($_url) {
        
    header('Location: ' $_url);
        exit;
    }

    function 
    _stripslashes($input) {
        return (
    is_array($input) ? array_map('_stripslashes'$input) : (is_string($input) ? stripslashes($input) : $input));
    }

    function 
    _strip_single_quotes($input) {
        return (
    is_array($input) ? array_map('_strip_single_quotes'$input) : (is_string($input) ? str_replace('\'\'''\''$input) : $input));
    }

    function 
    _number_format($_number$_num_dec_places 2) {
        global 
    $_config$_lang;
        
        return 
    number_format($_number$_num_dec_places$_lang['decimal_separator'], $_lang['thousands_separator']);
    }

    function 
    _report($_data = array()) {
        global 
    $_url$_lang$_config$_options$_frozen_options;
        
        if(!isset(
    $_data['url'])) $_data['url'] = $_url;
        
    $_data['url'] = htmlentities($_data['url'], ENT_QUOTES'UTF-8');
        require 
    _THEME_DIR '/main_form.php';
        exit;
    }

    function 
    _headerfunction(&$curl$header) {
        global 
    $_r;

        if(
    $_value explode(':'$header2) and count($_value) > 1) {
            
    $_value array_map('trim'$_value);
            if(
    $_value[0] == '' or $_value[1] == '') {
                unset(
    $_r['headers'][$_key]);
                continue;
            }

            
    $_value[0] = strtolower($_value[0]);
            switch(
    $_value[0]) {
                case 
    'location':
                    
    _redirect(_rewrite_url($_value[1]));
                break;

                case 
    'uri':
                case 
    'content-location':
                    
    $_value[1] = _rewrite_url($_value[1]);
                break;
                
                case 
    'p3p':
                    if(
    preg_match('#policyref\s*=\s*(\"[^\"]*\"|\'[^\']*\'|[^\s]*)#si'$_value[1], $_matches)) {
                        
    $_value[1] = str_replace($_matches[1], '"' _rewrite_url(trim($_matches[1], '"\'')) . '"'$_value[1]);
                    }
                break;
                
                case 
    'refresh':
                    if(
    preg_match('#(\s*\d+\s*;\s*url\s*=\s*)([^\"\'\s]*)#si'$_value[1], $_matches)) {
                        
    $_value[1] = str_replace($_matches[0], $_matches[1] . _rewrite_url($_matches[2]), $_value[1]);
                    }
                break;
            }
            
            if(isset(
    $_r['headers'][$_value[0]])) {
                
    $_r['headers'][$_value[0]][] = $_value[1];
            } else {
                
    $_r['headers'][$_value[0]] = array($_value[1]);
            }
        }

        return 
    strlen($header);
    }

    function 
    _out($_proxify true$_content_type '') {
        global 
    $_r$_url;

        
    $_nopass_headers = array('cookie''set-cookie''connection''keep-alive''transfer-encoding');
        
    $_r['headers']['content-length'] = array(strlen($_r['content']));
        if(!
    $_proxify and !isset($_r['headers']['content-disposition'])) $_r['headers']['content-disposition'] = array(($_content_type == 'application/octet_stream' 'attachment' 'inline') . '; filename="' basename($_url) . '"');
        foreach(
    $_r['headers'] as $_key => $_value) {
            if(
    in_array($_key$_nopass_headers)) continue;
            
    $_key ucwords($_key);
            foreach(
    $_value as $_k => $_v) {
                
    header("$_key$_v");
            }
        }

        
    session_write_close();
        echo 
    $_r['content'];
        exit;
    }

    function 
    _rewrite_css($_content) {
        return 
    preg_replace('#((?:import\s*url|import|url)\s*[\(\'\"]+)(.*?)([\'\"\)]+)#Sesi''stripslashes("\\1") . _rewrite_url("\\2") . stripslashes("\\3")'$_content);
    }

    function 
    _rewrite_tags($_tags) {
        global 
    $_url$_r$_config;

        if(
    preg_match_all('#<(' implode('|'array_keys($_tags)) . ')((?:\s*[a-z\-]+\s*=\s*(?:\"[^\"]*\"|\'[^\']*\'|[^\s\>]*)|\s*[a-z\-]+)+)+.*?>#si'$_r['content'], $_matches)) {
            
    $_newinx count($_matches);
            
    $_matches[$_newinx] = array();
            foreach(
    $_matches[0] as $_key => $_match) {
                
    $_tag strtolower($_matches[1][$_key]);
                if(!isset(
    $_tags[$_tag])) {
                    unset(
    $_matches[0][$_key], $_matches[1][$_key], $_matches[2][$_key]);
                    continue;
                }
                
    $get false;
                if(
    $_tag == 'form') {
                    
    $get = !preg_match('#method\s*=\s*(?:\"post\"|\'post\'|post)#si'$_matches[2][$_key]);
                }
                
    $_action '';
                
    $_pairs = array();
                if(
    preg_match_all('#\s*(' implode('|'$_tags[$_tag]) . ')\s*=\s*(\"[^\"]*\"|\'[^\']*\'|[^\s\>]*)#si'$_matches[2][$_key], $_ms)) {
                    foreach(
    $_ms[2] as $_k => $_m) {
                        
    $_wrapper '';
                        if(
    $_m{0} == '"' and $_m{strlen($_m) - 1} == '"') {
                            
    $_wrapper '"';
                            
    $_m trim($_m'"');
                        } else if(
    $_m{0} == '\'' and $_m{strlen($_m) - 1} == '\'') {
                            
    $_wrapper '\'';
                            
    $_m trim($_m'\'');
                        }
                        
                        
    $_attribute strtolower($_ms[1][$_k]);
                        
    //Process <meta http-equiv="refresh" content="00;URL=http://somewhere.com">
                        
    if($_tag == 'meta') {
                            if(
    $_attribute == 'content') {
                                if(
    $_refresh preg_match('#(\s*\d+\s*;\s*url\s*=\s*)([^\"\'\s]*)#si'$_m$_mh)) {
                                    
    $_m $_mh[1] . _rewrite_url($_mh[2]);
                                }
                            }
                        } elseif(
    $_tag == 'form' and $get and $_attribute == 'action') {
                            
    $_action _rewrite_url($_mfalse);
                            
    $_m '';
                        } elseif((
    $_tag == 'frame' or $_tag == 'iframe') and $_attribute == 'src') {
                            if(
    $_m == '') {
                                
    $_m _rewrite_url($_url) . '&_x_fin_x_=1';
                            } else {
                                
    $_m _rewrite_url($_m) . '&_x_fin_x_=1';
                            }
                        } else {
                            
    $_m _rewrite_url($_m);
                        }
                    }
                    
    $_pairs[] = ' ' $_ms[1][$_k] . '=' $_wrapper $_m $_wrapper;
                }
                
    $_matches[$_newinx][$_key] = str_replace($_ms[0], $_pairs$_matches[0][$_key]) . ($get '<input type="hidden" name="' $_config['url_var_name'] . '" value="' $_action '" />' '');
            }
            
    $_r['content'] = str_replace($_matches[0], $_matches[$_newinx], $_r['content']);
        }
        
    //end of if
    }

    function 
    _rewrite_url($_url$_proxify true) {
        global 
    $_base$_url_com$_config$_protocols;

        
    $_url trim($_url);
        if(
    $_url == '') return '';
        switch(
    strtolower($_url{0})) {
            case 
    '#':
                return 
    $_url;
            break;

            case 
    '?':
                
    $_url $_base['webpath'] . $_url;
            break;
            
            case 
    '/':
                if(
    substr($_url11) == '/') {
                    
    $_url $_base['scheme'] . '://' substr($_url2);
                    break;
                }
                
    $_url $_base['webroot'] . $_url;
            break;

            default:
                
    // Try to detect an another protocol
                
    $_inx strpos($_url'://');
                if(
    $_inx !== false and $_inx 0) {
                    
    $_prefix substr($_url0$_inx);
                    
    $_is_protocol = (preg_replace('#\W#i'''$_prefix) == $_prefix);
                    if(
    $_is_protocol) {
                        
    // If it's a supported protocol, break and proxify it, if not leave it intact.
                        
    if(in_array($_prefix$_protocols)) {
                            break;
                        } else {
                            return 
    $_url;
                        }
                    }
                }
                
    $_url $_base['webroot'] . _realpath($_base['path'], $_url);
        }

        
    $_url = ($_proxify ? ($_SERVER['SCRIPT_NAME'] . '?' $_config['url_var_name'] . '=') : '') . _encode_url($_url$_proxify) . ((isset($_url_com['fragment']) and $_proxify) ? ('#' $_url_com['fragment']) : '');

        return 
    $_url;
    }


    function 
    _realpath($_cwd$_cd) {
        
    $_cwd trim($_cwd'/');
        
    $_cwd_dirs = ($_cd and $_cd{0} == '/') ? array() : (($_cwd and $_cwd != '/') ? explode('/'$_cwd) : array());
        
    $_cd_dirs = ($_cd explode('/'$_cd) : array());
        
    $_last_dir array_pop($_cwd_dirs);
        if(
    $_last_dir and strpos($_last_dir'.') === false) {
            
    $_cwd_dirs[] = $_last_dir;
        }
        
    $_cd_len count($_cd_dirs);
        
    $_i 0;
        foreach(
    $_cd_dirs as $_cd_dir) {
            
    $_i++;
            if(
    $_cd_dir == '.' or $_cd_dir == '') {
                continue;
            } else if(
    $_cd_dir == '..') {
                
    array_pop($_cwd_dirs);
            } else {
                
    $_cwd_dirs[] = (strpos($_cd_dir'.') !== false and $_i == $_cd_len) ? $_cd_dir rawurlencode(rawurldecode($_cd_dir));
            }
        }

        return 
    '/' implode('/'$_cwd_dirs);
    }


    function 
    _encode_url($_url$_url_encode true) {
        return (
    $_url_encode rawurlencode(base64_encode($_url)) : base64_encode($_url));
    }


    function 
    _decode_url($_encoded_url) {
        return 
    base64_decode($_encoded_url);

    If you want to attract and keep more clients, then offer great customer support.

    Support-Focus.com. automates the process and gives you a trust seal to place on your website.
    I recommend that you at least take the 30 day free trial.

    Comment


    • #3
      Would really appreciate some help on this,

      Someone must have an idea as to why I can see
      the you tube vids by using this proxy script.

      please help if you can
      If you want to attract and keep more clients, then offer great customer support.

      Support-Focus.com. automates the process and gives you a trust seal to place on your website.
      I recommend that you at least take the 30 day free trial.

      Comment


      • #4
        Somebody suggested refreshing using F5 and
        refresh - I tried that, but I still get a black screen and the
        message:

        "We're sorry, this video is no longer available". on ALL videos

        Please try it at:

        www.blog-start.com

        just enter:www.youtube.com into the box and then pick a video.

        See if you can veiw one or not and then please let me know.

        Thanks.
        If you want to attract and keep more clients, then offer great customer support.

        Support-Focus.com. automates the process and gives you a trust seal to place on your website.
        I recommend that you at least take the 30 day free trial.

        Comment


        • #5
          There is couple of solutions but it depends for what you are going to implement that youtube proxy service. If you are doing all these stuff only for yourself then you need to use any good quality proxy service (like I have i even could give you trial to test it) or even better for you to use single IP proxy service with 2gb monthly traffic (I do not have such service but I could advice couple of other web sites).

          Since you ask that question in PHP forum I will give you couple of PHP solutions how to implement that for all turkey users. So you could have some web site where turkey users will be able to watch youtube vides (be ready that you will spend lots of traffic). In you situation I will do following: I will order one very cheap shared hosting in USA or EU (I guess good shared hosting with unlimited traffic will cost you 50 dollars per month in Denmark) and use it as proxy server, it is really easy how to extract FLV files and download them to your own server from which you can give links to other turkey users

          Just made a decision which method you are going to use and I am more than happy to advice you.

          Comment

          Working...
          X