Старый 10.01.2010, 15:31   #1
Специалист
 
Регистрация: 29.05.2008
Сообщений: 138
Вес репутации: 155
Doc скоро станет известен
По умолчанию Скрипты с разной кодировкой на одном сайте

Скрипты с разной кодировкой на одном сайте. То есть есть статичные страницы с кодировкой кириллической, есть галерея с UTF-8. Решит ли такой способ, описаный в help-е

<?php
$o['multi_site'] = true; //Указывает скрипту наличие нескольких сайтов
$sape = new SAPE_client($o);
?>
чтобы для каждого раздела сайта был свой файл с ссылками в разных кодировках. Иначе получается конфликт и все ссылки отражаются кракозябрами.
__________________
Вес репутации: 0, и еще много ошибок в прошлом
Doc вне форума   Ответить с цитированием
Старый 10.01.2010, 15:48   #2
Администратор
 
Аватар для Ank
 
Регистрация: 05.02.2007
Сообщений: 18,407
Вес репутации: 674
Ank - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущееAnk - прекрасное будущее
По умолчанию

Цитата:
Сообщение от Doc Посмотреть сообщение
Решит ли такой способ
нет. Ищите рецепт на форуме. Хотя правильнее привести на сайте к единой кодировке все
Ank вне форума   Ответить с цитированием
Старый 10.01.2010, 15:50   #3
Специалист
 
Регистрация: 10.11.2009
Сообщений: 231
Вес репутации: 141
Yappie - как роза среди колючекYappie - как роза среди колючекYappie - как роза среди колючек
По умолчанию

По идее $o['charset'] (а не multi_site) надо смотреть и два разных кода выводить. В одной части, где кодировка 1251 эту директиву не указывать, в части с UTF - указывать...

Но учитывая что может и правда Сапа хранит ссылки прямо в указанной кодировке можно пойти и другим путем:

хранить, допустим, все ссылки в 1251 кодировке (обычный код Сапы, без $o), а на тех частях где UTF:

вместо
PHP код:
print $sape->return_links(); 
делать
PHP код:
print win2utf($sape->return_links()); 
функция win2utf ниже:

PHP код:
function win2utf($s) {
    for(
$i=0$m=strlen($s); $i<$m$i++) {
    
$c=ord($s[$i]);
    if (
$c==184) { $t.=chr(209).chr(145); continue; };
    if (
$c==168) { $t.=chr(208).chr(129);  continue; };
    if (
$c<=127) {$t.=chr($c); continue; }
    if (
$c>=192 && $c<=207) {$t.=chr(208).chr($c-48); continue; }
    if (
$c>=208 && $c<=239) {$t.=chr(208).chr($c-48); continue; }
    if (
$c>=240 && $c<=255) {$t.=chr(209).chr($c-112); continue; }
    }
    return 
$t;

Правда остается вопрос поймет ли робот Сапы две разные кодировки.. по идее должен.

Но вообще, Ank прав - лучше привести к единой кодировке весь сайт.
Yappie вне форума   Ответить с цитированием
Старый 10.01.2010, 16:06   #4
Новичок
 
Регистрация: 28.11.2007
Сообщений: 35
Вес репутации: 159
tim12 на пути к лучшему
По умолчанию

вот так
PHP код:
$sape = new SAPE_client();
$s=iconv('UTF-8','CP1251',$sape->return_links());
echo 
$s
tim12 вне форума   Ответить с цитированием
Старый 10.01.2010, 16:39   #5
Специалист
 
Регистрация: 15.12.2009
Сообщений: 217
Вес репутации: 138
stepankin на пути к лучшему
По умолчанию

tim12,

насколько мне маразм не изменяет, все-таки не cp1251, а windows-1251. Т.е. iconv('utf-8', 'windows-1251', $param).

CP1251 используется в мускуле ("set names cp1251", например).
stepankin вне форума   Ответить с цитированием
Старый 10.01.2010, 17:35   #6
Специалист
 
Аватар для Taldyk
 
Регистрация: 02.03.2008
Адрес: Германия
Сообщений: 477
Вес репутации: 179
Taldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордится
Отправить сообщение для Taldyk с помощью ICQ
По умолчанию

Есть решение проще.
Делаем копию файла sape.php
называем его к примеру sape1.php
В sape1.php меняем строчку кодировки
var $_charset = 'windows-1251'; на нужную
и тут меняем название links.db
return dirname(__FILE__) . '/' . $this->_host . '.links1.db';
} else {
return dirname(__FILE__) . '/links1.db';

и на страницах с отличной кодировкой меняем строчку
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape1.php');

Всё прекрасно работает

ЗЫ. можете делать хоть 10 различных кодировок на одном сайте.
Taldyk вне форума   Ответить с цитированием
Старый 10.01.2010, 17:40   #7
Злой модератор
 
Аватар для Wink
 
Регистрация: 25.03.2007
Адрес: Deep forest
Сообщений: 5,346
Вес репутации: 461
Wink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущееWink - прекрасное будущее
По умолчанию

Цитата:
Сообщение от stepankin Посмотреть сообщение
насколько мне маразм не изменяет, все-таки не cp1251, а windows-1251.
Изменяет. Будут работать оба варианта. Консольный iconv -l вам в помощь
Wink вне форума   Ответить с цитированием
Старый 10.01.2010, 17:49   #8
Специалист
 
Регистрация: 29.05.2008
Сообщений: 138
Вес репутации: 155
Doc скоро станет известен
По умолчанию

Цитата:
Сообщение от Taldyk Посмотреть сообщение
Есть решение проще.
Делаем копию файла sape.php
называем его к примеру sape1.php
В sape1.php меняем строчку кодировки
var $_charset = 'windows-1251'; на нужную
и тут меняем название links.db
return dirname(__FILE__) . '/' . $this->_host . '.links1.db';
} else {
return dirname(__FILE__) . '/links1.db';

и на страницах с отличной кодировкой меняем строчку
require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape1.php');

Всё прекрасно работает

ЗЫ. можете делать хоть 10 различных кодировок на одном сайте.
Но как же будет осуществляться взаимодействие между биржей и sape.php, если этот файл будет переименован в sape1.php?
__________________
Вес репутации: 0, и еще много ошибок в прошлом
Doc вне форума   Ответить с цитированием
Старый 10.01.2010, 17:54   #9
Специалист
 
Аватар для Taldyk
 
Регистрация: 02.03.2008
Адрес: Германия
Сообщений: 477
Вес репутации: 179
Taldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордитсяTaldyk - за этого человека можно гордится
Отправить сообщение для Taldyk с помощью ICQ
По умолчанию

Цитата:
Сообщение от Doc Посмотреть сообщение
Но как же будет осуществляться взаимодействие между биржей и sape.php, если этот файл будет переименован в sape1.php?
а название тут причём?
Вы вызываете скрипт со своей страницы. Как его зовут это роли не играет, надеюсь это понятно. Скрипт делает то, что что всегда, за исключением создания не links.db, а links1.db, хотя и тут название опять же роли не играет.
Taldyk вне форума   Ответить с цитированием
Старый 10.01.2010, 17:55   #10
Специалист
 
Регистрация: 29.05.2008
Сообщений: 138
Вес репутации: 155
Doc скоро станет известен
По умолчанию

Цитата:
Сообщение от Taldyk Посмотреть сообщение
а название тут причём?
Вы вызываете скрипт со своей страницы. Как его зовут это роли не играет, надеюсь это понятно. Скрипт делает то, что что всегда, за исключением создания не links.db, а links1.db, хотя и тут название опять же роли не играет.
Спасибо, попробую.
__________________
Вес репутации: 0, и еще много ошибок в прошлом
Doc вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с кодировкой на статическом HTML сайте Старик Вопросы по работе системы 13 08.12.2009 10:36
Много ссылок на одном сайте web675 Вопросы от новичков 7 19.11.2008 10:16
Как использовать код на сайте с разной кодировкой? Cramac Установка кода на различные движки 2 29.10.2008 16:24
Ссылки на одном и том же сайте sansan Вопросы от новичков 2 23.08.2008 21:36
Проблема с кодировкой на сайте. Помогите seo-mike Вопросы по работе системы 10 25.11.2007 15:46


Часовой пояс GMT +3, время: 16:13.