Доступ к Rss-каналу закрыт паролем
Нюкеры! Кто сталкивался с проблемой доступа к каналу новостей (RSS), если страница с xml-файлом требует ввода логина и пароля? Судя по всему, для решения проблемы нужно использовать библиотеку CURL. Поделитесь опытом или может быть скриптом, который передаст серверу логин/пароль.
|
veland ну можно и curl и через fsockopen, это все зависит как он требует ввод пароля?
попытайтесь сначало самым простым способом, добавить логин и пароли в строку запроса rss, т.е. скажем файл rss доступин по адресу http://site.ru/rss.php? то с паролем будет выглядить так: http://login:pass@site.ru/rss.php обычно это помогает. |
Всё получается, если попробовать зайти таким образом через броузер, но в функции headlines() используется доступ к rss-файлу через открытие сокета. Вопрос как передать пароль/логин не сильно изменяя саму функцию. Хотя подозреваю, что просто не получится - fsockopen() не допускает имя хоста, перед которым указаны логин/пароль. Есть ли выход? Мне это надо для доступа к новостям Консультант+, а тамошние программеры, не понятно по какой причине, закрыли эту страницу.
|
veland ну можите в принципе узнать у тамошних админов, почему закри, может откроют, или же у них уже есть скрипт для импорта.
а так можите почитать http://ru.php.net/manual/ru/function.fsockopen.php там в коментариях даны пару вариантов передачи пароля, но не факт что сработает, тогда придется воспользоваться CURL |
Поковырялся вчера вечером и переделал немного функцию headlines() - сделал новый блок, вместо сокета использовал передачу по HTTP, в принципе блок получился индивидуальным именно для этого RSS-канала, но при необходимости можно и доработать, чтобы при создании нового блока в админе указывать логин/пароль. Если есть интерес, могу выложить блок сюда. А пример его работы можно посмотреть здесь: http://www.kazakevich.ru/index.php - сайт в процессе строительства, блок называется "Rss-канал от Консультант Плюс"
|
Вот, как обещал, блок для доступа к rss-каналу, закрытому паролем:
Код:
Учтите, что строка $file_name = strip_tags(trim(substr($content[$lencontent-5],43,$pos-11))); индивидуальна для конкретного сайта Консультант+, и для другого сайта её, возможно, придётся изменить. |
veland вот именно так и надо было поступить, это самый простой вариант :)
|
Часовой пояс GMT +4, время: 01:00. |
Copyright © 2005 by Soniks