ФорумПрограммированиеPHP для идиотов → Парсинг. Разбираем код.

Парсинг. Разбираем код.

  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 11:09, спустя 10 минут 3 секунды

    Скопировал класс DudeCurl, подключил его в коде:
    require_once('dudecurl.php');
    $curl = new DudeCurl('http://market.yandex.ru/');
    $html = $curl->exec();
    var_dump($html);


    Вот ругается
    Warning: fopen(/var/tmp/DudeCurl_headers_Fz12Dc) [function.fopen]: failed to open stream: Operation not permitted in /storage/home/srv11142/htdocs1/ya/dudecurl.php on line 205

    Warning: curl_setopt(): supplied argument is not a valid File-Handle resource in /storage/home/srv11142/htdocs1/ya/dudecurl.php on line 208

    Warning: fseek(): supplied argument is not a valid stream resource in /storage/home/srv11142/htdocs1/ya/dudecurl.php on line 404

    Warning: fgets(): supplied argument is not a valid stream resource in /storage/home/srv11142/htdocs1/ya/dudecurl.php on line 405


    Warning: feof(): supplied argument is not a valid stream resource in /storage/home/srv11142/htdocs1/ya/dudecurl.php on line 407
    string(0) ""
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 2 февраля 2010 г. 11:22, спустя 13 минут 8 секунд

    Николай_П, сейф мод … надо бы пофиксить это в курле :)

    сраный сейфмод)
    Сапожник без сапог
  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 11:27, спустя 5 минут 3 секунды

    В настройках моего хостинга стоит
    safe_mode Off Off
    safe_mode_exec_dir no value no value
    safe_mode_gid Off Off
    safe_mode_include_dir no value no value

    Я так понимаю причина в них. Можно это как-то изменить?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 2 февраля 2010 г. 11:42, спустя 14 минут 57 секунд

    Николай_П, а open_base_dir есть? )
    Сапожник без сапог
  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 11:43, спустя 1 минуту 32 секунды

  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 2 февраля 2010 г. 11:56, спустя 13 минут 7 секунд

    А как мне Class 'DudeCurl' подключить?

    [man]include_once[/man]
  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 12:00, спустя 3 минуты 20 секунд

    никакой разницы. выдает теже ошибки
  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 12:33, спустя 33 минуты 49 секунд

    Вот нашел реализацию на сайте.
    Здесь сама статья и исходник, только исходник у меня почему-то не пашет.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 2 февраля 2010 г. 12:42, спустя 8 минут 2 секунды

    open_basedir /tmp:/var/tmp:/usr/local/share/pear:/storage/home/srv11142
    curl_follow location работать не будет. поэтому самому придется понимать что такое http протокол и с чем его едят
    Сапожник без сапог
  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 15:09, спустя 2 часа 27 минут 16 секунд

    Метод обычной разборки ошибок с курлами не подходит, потому что практически всегда выдает пустое окно.
    Подскажите методы как можно обучиться курлам или как узнать правильно ли я двигаюсь или нет.
  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 17:15, спустя 2 часа 6 минут 23 секунды

    Постую последний раз, на случай если кому-то вроде меня вруг приглянется эта тема!

    Громное спасибо CTAPbIu_MABP-у приведенный им код работает!
    <?php 
    $user_cookie_file = $_SERVER['DOCUMENT_ROOT'].'/ya/cookies.txt';
    $url = 'http://market.yandex.ru/model.xml?hid=91491(8)modelid=4742402';

    $ch = curl_init($url);

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);

    curl_setopt($ch, CURLOPT_COOKIEFILE, $user_cookie_file);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $user_cookie_file);


    $html = curl_exec($ch);
    curl_close($ch);
    echo $html;
    ?>


    Все дело оказалось в хостинге. Я попробовал на другом сервере все сработало. Вот только какие настройки в деталях я не знаю.
    Я пробовал на ht-systems.ru - не сработало и
    на logol.ru - здесь все оказалось ок!

    phpdude был тоже близок к истине, за это ему тоже отдельный респект. Загвоздка оказалась во в этой строке:
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);

    Вот только с safe_mode он ошибся. На обоих хостах режимы настроены следующим образом:
    safe_mode Off Off
    safe_mode_exec_dir no value no value
    safe_mode_gid Off Off
    safe_mode_include_dir no value no value
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 2 февраля 2010 г. 17:21, спустя 5 минут 52 секунды

    Вот только с safe_mode он ошибся. На обоих хостах режимы настроены следующим образом:
    вот пиздеть не надо :)

    я не ошибаюсь. к safe_mode относится не только эти настройки, а еще open_basedir который у вас стоял.
    open_basedir /tmp:/var/tmp:/usr/local/share/pear:/storage/home/srv11142 no value

    а на втором хостинге просто не было запретов никаких, вот и заработал код мавра. на втором я 100% уверен заработает и dudecurl, хотя в идеале он будет более лоялен к хостингам (в будущем) и эти огрехи с safe_mode будет сам решать :)
    Сапожник без сапог
  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 17:31, спустя 10 минут 16 секунд

    Вот настройки с хостов.
    Directive Local Value Master Value
    open_basedir /tmp:/var/tmp:/usr/local/share/pear:/storage/home/srv11142 no value (ht-system)
    open_basedir no value no value (logol)


    уверен заработает и dudecurl

    Заработал ;) Скажи мне как поставить тебе + и я тебе его поставлю) я просто что-то не нашел как это делать и как редактировать посты.
    И Вообще не мог сразу доступно и понятно объяснить, а то втирали мне мозг целый день))))))))
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 2 февраля 2010 г. 17:47, спустя 16 минут 5 секунд

    Заработал ;) Скажи мне как поставить тебе + и я тебе его поставлю) я просто что-то не нашел как это делать и как редактировать посты.
    И Вообще не мог сразу доступно и понятно объяснить, а то втирали мне мозг целый день))))))))
    это все не для "проходимцев", если останешься, будешь и посты редактировать, и карму править. все что угодно :)
    Сапожник без сапог
  • Николай_П

    Сообщения: 74 Репутация: N Группа: Кто попало

    Spritz 2 февраля 2010 г. 17:58, спустя 10 минут 7 секунд

    ну, я в принципе так и подозревал)
    остаюсь!

Пожалуйста, авторизуйтесь, чтобы написать комментарий!