АРМАДА
PHP мнемонические символы или html сущности
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

deBrain
V.I.P.
Зарегистрирован: 03.06.2010
Сообщений: 1569
Обратиться по нику
# Добавлено:Сб Апр 02, 2011 6:18 amДобавить в избранноеОтветить с цитатой
В общем есть проблема...
Заключается она в том, что я не могу преобразовать HTML сущность в текст. Вот пример: http://debrain.ru/2011/03/sgmanage-molodcy/
Там в конце поста есть 3 кнопки социалок. ВКонтакте всё ништяк при почти любых раскладах, а вот в фейсбуке и твиттере вылазят мнемонические символы, которые у меня никак не получается раскодировать.
Вот строка та заветная:
var title=encodeURIComponent("<?php echo html_entity_decode(the_title(),UTF-Cool;?>");
В самих кавычках выводится символ в виде сущности, но почему-то контакт её адекватно воспринимает, а все остальные нет.
Помогите решить проблему!)
Правильно вкладываем свободные средства в ПАММ
Правильный хостинг: DigitalOcean

deBrain
V.I.P.
Зарегистрирован: 03.06.2010
Сообщений: 1569
Обратиться по нику
# Добавлено:Сб Апр 02, 2011 4:37 pmОтветить с цитатой
В общем надо заменить &#номер; на символ.
К примеру … заменить на ...
Можно как-нибудь это сделать на PHP либо JS?
Правильно вкладываем свободные средства в ПАММ
Правильный хостинг: DigitalOcean

adamant
V.I.P.
Зарегистрирован: 20.03.2008
Сообщений: 11494
Обратиться по нику
# Добавлено:Сб Апр 02, 2011 4:47 pmОтветить с цитатой
а перекодировать в утф=8 нельзя. насколько знаю так в пхп это пару строчек
EvaPharmacy. Чтобы мазать хлеб икоркой, Ева – лучшая партнёрка! Инвайты Jabber: evasupport@jabber.org и ICQ: 750000
Unlimited on 1Gbs port |

deBrain
V.I.P.
Зарегистрирован: 03.06.2010
Сообщений: 1569
Обратиться по нику
# Добавлено:Сб Апр 02, 2011 5:36 pmОтветить с цитатой
Не работает...
написал
var title=encodeURIComponent("<?php echo iconv("cp1251", "utf-8", the_title());?>");
пробовал разные кдировки, не только cp1251
Сомневаюсь, что дело именно в кодировке. Надо именно как-то заменять мнемонические коды на символы, только вот как хз=\
Пробовал уже много функций, но без необязательных параметров. Может кто-нибудь знает какие-нибудь параметры которые надо передать со стандартными функциями преобразования кодов html-сущностей?
Правильно вкладываем свободные средства в ПАММ
Правильный хостинг: DigitalOcean

deBrain
V.I.P.
Зарегистрирован: 03.06.2010
Сообщений: 1569
Обратиться по нику
# Добавлено:Вс Апр 03, 2011 12:28 pmОтветить с цитатой
Да ёмаё, неужели никто не сталкивался с этой проблемой? Я уже всё перепробовал... Все функции связанные кодированием/декодированием мнемонических символов, перекодирование этого крохотного кусочка текста во все известные мне кодировки...

Как решить проблему? Чтобы в коде страницы вместо "& #8211;" было "-" и с остальными номерами так же.
Правильно вкладываем свободные средства в ПАММ
Правильный хостинг: DigitalOcean

adamant
V.I.P.
Зарегистрирован: 20.03.2008
Сообщений: 11494
Обратиться по нику
# Добавлено:Вс Апр 03, 2011 12:40 pmОтветить с цитатой
может на гофаке спроси, там чаще програмисты бывают нежели сдесь
EvaPharmacy. Чтобы мазать хлеб икоркой, Ева – лучшая партнёрка! Инвайты Jabber: evasupport@jabber.org и ICQ: 750000
Unlimited on 1Gbs port |

Codd
Опытный
Зарегистрирован: 13.01.2011
Сообщений: 186
Обратиться по нику
# Добавлено:Вс Апр 03, 2011 1:20 pmОтветить с цитатой
Цитата:
В общем надо заменить &#номер; на символ.


С этим отлично справляется функция html_entity_decode, которую вы привели в первом посте.
Только я не понял, почему у вас кодировка не в кавычках, да ещё и на втором месте стоит.
Код:
<?php echo html_entity_decode(the_title(), UTF-8);?>


http://php.net/manual/en/function.htmlentities.php
Цитата:
html_entity_decode(строка, способ обработки кавычек, кодировка);


deBrain
V.I.P.
Зарегистрирован: 03.06.2010
Сообщений: 1569
Обратиться по нику
# Добавлено:Вс Апр 03, 2011 2:17 pmОтветить с цитатой
Codd, Всё равно почему-то в коде страницы код символа, а не сам символ.
Я написал:
<?php echo htmlentities(the_title(),ENT_COMPAT,'cp866');?>
В качестве кодировки ставил: ISO-8859-1, ISO-8859-15, UTF-8, cp866, cp1251, cp1252, KOI8-R.
Почему не пашет не понимаю.
Shout Shout Shout Shout
Правильно вкладываем свободные средства в ПАММ
Правильный хостинг: DigitalOcean

Codd
Опытный
Зарегистрирован: 13.01.2011
Сообщений: 186
Обратиться по нику
# Добавлено:Вс Апр 03, 2011 3:31 pmОтветить с цитатой
Код:
<?php echo iconv('windows-1251', 'utf-8', html_entity_decode( iconv('utf-8','windows-1251',get_the_title()), ENT_QUOTES, 'windows-1251'));?>


протестировал, работает

deBrain
V.I.P.
Зарегистрирован: 03.06.2010
Сообщений: 1569
Обратиться по нику
# Добавлено:Вс Апр 03, 2011 7:43 pmОтветить с цитатой
Codd, спасибо за старания, но почему-то ситуация не изменилась... Главное при постинге ВКонтакте всё как надо, даже без перекодирования. А когда постишь в твиттер или фейсбук, то всё криво=(
Я вообще не понимаю зачем вордпресс мне три точки превращает в один символ в виде троеточия и тире превращает в дефис... и всё это говно записывает в БД именно в таком виде. Какой критин придумал так делать интересно...
Правильно вкладываем свободные средства в ПАММ
Правильный хостинг: DigitalOcean
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры