отобразить другой сайт

Тема в разделе "PHP", создана пользователем ivashka, 2 дек 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. ivashka

    ivashka

    Регистр.:
    16 май 2007
    Сообщения:
    151
    Симпатии:
    15
    Как можно отображать другой сайт php скриптом, тоесть, есть у меня сайт mysite.ru как мне на нем сделать так, что бы отображался google.com?
    Но не только отображался но и работал, допустим на mysite.ru задаю в поиск что-то и мне выдает результаты, что бы нельзя было отличить.

    фреймы не подойдут, т.к. запрос к google.com должен идти не от пользователя, а от сервера mysite.ru.

    П.С. google.com - только как пример, делать буду не для него...

    Заранее благодарен.
     
  2. Deller

    Deller Создатель

    Регистр.:
    24 фев 2008
    Сообщения:
    34
    Симпатии:
    16
    как вариант открывать сокет соединение..парсить страницу удалять что не нужно отдавать пользователю..когда запрос к тому серваку так же... тока запрос пральна составлять... копайте в сторону обмена запросами апач-пользователь.
     
  3. pslava

    pslava

    Регистр.:
    16 май 2007
    Сообщения:
    618
    Симпатии:
    122
    можешь использовать курл, сформировать скриптом запрос для поиска в гугле, отправляешь его гуглу и получаешь результат и выводишь его своим скриптом, и все дела
     
  4. boyzer

    boyzer Постоялец

    Регистр.:
    31 янв 2008
    Сообщения:
    121
    Симпатии:
    27
    Для того чтобы просто отобразил
    Код:
    <?
    $fileContent = file_get_contents("http://google.com/");
    echo $fileContent;
    ?>
    
    А вот для того чтобы еще и работал, нужен скрипт прокси, который будет делать тоже самое что в примере, только все линки которые есть в переменной $fileContent менять на вида:
    сайт.ру/proxy.php?http://google.com/sdfsdfsdf/sdfsdf.html
     
  5. pslava

    pslava

    Регистр.:
    16 май 2007
    Сообщения:
    618
    Симпатии:
    122
    Вот сам скрипт прокси, чтобы было где посмотреть реализацию:http://rapidshare.com/files/169457125/proxy_15.zip.html
     
    ivashka нравится это.
  6. SoulJas

    SoulJas Прохожие

    PHP:
    <base href="http://google.ru" />
    <?php
    $fp 
    fopen("http://google.ru""r");
    while(!
    feof($fp)) {
        echo 
    fread($fp1);
    }
    fclose($fp);
    ?>
    Код:
    <html>
    <head>
    </head>
    <body style="margin: 0;">
    <iframe src="http://google.ru" width=100% height=100%></iframe>
    </body>
    </html>
     
  7. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    Как понял, тебе нужен обычный анонимайзер.
    Вот несколько http://www.proxer.ru/proxy.php

     
    xIcemanx нравится это.
  8. bra1n

    bra1n Читатель

    Заблокирован
    Регистр.:
    27 авг 2008
    Сообщения:
    8
    Симпатии:
    0
    http://sourceforge.net/projects/poxy/ - сам использую этот анонимайзер.

    А так как уже говорили использую curl или file_get_contents - только эта функция у большинства хостеров отключена (мб я такой невезучий?)
     
  9. zmiuko

    zmiuko Создатель

    Регистр.:
    7 ноя 2008
    Сообщения:
    32
    Симпатии:
    1
    Можно также осуществить через класс HttpClient, использованием header запросов.. это даж гораздо легче и для тебя и для сервера, так что юзай поиск ;-)
     
  10. Nexus7_

    Nexus7_ Писатель

    Регистр.:
    28 май 2008
    Сообщения:
    5
    Симпатии:
    0
    file_get_contents как-раз включен часто. Проблемы начинаются когда тебе нужна поддержка переадресации. Опцию CURLOPT_FOLLOWLOCATION можно включить только если не задан open_basepath, а такое на шаред хостингах встречается очень редко, и менять вряд ли кто-то будет.

    Вот ф-ция которая передает пост, может юзать проксю, если нужно, принимает и сохраняет куки - т.е. можно авторизироваться и распарсить нужную страницу через прокси:

    PHP:
    function request($url$cookiename "cv"$proxy null$post null){
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_USERAGENT"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
        
    curl_setopt($chCURLOPT_URL$url);
        
    curl_setopt($chCURLOPT_COOKIEJAR"YOUR_PATH/".$cookiename.".txt");
        
    curl_setopt($chCURLOPT_FAILONERRORtrue);
        
    curl_setopt($chCURLOPT_FOLLOWLOCATIONtrue);
        
    curl_setopt($chCURLOPT_AUTOREFERERtrue);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER,true);
        
    curl_setopt($chCURLOPT_TIMEOUT60);
        if (
    $proxy){
            
    curl_setopt($chCURLOPT_PROXY$proxy);
        }
        if (
    $post){
            
    curl_setopt($chCURLOPT_POST1); // set POST method
            
    curl_setopt($chCURLOPT_POSTFIELDS$post); // add POST fields
        
    }
        
    curl_setopt($chCURLOPT_COOKIEFILE"YOUR_PATH/".$cookiename.".txt");
        
    $html curl_exec($ch);
        
    curl_close($ch);
        return 
    $html;
    }
     
Статус темы:
Закрыта.