Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Как правильно записать данные в базу DLE?

Как правильно записать данные в базу DLE?


     13.11.2016    Все вопросы » MySQL    1548

вопрос
Здравствуйте. Пишу простой парсер, столкнулся с такой проблемой. Если у сайта, с которого идет парсинг, кодировка utf-8 то данные успешно записывает в бд.

Но если у сайта кодировка windows-1251 то в таблице в short_story и full_story ничего не записывается.

Вот таким образом, добавляю данные в базу:

$short_story = $content->innertext;
				
$db->query( "INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, keywords, category, alt_name, allow_comm, approve, allow_main, fixed, allow_br, symbol, tags) values ('$thistime', '{$member_id['name']}', '$short_story', '$full_story', '$filecontents', '$title', '', '$category_list', '$alt_name', '$allow_comm', '$approve', '$allow_main', '$news_fixed', '$allow_br', '$catalog_url', '" . $_POST['tags'] . "')" );
				
$row['id'] = $db->insert_id();

$db->query( "INSERT INTO " . PREFIX . "_post_extras (news_id, allow_rate, votes, user_id) VALUES('{$row['id']}', '{$allow_rating}', '{$add_vote}','{$member_id['user_id']}')" );


Из за чего это может быть? Спасибо.

Ответа пока нет


1 комментарий

dj-avtosh
PHP-developer

dj-avtosh - 14 ноября 2016 16:43 -

может быть

 ! preg_match('//u', $short_story) && $short_story = iconv('cp1251', 'utf-8', $short_story);


или может



if( ! preg_match('//u', $short_story) )
{

 $short_story = iconv('cp1251', 'utf-8', $short_story);

 $short_story = preg_replace('/%(?:25)?([0-9a-f]{2})/sei','chr(hexdec("$1"))',$short_story);

}


По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх