Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Считывание контента


Автор: RomanR 15.5.2008, 00:26
Есть сайт site_1.com   (Чисто условно)

Чтобы получить контент главной страницы сайта делаем, например, так:

$content = file_get_contents("http://site_1.com");

Теперь так. Вдруг site_1.com начал  перенаправлять вас(редирект) на произвольный site_N.com
Как в таком случае получить контент с site_N.com? Повторяю, site_N.com !!!

Проблема в том , что вы не знаете на какой сайт будет редирект.

Автор: masp 15.5.2008, 01:01
используй libcurl

Автор: RomanR 15.5.2008, 01:09
А с помощью file_get_contents() или через сокеты , невозможно?

Автор: Fortop 15.5.2008, 03:11
RomanR, через сокеты - можно.
через file_get_content - неполучится.

Автор: RomanR 15.5.2008, 10:02
Вы не могли бы привести пример.

Через сокеты у меня не выходит. Делаю так:

Код

function get_content($hostname, $path)  
{ 
    $line = ""; 
    $fp = fsockopen($hostname, 80, $errno, $errstr, 30); 
    if (!$fp) exit; 
    else 
    { 
        $headers = "GET $path HTTP/1.1\r\n"; 
        $headers .= "Host: $hostname\r\n"; 
        $headers .= "Connection: Close\r\n\r\n"; 
        fwrite($fp, $headers); 
        while (!feof($fp)) 
        { 
            $line .= fgets($fp, 1024); 
        } 
        fclose($fp); 
        return $line; 
    } 
} 

$source = get_content('www.site_1.com', '/index.php');

Автор: Feldmarschall 15.5.2008, 10:16
Я думаю, если тот сайт не хочет, чтобы его содержимое тягали без спросу, то врядли у автора топика что-то получится.
Если, конечно, не подтянутся высокоморальные доброхоты-специалисты

Автор: RomanR 15.5.2008, 10:38
Feldmarschall.  Я с Вами полностью согласен. 
Жизнь была бы проще, если бы была соблюдена элементарная "чистота" взаимоотношений между людьми. 
Но , все-таки, как реализовать подобную задачу?

Автор: Feldmarschall 15.5.2008, 10:41
Вот не надо только этого фарисейского "я полностью соглааасен".
Был бы согласен - не воровал бы

Автор: MoLeX 15.5.2008, 10:41
RomanR, а у тебя на хосте сокеты разрешены?

Автор: werdy 15.5.2008, 10:49
Может найти в полученном HTML фразу window.location и загрузить уже новую страницу.
Если она конечно скриптом перегрузилась.

Автор: RomanR 15.5.2008, 11:37

MoLeX
 Сокеты разрешены.

Добавлено @ 11:40
Feldmarschall . Я не хотел Вас обидеть. Простите. 

Автор: z-END 15.5.2008, 11:47
Цитата(masp @  15.5.2008,  02:01 Найти цитируемый пост)
используй libcurl

вот ответ, CURL позволяет работать с редиректами.

Автор: RomanR 15.5.2008, 11:54
ДА, нужно попробовать Curl. Может ,что и выйдет. Всем спасибо. 


M
MoLeX
Модератор: Давайте вернёмся к теме обсуждения, а не будем разводить философии кто и зачем помогает


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)