За последние 24 часа нас посетили 24548 программистов и 1648 роботов. Сейчас ищут 925 программистов ...

curl & api

Тема в разделе "PHP для новичков", создана пользователем iNEEdhLw, 7 май 2015.

  1. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    учусь работать с api и curl'ом )
    задача: получить информацию с помощью api (mediawiki) и разместить её у себя на сайте (да, для удобства пользователей, могу предоставить пруф)
    что у меня есть:
    1. запрос к api
    Код (PHP):
    1. sportwiki.to/api.php?action=query&titles=Аминокислоты&prop=revisions&rvprop=content&format=xml'
    2. инициация curl-запроса
    Код (PHP):
    1. $ch = curl_init('http://sportwiki.to/api.php?action=query&titles=Аминокислоты&prop=revisions&rvprop=content&format=xml');
    2. curl_exec($ch); // выполняем запрос curl
    3. curl_close($ch); 
    результат:
    вот и стоит вопрос: как можно избавиться от подобного поведения? может, неправильный api-запрос, хотя я, признаться, верю в него)?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  3. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    Re: curl, api:format и алгоритм

    [мысли_вслух]читал-читал, *ля. странно, хотя парсом я тоже пробовал....
    ладно, я получил содержимое страницы (спасибо), но вот как его теперь привести в нужный вид: без всяких ссылочек, картинок, "править" и т.п.
    парсить встроенными ф-ми пыха результат запроса, проверяя a, ol, img и т.п.?

    Добавлено спустя 15 минут 41 секунду:
    а, епт, это же ресурс, как я по нему пройдусь-то?
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: curl, api:format и алгоритм

    Вики не против копирования и распространения энциклопедической информации, они наоборот только за. Иначе бы и публичного API они просто не стали бы делать. Так что все ок.
     
  6. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    Re: curl, api:format и алгоритм

    так ведь она работает со строками, а у меня ресурс в $ch,- и преобразование ресурса в строку не имеет смысла.
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  8. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    я, конечно, предполагаю, что я рукожоп, но я это ранее уже пробовал и вышло следующее:
    Код (PHP):
    1. $ch = curl_init('http://sportwiki.to/api.php?action=parse&page=Аминокислоты&format=txt'); //resource-type
    2.  //resource-type
    3.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    4.  curl_exec($ch);// выполняем запрос curl
    5. var_dump($ch);
    6. echo $ch; 
    Добавлено спустя 2 минуты 34 секунды:
    т.е. это опять приводит к строке, с которой я нечего не могу сделать.
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Возвращаемые значения mixed curl_exec ( resource $ch )
    Код (PHP):
    1. function mult($a) { return $a*$a; }
    2. $result = m(10); 
     
  10. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    Re: curl, api:format и алгоритм

    спасибо, получилось. буду теперь подгонять в необходимый вид.
     
  11. iNEEdhLw

    iNEEdhLw Новичок

    С нами с:
    22 окт 2014
    Сообщения:
    414
    Симпатии:
    0
    наткнулся на след. препятствие: на странице, которую я парсю(?), находится, походу, редирект.
    почитал, что необходимо указать сетопт курлу:
    Код (PHP):
    1. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    , однако теперь проблема в open_basedir (xz, chto eto)
    почитал, что необходимо выключить эту директиву, но хостинг не предоставляет доступа к php.ini.
    решил сделать это "вручную", через иде-шку, но результата не дало:
    Код (PHP):
    1. ini_set('open_basedir', FALSE);
    2.  
    есть идеи, что можно сделать?
    з.ы. обидно, осталась последняя страница )
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв