проблема с кирилицей

ivan52

d-i-d grafix
проблема с кирилицей

после применения
get_html_translation_table (HTML_ENTITIES);

все кирилические символы преврящаются в
saSearch[word]=aaena (это слово бейсб после обработки)

можно ли перекодировать обратно?
что нужно использовать
спасибо
 

Brezee

Новичок
можно
в мане есть ->

$trans = get_html_translation_table(HTML_ENTITIES);
$str = "Hallo & <Frau> & Krimer";
$encoded = strtr($str, $trans);

Переменная $encoded теперь содержит : "Hallo &amp; &lt;Frau&gt; &amp; Kraumer".

Хорошо использовать array_flip() для изменения направления трансляции.$trans = array_flip($trans);
$original = strtr($encoded, $trans);

Содержимым $original будет: "Hallo & <Frau> & Kraumer".
 

ivan52

d-i-d grafix
может я не понимаю чего

$svTransTbl = get_html_translation_table (HTML_ENTITIES);
$svTransTbl = array_flip ($svTransTbl);
$sa[word] = strtr ($sa[word], $svTransTbl);

вот такая строчка - после этого все русские слова становятся
кривыми (на каждый символ приходится ссылка на таблицу символов - saSearch[word]=&aacute;&aring;&eacute;&ntilde;&aacute;)

чтобы это возвернуть и получить русское слово "бейсб" надо снова перекодировать обратным способом снова get_trans_table - так?
 

Brezee

Новичок
$trans = get_html_translation_table(HTML_SPECIALCHARS);
если сделаеш вот так то с русским будет все ок!
 

ivan52

d-i-d grafix
то есть вместо 3 строчек пишем одну

и все ок становится?
 

Brezee

Новичок
нет в функции get_html_translation_table изменяем параметр
HTML_ENTITIES на HTML_SPECIALCHARS, все остальное как в примере из мана
 

ivan52

d-i-d grafix
самое интересное что поиск работает

только в поисковой форме пишется не по русски (после поиска)

а остальное все ок из базы выбирается и нужные значения

только пока с окончаниями проблема - надо сделать проверку на длину слова и поиск без окончаний

-~{}~ 04.06.04 12:20:

если делать html_specialchars
поиск перестает работать
почему?
 

Фанат

oncle terrible
Команда форума
1. если
после применения
get_html_translation_table (HTML_ENTITIES);
все кирилические символы преврящаются
то зачем применять get_html_translation_table ?
2. при чем тут поиск?
 

ivan52

d-i-d grafix
был готовый

Originally posted by Фанат
1. если
то зачем применять get_html_translation_table ?
2. при чем тут поиск?
был готовый поиск по определенным ячейкам базы
с проверкой на различные введенные символы

если пользователь вводит символы или теги они вырезаются
и остается только слово - для это как я понимаю сделана get_html_translation

поиск работает достаточно корректно и даже после трансляции кирилические символы ищет
только перекодирует их и вписывает в поисковую форму как
&aacute;&aring;&eacute;&ntilde;&aacute; - а мне нужно бейсб чтобы оставалось

поможет ли например urlencode?
или нет?

-~{}~ 04.06.04 12:30:
вчера приводил кусок кода, слишком большой был - удален Demiurg
он в recycle bin может еще остался

если удаляю строчки с перекодированием
поиск не работает

дело и не в setlocale я так понимаю
можно просто
PHP:
echo
убрать
тогда в форме не будет показываться белеберда всякая
но это решение?
 

Фанат

oncle terrible
Команда форума
для это как я понимаю сделана get_html_translation
неправильно понимаешь. хотя кто его там знает...

если готовый - то я пас.
я думал эт то ты сам делаешь и готовился объяснить, как сделать правильно.
 

ivan52

d-i-d grafix
не лучше объясните

я лучше сам сделаю и правильно
как посоветуют профессионалы
чем пользоваться тем что работает не правильно
написано не известно кем и кривым

если не сложно объясните что я понимаю не правильно
и в какую сторону двигаться

читать ман? и в поиск "поиск"
проще учиться на том что работает и видеть к чему приводят твои исправления
 

Фанат

oncle terrible
Команда форума
чтобы посоветовать, нужно знать, что ты ищешь, и где.
а ты даже сам этого не знаешь
 

ivan52

d-i-d grafix
почему не знаю?

Originally posted by Фанат
чтобы посоветовать, нужно знать, что ты ищешь, и где.
а ты даже сам этого не знаешь
я ищу по определенным ячейкам базы
определенное слово
PHP:
$saSearch{word}

PHP:
select from $table where word like '%$saSearch[word]%'
в данном случае в word ищу $saSearch{word}
 

Фанат

oncle terrible
Команда форума
ты до сих пор даже не сказал, ГДЕ ты ищешь!
и можно только догадываться, что в базе данных

поиск по базе в общем случае делается одним запросом
select * from table where pole like '%word%'

И ВСЕ.
никаких обработок и переработок.
русский язык абсолютно точно так же ищется, как и латиница.
если база настроена верно.
 

ivan52

d-i-d grafix
спасибо

спасибо
да про то что я ищу в базе я не написал

ищу в базе mysql
про настройки почитаю
еще раз спасибо

значит просто в скрипте много лишнего
и свой написать легче

-~{}~ 04.06.04 14:13:

значки например
PHP:
#$%^&(*#*_(<>
что делать тогда? искать их и вырезать или тоже пусть по базе ищет?
 

Фанат

oncle terrible
Команда форума
1. чего плохого в этих значках? самих по себе?
2. что случится, если по ним будет идти поиск?
 

ivan52

d-i-d grafix
пытаюсь понять

пытаюсь понять зачем было сделано вот это?


PHP:
 $search_string = $saSearch[word];
         $x=0;
         while(ereg('-*"[^"]*"', $search_string, $saMatch))
         {
            $saParts[$x]=trim(str_replace("\\", "", $saMatch[0]));
            $saParts[$x]=trim(str_replace("\"", "", $saMatch[0]));
            $search_string=substr(strstr($search_string, $saMatch[0]), strlen($saMatch[0]));

            $x++;
         }
 

Фанат

oncle terrible
Команда форума
явно от большого ума.

-~{}~ 04.06.04 14:38:

все, что надо знать о составлении запросjв, написано здесь:
http://phpfaq.ru/globals
это общие правила для составления запросов, и они распространяются и на поиск. для самого же поиска какие-то особенные символы удалять не нужно
 
Сверху