За последние 24 часа нас посетили 59734 программиста и 1852 робота. Сейчас ищут 1056 программистов ...

XML запрос к xml.yandex.ru

Тема в разделе "Прочие вопросы по PHP", создана пользователем Kaner, 30 ноя 2011.

  1. Kaner

    Kaner Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    58
    Симпатии:
    0
    Подскажите пожалуйста в чем ошибка.

    Судя по всему я не так чтоли амперсант заменяю в ссылке.

    Ошибка выдается следующая:Отсутствует необходимый параметр запроса: 'key'

    PHP:
    1.  
    2. <div id="main">
    3. <?
    4. $zapr='<?xml version="1.0" encoding="UTF-8"?>  
    5. <request>  
    6.     <query>yandex</query>
    7.     <groupings>
    8.         <groupby attr="d" mode="deep" groups-on-page="10"  docs-in-group="1" />    
    9.     </groupings>    
    10. </request>';
    11.  
    12. 'http' => array(
    13. 'method'=>"POST",
    14. 'header'=>"Content-type: application/xmlrn Content-length:".strlen($zapr),
    15. 'content'=>$zapr
    16. )
    17. ));
    18.  
    19. $link="http://xmlsearch.yandex.ru/xmlsearch?user=user-t&key=03.134584861:bfd085b732a16b5b86a777cdbeffe30c";
    20. $link=str_replace("&","&amp;",$link);
    21.  
    22. $response = file_get_contents($link, true, $context);
    23.  
    24. $xmldoc = new SimpleXMLElement($response);
    25.  
    26. $t=$xmldoc->response->error;
    27.  
    28. $str = mb_convert_encoding($t,'windows-1251','UTF-8');
    29.  
    30. echo ($str);
    31.  
    32. }
    33.  
    34. ?>
    35. </div>
    36.  
    37.  
    38.  
     
  2. Kaner

    Kaner Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    58
    Симпатии:
    0
    Ну смотрите ошибка где-то здесь:

    PHP:
    1.  $link="http://xmlsearch.yandex.ru/xmlsearch?user=user-t&key=03.134584861:bfd085b732a16b5b86a777cdbeffe30c";
    2.  $link=str_replace("&","&amp;",$link);
    ПОтому что если я не заменяю амперсант на &amp; то выводится ошибка:

    А если заменяю то пишет :
    Причем если в ссылке я в начале укажу ключ а потом юзера,то тоже самое про юзера будет писать.

    Видимо ошибка в замене амперсанта,в документации яндекса пишут:
    Хотя это пишут для метода GET, думаю для POST тоже самое.

    Какие у кого мысли?
     
  3. alexfer

    alexfer Активный пользователь

    С нами с:
    2 авг 2010
    Сообщения:
    239
    Симпатии:
    0
    что это?
     
  4. Kaner

    Kaner Активный пользователь

    С нами с:
    6 янв 2011
    Сообщения:
    58
    Симпатии:
    0
    Это я брал с какого-то сайта...возможно в этом и была ошибка,но я просто переделал в get запрос без всяких stream_context_create.