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

Статус
В этой теме нельзя размещать новые ответы.

ivashka

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

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

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

Заранее благодарен.
 
как вариант открывать сокет соединение..парсить страницу удалять что не нужно отдавать пользователю..когда запрос к тому серваку так же... тока запрос пральна составлять... копайте в сторону обмена запросами апач-пользователь.
 
можешь использовать курл, сформировать скриптом запрос для поиска в гугле, отправляешь его гуглу и получаешь результат и выводишь его своим скриптом, и все дела
 
Для того чтобы просто отобразил
Код:
<?
$fileContent = file_get_contents("http://google.com/");
echo $fileContent;
?>

А вот для того чтобы еще и работал, нужен скрипт прокси, который будет делать тоже самое что в примере, только все линки которые есть в переменной $fileContent менять на вида:
сайт.ру/proxy.php?Для просмотра ссылки Войди или Зарегистрируйся
 
А вот для того чтобы еще и работал, нужен скрипт прокси, который будет делать тоже самое что в примере, только все линки которые есть в переменной $fileContent менять на вида:
сайт.ру/proxy.php?Для просмотра ссылки Войди или Зарегистрируйся
что-то в этом духе

Вот сам скрипт прокси, чтобы было где посмотреть реализацию:
 
PHP:
<base href="http://google.ru" />
<?php
$fp = fopen("http://google.ru", "r");
while(!feof($fp)) {
    echo fread($fp, 1);
}
fclose($fp);
?>

Код:
<html>
<head>
</head>
<body style="margin: 0;">
<iframe src="http://google.ru" width=100% height=100%></iframe>
</body>
</html>
 
  • Заблокирован
  • #8
- сам использую этот анонимайзер.

А так как уже говорили использую curl или file_get_contents - только эта функция у большинства хостеров отключена (мб я такой невезучий?)
 
Можно также осуществить через класс HttpClient, использованием header запросов.. это даж гораздо легче и для тебя и для сервера, так что юзай поиск ;-)
 
file_get_contents как-раз включен часто. Проблемы начинаются когда тебе нужна поддержка переадресации. Опцию CURLOPT_FOLLOWLOCATION можно включить только если не задан open_basepath, а такое на шаред хостингах встречается очень редко, и менять вряд ли кто-то будет.

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

PHP:
function request($url, $cookiename = "cv", $proxy = null, $post = null){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_COOKIEJAR, "YOUR_PATH/".$cookiename.".txt");
    curl_setopt($ch, CURLOPT_FAILONERROR, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_AUTOREFERER, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    if ($proxy){
        curl_setopt($ch, CURLOPT_PROXY, $proxy);
    }
    if ($post){
        curl_setopt($ch, CURLOPT_POST, 1); // set POST method
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // add POST fields
    }
    curl_setopt($ch, CURLOPT_COOKIEFILE, "YOUR_PATH/".$cookiename.".txt");
    $html = curl_exec($ch);
    curl_close($ch);
    return $html;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху