Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не работает транслит если в сообщении есть смайл, скрипт чата 
:(
    Опции темы
Fx45
Дата 24.4.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



У меня такая проблема. В моём чате если в сообщении присутствует смайл то транслит не работает. Посоветуйте как можно это исправить
PM MAIL   Вверх
flashaa
Дата 24.4.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Цитата(Fx45 @  24.4.2008,  13:24 Найти цитируемый пост)
Посоветуйте как можно это исправить 

Открый файл и редактировать. Тебя устраивает моя информативность? Меня твоя так же =)
PM MAIL   Вверх
Fx45
Дата 24.4.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



вот код

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  chat.php 30,09 Kb
PM MAIL   Вверх
flashaa
Дата 24.4.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 796
Регистрация: 7.3.2006

Репутация: 19
Всего: 25



Fx45, я вижу что у тебя проблема с кодировками. Твои редкие комментарии в cp1251; текст, который выводишь, - в utf-8.
Тыкни конкретно, где идет преобразование в транслит. Код едва читаем. Нет комментов почти. Кроме "микровремя" =)
Блоков if (($translit!=1) несколько...
PM MAIL   Вверх
Fx45
Дата 24.4.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 24.4.2008

Репутация: нет
Всего: нет



Код

if(@$msg)
{
$msg = trim(" $msg ");
$msg = ereg_replace(" +"," ",$msg);
$msg = substr($msg,0,400);
$msg = str_replace("", " ", $msg);
$msg = str_replace("$", "$$", $msg);
$msg = strtr($msg,array(chr("0")=>"",chr("1")=>"",chr("2")=>"",chr("3")=>"",chr("4")=>"",chr("5")=>"",chr("6")=>"",chr("7")=>"",chr("8")=>"",chr("9")=>"",chr("10")=>"",chr("11")=>"",chr("12")=>"",chr("13")=>"",chr("14")=>"",chr("15")=>"",chr("16")=>"",chr("17")=>"",chr("18")=>"",chr("19")=>"",chr("20")=>"",chr("21")=>"",chr("22")=>"",chr("23")=>"",chr("24")=>"",chr("25")=>"",chr("26")=>"",chr("27")=>"",chr("28")=>"",chr("29")=>"",chr("30")=>"",chr("31")=>""));
$msg = str_replace("к","С‘",$msg);
$msg = htmlspecialchars($msg);
$msg = str_replace("\"", """, $msg);
$msg = str_replace("|", "¦", $msg);
$msg = str_replace("'", "‘", $msg);
$msg = str_replace("\\", "", $msg);
$msg = addslashes($msg);
if ($row["translit"]==0) $msg = str_replace("'", "'", $msg);
if (!isset($prvt)) $prvt = 0;

$str1="";
$str2=$msg;

if (($translit==1)||($row["translit"]==1)){

$r = mysql_query("select user from users WHERE id = '".$towhom."' LIMIT 1;");
$a = mysql_fetch_array($r);
if (strpos($msg,$a["user"])===0)
{
$str1 = substr($msg,0,strlen($a["user"]));
$str2 = substr($msg,strlen($a["user"]),strlen($msg)-strlen($a["user"]));
$msg = $str2;
}
}
if ($prvt == 0) $towhom = "";
if (!isset($towhom)) $towhom = "";

if ($row["level"]<5) require("filtr.php");
require("smile.php");


$minpos = 500; $nm = 500;
for ($j=0;$j<=count($smiles)-1;$j++)
{
$tmpp = strpos($msg,$smiles[$j]);
if (($tmpp < $minpos)&&($tmpp !== false))
{
$minpos = $tmpp; $nm = $j;
};
};
if ($minpos !=500)
{
if (($translit!=1)||($row["translit"]==1))
{
$st1 = substr($msg,0,$minpos+strlen($smiles[$nm]));
$st2 = substr($msg,$minpos+strlen($smiles[$nm]),strlen($msg)-strlen($st1));
$st1_wosm = $st1;
$st1 = str_replace($smiles[$nm],$replaces[$nm],$st1);
if (strpos($replaces[$nm],"smilean/")!==false) $st1_woasm = $st1_wosm; else $st1_woasm = $st1;
$msg_woasm = $st1.$st2;
$msg_wosm = $st1_wosm.$st2;
$msg = $st1_woasm.$st2;
} else
{
$st1 = substr($msg,0,$minpos);
$st2 = substr($msg,$minpos, strlen($smiles[$nm]));
$st3 = substr($msg,$minpos+strlen($smiles[$nm]),strlen($msg)-strlen($st1)-strlen($st2));
if ($room!="room0") $st1 = trun_to_rus($st1);
$st2_wosm = $st2;
$st2 = $replaces[$nm];
if (strpos($replaces[$nm],"smilean/")!==false) $st2_woasm = $st2_wosm; else $st2_woasm = $st2;
if ($room!="room0") $st3 = trun_to_rus($st3);
$msg = $st1.$st2_woasm.$st3;
$msg_wosm = $st1.$st2_wosm.$st3;
$msg_woasm = $st1.$st2.$st3;
}
}
else if (($translit==1)||($row["translit"]==1)&&($room!="room0")) $msg = trun_to_rus($msg);
unset($smiles);
unset($replaces);
if($row["level"]>6)$msg = eregi_replace("((http://))((([a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z;]{2,3}))|(([0-9]{1,3}\.){3}([0-9]{1,3})))((/|\?)[a-z0-9~#%&'_\+=:;\?\.-]*)*)", "<a href=\"\\0\">\\3</a>", $msg);



if (($translit==1)||($row["translit"]==1)){
$nick=strtok($msg," ");
$msg=strstr($msg," ");
$msg = trun_to_rus($msg);
$msg=$nick.$msg;
}

$msg = $str1.$msg;
if (@$msg_wosm!="") $msg_wosm = $str1.$msg_wosm;
if (@$msg_woasm!="") $msg_woasm = $str1.$msg_woasm;
        if(($row["level"]>=6)  && $bold)
            $msg = '<b>'.$msg.'</b>';

        if (($row["level"]>=4) && $underline)
            $msg = '<u>'.$msg.'</u>';

         if (($row["level"]>=4) && $nakl)
            $msg = '<i>'.$msg.'</i>';

PM MAIL   Вверх
IZ@TOP
Дата 24.4.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Жесть... я бы таких банил.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0948 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.