Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение данных со сторонней страницы. 
:(
    Опции темы
KoLiZeI
Дата 15.8.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



заголовок получил номральный 
HTTP/1.1 302 Moved Temporarily Date: Fri, 15 Aug 2008 09:36:47 GMT Server: 0W/0.7p Content-Type: text/html; charset=iso-8859-1 Location: http://demonscity.combats.com/inf.pl?login=ротшильд Content-Length: 231 HTTP/1.1 200 OK Date: Fri, 15 Aug 2008 09:36:47 GMT Server: 0W/0.8b Content-Type: text/html; charset=windows-1251 Content-Encoding: gzip Content-Length: 5045 Expires: Wed, 15 Aug 2007 20:00:00 GMT Pragma: no-cache Cache-control: no-cache pragma: no-cache cache-control: no-cache, 
а вот дальше все иероглифами выводит, как можно перекодировать? iconv не помогает
PM MAIL WWW ICQ Skype   Вверх
KoLiZeI
Дата 15.8.2008, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Как я понял, всё иероглифами выводиться потомучто содержимое сжато gzip?

И ещё появилась проблема, на сервере где должен работать скрипт вылезла ошибка 
Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set,
хотя тами:  open_basedir     - no value и safe_mode    Off    Off
в чем проблема? нашёл что можно переписать скрипт без followlocation, например, выдергивая из заголовка ответа нужные кукисы и новый location, токак как это сделать?
PM MAIL WWW ICQ Skype   Вверх
Anarki
Дата 15.8.2008, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 7
Всего: 11



Столько ошибок в коде, советую покурить php.net/curl_setopt .
gzip можно раскодировать через враппер или функцию zlib http://php.net/gzdecode

Добавлено @ 18:07
Цитата(KoLiZeI @  15.8.2008,  18:45 Найти цитируемый пост)
хотя тами:  open_basedir     - no value и safe_mode    Off    Off

Код

<?php
var_dump(ini_get('open_basedir'));
echo "<br />\n";
var_dump(ini_get('safe_mode'));


Это сообщение отредактировал(а) Anarki - 15.8.2008, 18:08


--------------------
PM WWW   Вверх
solenko
Дата 15.8.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 34
Всего: 67



А можно не заморачиватся с раскодированием gzip и просто прикинутся старым браузером и послать header, что ты Gzip не поддерживаш 


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Anarki
Дата 15.8.2008, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 7
Всего: 11



solenko, только это если сайт "умный". Может он всегда в gzip'е отдает.


--------------------
PM WWW   Вверх
KoLiZeI
Дата 15.8.2008, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



прикинутсья старым не получается и Zlib там тоже не стоит (
PM MAIL WWW ICQ Skype   Вверх
smartov
Дата 15.8.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 7
Всего: 259



KoLiZeI, 
Requirements: PHP5

Вроде работает. Правда пришлось через файл, т.к. gzuncompress дюже тупит.

Код

<?php

class CombatPlayer {

    protected $error = '';
    protected $tmpfile = 'tmpfile';

    public function __construct() {
        $this->error = '';
    }

    public function grabContent($url, &$content) {

        $urlcontent = @file_get_contents($url, 'r');
        if (!$urlcontent) {
            return $this->setError('Could not open url.');
        }
        
        if (($bytes = file_put_contents($this->tmpfile, $urlcontent)) == 0) {
            return $this->setError('Could not write to file.');
        }

        $gz = @gzopen($this->tmpfile, 'r');
        if (!$gz) {
            return $this->setError('Could not open file.');
        }
        $buf = '';
        while (!feof($gz)) {
            $buf .= gzread($gz, 1024);
        }
        gzclose($gz);
        
        $content = $buf;
        return true;
    }
    
    /*** Error handling ***/
    
    protected function setError($message = '') {
        $this->error = $message;
        return false;
    }

    public function getError() {
        return $this->error;
    }

    public function isError() {
        return $this->error != '';
    }

}


$player = new CombatPlayer();
if ($player->grabContent('http://dreamscity.combats.com/inf.pl?login=ротшильд', $content)) {
    echo sprintf('<html><body><textarea style="width:800px;height:500px">%s</textarea></body></html>', $content);
} else {
    echo $player->getError();
}


Добавлено через 3 минуты и 29 секунд
Цитата(KoLiZeI @  15.8.2008,  19:40 Найти цитируемый пост)
Zlib там тоже не стоит

Эээ... мдя. Это грустно.

Добавлено через 4 минуты и 59 секунд
KoLiZeI, а разрешен exec или system?

Добавлено через 5 минут и 15 секунд
Можно ж воспользоваться стандартным утилем gunzip
PM MAIL   Вверх
KoLiZeI
Дата 15.8.2008, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 88
Регистрация: 6.4.2007
Где: г. Саратов

Репутация: нет
Всего: нет



Всё разобрался, извините за тупость ) и спасибо за помощь!
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0632 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.