форум vBSupport.ru > Камчатка > Pocket PC vBulletin.net.ru
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
SMak044
Эксперт
 
SMak044's Avatar
Unhappy Не могу корректно импортировать Google News
0

У меня возникла проблема.
Дело в том, что я использовал поиск по новостям и публиковал результаты в новостном разделе форума. Поиск в новостях был в виде RSS ленты с Google News.
Все работало нормально, но гдето месяца 2 назад в Google, что то поменяли и Вобла перестала нормально отображать новости. Что то стало с кодировками при парсинге.

В общем вид стал таким:
Click image for larger version

Name:	rss_parse_error_01.JPG
Views:	35
Size:	97.9 KB
ID:	18363

Я прочел, что гуглы перешли на UTF-8
Установил воблу с UTF-8 руссификацию с тойже кодировкой.
Сделал новую базу в utf-8 и естественно установил все кодировки в сетах mysql тоже в utf-8.

Но проблема не ушла.

Скриншот сделан с последней установки 3.8.3 где все в UTF-8.

Подскажите, где копать и в чем проблема.
Может кто сталкивался с этим.

Прикладываю еще один скрин с администратора воблы. Так выглядит превью:
Click image for larger version

Name:	rss_parse_error_02.JPG
Views:	23
Size:	89.1 KB
ID:	18364

А вот реальный линк на Гугл Ньюс - Поиск "Укртелеком" Именно он в скринах.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

Забыл добавить в различных ридерах и агрегаторах линк на ленту работает замечательно и проблем с кодировками не возникает все в utf-8
 
 
kerk
k0t
 
kerk's Avatar
Default
1

посмотри заголовки из исходника данной тобой ссылки и страницы, сгенеренной движком форума
твоя ссылка:
Code:
<rss version="2.0"><channel>.....
двиг форума:
Code:
<?xml version="1.0" encoding="UTF-8"?>....
разницу видишь?
в твоей не указана кодировка, только язык <language>ru</language>
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

Ну это я заметил. Но я же Гугл не могу поправить, это ево движок такой xml генери. хотя результат выдает честно в utf

По поводу версий... Еще один вопрос. Есть ли какой патч или настройка, которые позволяют увеличить версию xml до 2. Понимаю, что просто вставить не получится, так как вопрос соответствия стандарту и парсинг.

Может кто сталкивался с таким хаком или модом.

Но в любом случае спасибо. Если что накопаю, то сюда выложу.

SMak044 добавил 30.08.2009 в 14:02
Поправка предыдущего поста.
Двиг форума генерит следующее
Code:
<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
А Гугл
Code:
<rss version="2.0">
        <channel>
То есть все проблема в строке
Code:
<?xml version="1.0" encoding="UTF-8"?>
Ну и в наличии ссылок на спецификации.

Путей как побороть не вижу :( попробую писать в Гугл.

SMak044 добавил 30.08.2009 в 14:30
В гугл проблему отправил

SMak044 добавил 30.08.2009 в 15:07
Вот что я нашел в файле \includes\class_xml.php

PHP Code:
    /**
    * Handle encoding issues as well as parsing the XML into an array
    *
    * @return    boolean    Success
    */
    function parse_xml()
    {
        global $stylevar;

        // in here we should do conversion from the input to the output.
        if (preg_match('#(<?xml.*encoding=[\'"])(.*?)([\'"].*?>)#m'$this->xmldata$match))
        {
            
$in_encoding strtoupper($match[2]);
            if (
$in_encoding == 'ISO-8859-1')
            {
                
// browsers treat the encodings like this, so we need iconv to do so as well
                
$in_encoding 'WINDOWS-1252';
            }

            if (
PHP_VERSION >= '5' AND ($in_encoding != 'UTF-8' OR strtoupper($stylevar['charset']) != 'UTF-8'))
            {
                
// this is necessary in PHP5 when try to output a non-support encoding
                
$this->xmldata str_replace($match[0], "$match[1]ISO-8859-1$match[3]"$this->xmldata);
            }
        }
        else
        {
            
$in_encoding 'UTF-8';

            if (
PHP_VERSION >= '5')
            {
                if (
strpos($this->xmldata'<?xml') === false)
                {
                    
// this is necessary if there's no XML tag, as PHP5 doesn't know what character set it's in,
                    // so special characters die
                    
$this->xmldata '<?xml version="1.0" encoding="ISO-8859-1"?>' "\n" $this->xmldata;
                }
                else
                {
                    
// xml tag doesn't have an encoding, which is bad
                    
$this->xmldata preg_replace(
                        
'#(<?xml.*)(\?>)#',
                        
'\\1 encoding="ISO-8859-1" \\2',
                        
$this->xmldata
                    
);
                }

                
$in_encoding 'ISO-8859-1';
            }
        }

        
$orig_string $this->xmldata;

        
// this is the current user if its the admincp or the guest session for cron
        // should we stick with this or query the DB for the default language?
        
$target_encoding = (strtolower($stylevar['charset']) == 'iso-8859-1' 'WINDOWS-1252' $stylevar['charset']);
        
$xml_encoding = (($in_encoding != 'UTF-8' OR strtoupper($stylevar['charset']) != 'UTF-8') ? 'ISO-8859-1' 'UTF-8');
        
$iconv_passed false;

        if (
strtoupper($in_encoding) !== strtoupper($target_encoding))
        {
            
// now we need to deal with those unknown character sets, meep!
            
if (function_exists('iconv') AND $encoded_data iconv($in_encoding$target_encoding '//TRANSLIT'$this->xmldata))
            {
                
$iconv_passed true;
                
$this->xmldata =& $encoded_data;
            }

            if (!
$iconv_passed AND function_exists('mb_convert_encoding') AND $encoded_data = @mb_convert_encoding($this->xmldata$target_encoding$in_encoding))
            {
                
$this->xmldata =& $encoded_data;
            }
        }

        if (
$this->parse($xml_encoding))
        {
            return 
true;
        }
        else if (
$iconv_passed AND $this->xmldata iconv($in_encoding$target_encoding '//IGNORE'$orig_string))
        {
            
// this is probably happening because iconv is chopping off the string for some reason.
            // However, when //TRANSLIT fails, //IGNORE still sometimes works, so try that.
            
if ($this->parse($xml_encoding))
            {
                return 
true;
            }
            else
            {
                return 
false;
            }
        }
        else
        {
            return 
false;
        }
    }
Думаю, что проблему можно разрешить корректировкой в этой функции.
К сожелению я не очень большой спец в программировании... Типа читать могу, но писать не очень ;)
Поправте если я не прав.

Last edited by SMak044 : 08-30-2009 at 03:07 PM. Reason: Добавлено сообщение
 
 
SMak044
Эксперт
 
SMak044's Avatar
Default
0

Ну в общем проблему прямого импорта ньюсов из Гуггла в булку я не решил и Гугл ни слова в ответ.
Все поиски в нете не дали ничего конкретного.
Если бы я сам был гуру в пхп, то наверно бы нашел где сделать поправки в парсере. Например в проверку в случае отсутствия нужного заголовка....

Но как решить вопрос я все же нашел способ ;)
Не поверите в том же Гугле..... Фидбарнер мне помог.
Я просто создал ленту там и сказал что источник Гугл ньюс ;)
И о чудо!!!!!! Булка начала принимать rss нормально.

Конечно это изврат, но.....

В общем тему можно закрывать ;)
Всем кто пытался помочь СПАСИБО!
 

Tags
encoding, google, news, rss, utf-8


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 05:01 AM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.