Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Русские буквы в ereg

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kspy, садись, два. Вы ведь даже не разобрались в этой функции, а просто слепо её скопировали себе, а теперь ещё и сюда. Функция глючит с русской Р. Да и ни к чему такой громоздкий код - весь необходимый материал (даже без iconv) уже дал Cheery
Правда есть и более компактные решения

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 17:40 27-01-2006 | Исправлено: SiMM, 17:42 27-01-2006
kspy



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SiMM
согласен
цейтнот последнее время... спасибо за помощь )

Всего записей: 164 | Зарегистр. 04-11-2003 | Отправлено: 21:45 27-01-2006
Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я наверное не точно поставил задачу.
 
Все эти методы не получаются никак
 
НУЖНО  
Страница сверстанная в кодировке utf-8 отправляет переменные с формы ввода с мобильного телефона на русском языке. Какой это русский язык никто не знает (я тоже не знаю)
 
принимает эти переменные тоже страница сверстанная в utf-8  
принимает так
$login = $_GET['login'];
далее подставляется для проверки в условие
if ((ereg("^[a-zA-Z1-9_]{2,10}$",$login)) || (ereg("^[а-яА-Я1-9_]{2,10}$",$login))) {$login_flag = true;} else {$login_flag = false;}
 
как я вижу с различных телефонов идут многие кодировки  
UCS2 utf-8 и win-1251 и идет еще непонятно какая кодировка с телефона Samsung С230 я так и не смог понять=(
 
Нужно все эти кодировки както понять что они именно те за кого себя выдают и проверить в регулярном выражении на соответствие - а работает это только в win1251 - следовательно все надо привести к win кодировке
 
 
вот я не знаю как это делать - посмотрел на ВСЕХ форумах и чатах в вапе там при регистрации не принимают русские ники - видимо с той же проблемой столкнулись - только они просто отступили а я не хожу - помогите знатоки!
 
 
попутно вопрос - как резать  - не давать писать (вернее выводить) сообщения с бессмыслицей типа  
 
ккккккккккккккккккккккккк
или ПРОУЛВДЖЖпжипдиллпа
 
и еще я где то видел уже в рунгете но найти никак не могу  - как делать транслит типа пишешь  Privet а на экране написано Привет!
 
Спасибо!

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 03:59 03-02-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nevi
тебе сказали - iconv и конверти в то, что нужно.. при выводе конверти обратно. в чем проблема то?  

Цитата:
Все эти методы не получаются никак

решаются, если есть руки и голова.
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 04:12 03-02-2006
Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да блин....ну как вам объяснить то...=(((
 
 
C одних телефонов выводится слово
 
привет  
 
с других  
 
Привет  
 
а по настоящему это слово Привет
 
скажите мне бестолковому  
 
второй я так понимаю в UCS2  
третий в win 1251
 
++++  первая кодировка это какой код7

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 04:23 03-02-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nevi

Цитата:
первая кодировка это какой код7

UTF-8


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 04:49 03-02-2006
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
второй я так понимаю в UCS2
Вообще-то это называется Numeric character references

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 07:33 03-02-2006
Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мужики!  
Я решил проблему
1. короче делаем php страницу как обычно и сохраняем её в utf-8
 
 2. ОТДЕЛЬНО делаем страницу в которую вставляем лишь проверку
 
if ((ereg("^[a-zA-Z1-9_]{2,10}$",$login)) || (ereg("^[а-яА-Я1-9_]{2,10}$",$login))) {$login_flag = true;} else {$login_flag = false;}
 
и сохраняем в кодировке win1251
 
потом в первой странице делаем include ("путь ко 2 файлу"); и все работает!
 
Я проверил с Nokia 6230 N70
Мотор С380 С650  
все работает!
 
А теперь пойду спать ... Спасибо вам! все оказалось так вот просто
мне было бы интересно - если бы объяснили данный феномем

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 08:29 03-02-2006
Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Подскажите пожалуйста! а возможно ли как нибуть опеределить через регулярные выражения (или иным способом) что строка бессмысленная - например  
 
 
 
апаппапппппвппвпвппппарпоополрллллллпл
d/d/d/f/f/g/gh/g/g.g.ggfkgkgigjrhjerhdfhfhghjhj
 
такая строка должна как определятся  
или это невозможно7
Спасибо!

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 18:15 05-02-2006
SiMM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
а возможно ли как нибуть опеределить ... что строка бессмысленная
Формализуй понятие "бессмысленная строка" и решай свою задачу в рамках сформированных ограничений.

Всего записей: 2302 | Зарегистр. 14-05-2004 | Отправлено: 18:58 05-02-2006
Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
<?php // (C) SiMM, based on ru.wikipedia.org/wiki/Unicode
function StripBadUTF8($str) {
$ret = '';
for ($i = 0;$i < strlen($str);) {
    $tmp = $str{$i++};
    $ch = ord($tmp);
    if ($ch > 0x7F) {
        if ($ch < 0xC0) continue;
        elseif ($ch < 0xE0) $di = 1;
        elseif ($ch < 0xF0) $di = 2;
        elseif ($ch < 0xF8) $di = 3;
        elseif ($ch < 0xFC) $di = 4;
        elseif ($ch < 0xFE) $di = 5;
        else continue;
 
        for ($j = 0;$j < $di;$j++) {
            $tmp .= $ch = $str{$i + $j};
            $ch = ord($ch);
      &  
 
что за недописанная функция  и как определить что в строке UTF8 есть битые символы - неужели нельзя сделать проще7

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 05:42 07-02-2006
Nevi



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажжите как правильно дописать эту функцию - и как определить что все символы правильные для utf-8 например в utf-8 нельзя выводить $ и & как это опеределять и вырезать или заменять подобные символы , а то старые телефоны виснут если страница невалидная!
Заранее благодарен вам

Всего записей: 279 | Зарегистр. 29-11-2004 | Отправлено: 06:51 11-02-2006
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » Русские буквы в ereg


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru