Wordpress und Sape — проблема с кодировкой
Дата: 05.11.2008 | Автор: Игорь Квентор | Рубрика: WordPress |
Тэги: Sape, WordPress, проблемы кодировки
Недавно столкнулся с тем, что на одном из блогов ссылки из Sape выводились знаками ЪЪЪЪЪЪ. В FAQ-е Сапы сказано, что при установке на ВП стандартный код нужно дополнить указанием, что используется кодировка utf-8:
<?php
define('_SAPE_USER', 'ххххххххххххххххххххххххххх');
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['charset'] = 'UTF-8';
$sape = new SAPE_client($o);
unset($o);
echo $sape->return_links();
?>
Однако сие действо, довольно успешно работающее на других блогах, на этом не дало решительно никакого эффекта. Попытки менять типы кодировок в базе данных и в мета-тэгах ни к чему не привели.
Покопавшись в весьма внушительном топике по данной теме на форуме самой Сапы, нашел таки работающий вариант. В нем используется перекодировка с windows-1251 (которая и выдает кракозябры) на utf-8. В конечном итоге, код будет выглядеть так:
<?php
define('_SAPE_USER', ' ххххххххххххххххххххххххххх ');
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
$o['charset'] = 'windows-1251';
$sape = new SAPE_client();
echo mb_convert_encoding($sape->return_links(), "UTF-8", "CP1251");
unset($o);
?>
Возможно, это кому-то так же поможет.
Комментарии (48) на запись “Wordpress und Sape — проблема с кодировкой”
Трэкбеки
Оставить комментарий












Простите, что не совсем по теме..
Пожалуйста будьте добры, подскажите на примере, что именно должно быть написано в поле require_once($_SERVER[’DOCUMENT_ROOT’] вместо DOCUMENT ROOT ?
Я вчера подставляла массу вариантов, но код так и не стал работать :( Правда, он был не саповский, но строчка там такая же.
Просто у Вас увидела знакомые слова и решила спросить, Вы, скорее всего, разбираетесь и поможете. Объяснять это где-нибудь на форуме - выше моих сил. А рядом никого кто-бы разбирался в этих тонкостях :(
Заранее спасибо.
А как установить сапу именно на какую-то отдельную страницу? Я имею в виду что если код сапы добавлять в темплейт он ведь сквозняком пойдет по всему сайту?
Добавлять код в страницу при написании поста?
Marina, а зачем вам менять эту запись? Она ведет в корень сайта, путь к которому может выглядеть примерно как:
../usr/local/apache/htdocs/www/ваш_файл.php
Не зная точного пути, невозможно подставить нужный адрес.
А код не работает совсем по другой причине. Но не зная, о чем речь, увы поспособствовать не могу :)
Zodios, код Сапы как раз и ставят в шаблон (в подвале или сайдбаре), чтобы он шел через весь сайт. Если вам нужно исключить какие-то страницы, то вы сможете сделать это в своем аккаунте в Сапе, удалив эти страницы из списка, найденного роботом.
То есть эти слова Document Root вообще не надо заменять указанием пути? Вот я балда. Как есть блондинка. :(
Я решила, что словосочетание ‘DOCUMENT ROOT’ написано для образца, а вместо него надо подставить свой путь. Прошу прощения за ламерский вопрос. Можете удалить оба коммента, если хотите.
Спасибо за ответ. :)
Не за что! :) Если вы не против, то пусть комменты сохранятся. Может это кому-нить будет полезно.
Автор спасибо большое нашел твой блог с гугла, и как раз уже долго искал как нормально установить этот долбаный код сапе. СПАСИБО, СПАСИБО, СПАСИБО. БОЛЬШОЕ!
Zodios, просто скачайте плагин “execphp” сможете сапу в виджеты ставить и по блокам раскидывать без лишнего гемороя
Такая же проблема, всё кубиками выводилось. Спасибо за подсказку, теперь работает на ура :)
felix, рад, что вам пригодилось! :)
Спасибо большое, я тоже долго искал ответ. Все заработало. ура)))
Рад, что смог помочь :)
Спасибо огромное!!! Решение помогло!!! Долго же я мучался пока не нашел это.
Окей! :)
Сэнкс! я уже кодировку в файле сейпа пробовал менять, не помогало. Как говориться всё гениальное просто
Эт верно :)
Огромнейшее спасибо вам!!!А я второй день мучаюсь не зная, что делать уже всевозможные кодировки перепробовал!!! Форум сапы лежит из-за тех работ, но вот наткнулся на ваш и блог и все сделал, все работает уряяяя :-)
Появился один вопросик, что за код у вас еще там написан “unset($o);”??
Unlexus, рад что смог чем-то помочь. А про кусок кода ничего сказать не могу. Сам нашел на форуме такую конструкцию и просто ее использовал :)
премного благодарен за код
Спасибо, заработало и не пришлось links.bd удалять…
огромное спасибо! думал, придется менять шаблон, а тут вон как все просто оказалось
Всегда к вашим услугам, господа! :)
Спасибо автор :) Я как раз с такой фигнеё столкнулся, крякозябры выводились, и сапосикй код не помог, а твой пашет, сенкс :)
Респект автору! Использовал другой код и при добовлении нового блога в сапу были временные проблемы, а этот код сразу стал нормально работать.
Короче удачного развития вашего блога ув. автор.
Спасибо друг. Ты настоящий хакер.
Спасибо, проблему с кодировкой решил первым способом:
$o[’charset’] = ‘UTF-8′;
$sape = new SAPE_client($o);
unset($o);
При установке WP в концигурационном фале можно выбрать кодировку базы данных. Там стоит UTF-8 Если поменять на win1251 не позвлит ли это избежать проблем с кодировками в будущем?
Серг, выбрать кодировку можно, но официально ВП поддерживает только UTF-8. Поэтому, скорее всего будут проблемы с отображением кириллицы.
Да, оставил по умолчанию, не стал рисковать. Просто мне надо будет встроить RSS с вордпресса на статичный сайт в win-1251 и php скрипт, который это делает, выводит ерунду :(
Тут может быть два варианта: либо статичный сайт переписать под кодировку UTF-8, либо попробовать пристроить эту же конструкцию из данного поста:
echo mb_convert_encoding($sape->return_links(), "UTF-8", "CP1251");только без Сапы и return_links
Отличное решение проблемы. Очень помог второй вариант, а то выводились одни вопросики…
Dankon, estimata!!!
Спасибо, помогло!
Спасибо большое, выручил. А то всё никак было не решить проблему с кодировко, множество ссылок из за этого в эррор ушли.
Кстати работает и для других движков - я на своем сайте таким образом поправил.
СПАСИБО!!!! Единственное что помогло!! :))))
Подскажите пожалуйста почему дублируются сылки в подвале сделано как у Вас в первом варианте.
return_links();
?>
Как я только не крутил его.Если удаляю эту строку echo $sape->return_links(); тогда сылка одна но уже не в тегах и сапа не видит их и в error ставит.
В чём может быть проблема?
Игорь, сложно сказать. Возможно из-за плагина какого-то глючит. Кэш или супер-кэш какой-нибудь устанавливали?
Нет нечего не устанавливал
Тогда увы, подсказать ничего не смогу. Попробуйте поискать на форуме самой Сапы.
Всё решил вопрос. Спасибо Игорь за помощь)
Да не за что! А что было? Поделитесь. Вдруг еще кому-нибудь понадобится.
А, если применять второй вариант, то надо менять кодировку в базе данных и мета-тегах? Если да, то как это сделать. Простите за такой нубовский вопрос, но я только начинаю освоение данного материала.
Огромное Вам спасибо!
Только Ваш код исправил проблему с неправильным отображением ссылок. Я уже и не знал, что делать.
А теперь работает ))
Пожалуйста! :)
Спасибо за отличное решение! совет на сапе, действительно не спас! а ваш - помог :)
Сразу не въехал, но с 3-го раза получилось. СПАСИБО!!! У меня на 3-х блогах такая байда сегодня с обеда. Иду ложиться спать спокойно… благодаря автору блога :)
Спасибо за разъяснения про сапу