Тут вот задачка возникла, нужно создать механизм автоматического создания темы на форуме для обсуждения новости... Может есть где примеры или готовые скрипты???
Заранее благодарен за помощь.
Эээх, чем мне помочь? Может я покуваряю твоё, а ты посмотришь этот продуктик?
Код:
/**
* Project: MagpieRSS: a simple RSS integration tool
* File: rss_parse.inc - parse an RSS or Atom feed
* return as a simple object.
*
* Handles RSS 0.9x, RSS 2.0, RSS 1.0, and Atom 0.3
*
* The lastest version of MagpieRSS can be obtained from:
* http://magpierss.sourceforge.net
*
* For questions, help, comments, discussion, etc., please join the
* Magpie mailing list:
* magpierss-general@lists.sourceforge.net
*
* @author Kellan Elliott-McCrea <kellan@protest.net>
* @version 0.7a
* @license GPL
*
*/
define('RSS', 'RSS');
define('ATOM', 'Atom');
require_once (MAGPIE_DIR . 'rss_utils.inc');
/**
* Hybrid parser, and object, takes RSS as a string and returns a simple object.
*
* see: rss_fetch.inc for a simpler interface with integrated caching support
*
*/
class MagpieRSS {
var $parser;
var $current_item = array(); // item currently being parsed
var $items = array(); // collection of parsed items
var $channel = array(); // hash of channel fields
var $textinput = array();
var $image = array();
var $feed_type;
var $feed_version;
var $encoding = ''; // output encoding of parsed rss
var $_source_encoding = ''; // only set if we have to parse xml prolog
var $ERROR = "";
var $WARNING = "";
// define some constants
Я так понимаю, MagpieRSS писали для всех желающих, и все (желающие) пользуются. Только иногда руки кривые. (ч аот всё не расправлю никак)
Пробовал менять эти переменные,
var $encoding = ''; // output encoding of parsed rss
var $_source_encoding = ''; // only set if we have to parse xml prolog
никаких сдвигов =(
2ALL: Кто-нибудь победил сиё чудо?
Мне бы не помешал такой бот на форуме. Не вручную тырить с новостных лент, а "нанять на работу" виртуального аникейщика =)
Ссерьёзно, помогите, ведь, я думаю, там всё решаемо двумя, тремя строчками, примерно так-же, как с чатом в зверюшках. Достаточно было добавить две строчки кода и вот оно: СЧАСТИЕ!!!
Вот тут (_http_://www.vbulletin.org/forum/showthread.php?t=100269) автор говорит, что у него чивойта не вышло победить ПХП.
Цитата:
Originally Posted by Anatole
Have charset problems with ArticleBot.
My RSS feed is coming in windows-1251 (Russian Cyr) encoding, and when ArticleBot makes new posting it converts in to ?????????? ???????????
Example: http://forum.max.ru/showthread.php?t=6
________________________________________________________
That's a PHP limitation. MagpieRSS claims to work around that if you have certain things compiled in PHP. However, I have them all compiled and it doesn't work for me.
вот нашел какое то решение проблемы
так как сам не программер, прошу знающих объяснить кууда вставлять описанные ниже автором переменные и функции применительно к Article Bot'у источник
Цитата:
webdev | Кодировка в Magpie
Потратил больше 4х часов на изучения проблемы кодировок в РНР. Как же там криво это построено.
Проблема заключалась в том, что движок Magpie скачивает rss-ленты в одной кодировке, и должен представлять их в другой. В нём даже специальные механизмы для этого есть. Только они не работают.
Покопавшись внутри движка выяснилось, что там приличное количества кода как раз для исправления проблем с кодировками. Все входные потоки, не попавшиеся в «счастливую тройку» поддерживаемых кодировок РНР ( UTF-8, US-ASCII, ISO-8859-1), конвертируются в UTF-8, иначе будут работать не правильно. Затем предпринимается (где-то) попытка конвертировать обратно в нужную кодировку, а именно в windows-1251.Но всё это не работает. Пытался воздествовать на страничку с помощью апача. В .htaccess можно прописать:
AddDefaultCharset windows-1251
<IfModule mod_charset.c>
CharsetRecodeMultipartForms Off
CharsetSourceEnc windows-1251
</IfModule>
Что сделает основной кодировкой windows-1251. Не помогло. Можно было обработать входной массив XML-данных самостоятельно используя iconv(), что обнулировалось бы из-за поголовного перевода Magpie входных потоков в UTF-8. Обрабатывать выходной многоветковый массив я не стал ввиду непредсказуемого вывода.
Я сделал проще. Все строки в РНР – это символы. А представлением символов в выходные потоки занимаются encoding, правильнее их называть кодеками. Эти кодеки в РНР можно переопределить:
iconv_set_encoding("input_encoding", "UTF-8");
iconv_set_encoding("internal_encoding", "UTF-8");
iconv_set_encoding("output_encoding", "windows-1251");
Это input_encoding, internal_encoding, output_encoding. Затем можно захватить весь вывод на экран специальной функцией (в самом начале документа)
ob_start("ob_iconv_handler"); // start output buffering
Она преобразует весь выходной поток на экран из внутреннего представления (internal_encoding) в конечное (output_encoding). Т.е. из UTF-8 в windows-1251.
В конец документа (даже после работой с smarty) добавляем строчку:
ob_end_flush();
и вывод в нужной кодировке. Аминь, танцуем.