Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вопрос по поводу strtr

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
jfr
Отправлено: 13 Февраля, 2011 - 18:17:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


почему при
PHP:
скопировать код в буфер обмена
  1. $t=strtr($t1, "АБВГДЕЁЖЗИЙКЛМНОПР", "абвгдеёжзийклмнопр");
корякообразно отображается, а при
PHP:
скопировать код в буфер обмена
  1. $t=strtr($t1, "АБВГДЕЁЖЗИЙКЛМНОП", "абвгдеёжзийклмноп");
нормално отображаются символы?
 
 Top
Okula
Отправлено: 13 Февраля, 2011 - 18:44:59
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




jfr, наверно потому что ты работаешь без учёта кодировки.
У тебя веть кодировка уникод на сайте стоит, верно? А она многобайтовая, вот поэтому и не заменяются как надо строки.
 
 Top
jfr
Отправлено: 13 Февраля, 2011 - 19:16:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


Okula пишет:
jfr, наверно потому что ты работаешь без учёта кодировки.
У тебя веть кодировка уникод на сайте стоит, верно? А она многобайтовая, вот поэтому и не заменяются как надо строки.

Okula, совсем не понимаю я эту функцию strtr, например
PHP:
скопировать код в буфер обмена
  1. $t1="Ё"; $t=strtr($t1, "ЁЖЗИЙКЛМНОП", "ёжзийклмноп"); echo $t; //вывод Б
не понимаю причем тут "Б", когда речь идет о букве "ё"...
 
 Top
OrmaJever Модератор
Отправлено: 13 Февраля, 2011 - 20:21:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




jfr пишет:
совсем не понимаю я эту функцию strtr

А зачем используешь? str_replace()


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
jfr
Отправлено: 13 Февраля, 2011 - 20:50:09
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


OrmaJever пишет:
jfr пишет:
совсем не понимаю я эту функцию strtr

А зачем используешь? str_replace()

тоесть?
 
 Top
Okula
Отправлено: 13 Февраля, 2011 - 21:04:31
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




jfr, тоесть функция str_replace() выполняет такие же операции.
 
 Top
grefon
Отправлено: 13 Февраля, 2011 - 21:04:32
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010  


Помог: 32 раз(а)




Думаю, в том смысле, что str_replace() намного более гибкая, имеет тот же функционал и, самое главное, при использовании нее не возникает непонятных ситуаций. Короче, strtr- в топку, str_replace() - виват!


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
OrmaJever Модератор
Отправлено: 13 Февраля, 2011 - 22:09:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




При больших обьёмах даных strtr() работает быстрее, но если длянекоторых ситуаций нужна str_replace()


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Okula
Отправлено: 13 Февраля, 2011 - 22:20:06
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




OrmaJever, ну так строковые функции всегда работали быстрее, правда они не всегда удобны ;)
 
 Top
OrmaJever Модератор
Отправлено: 13 Февраля, 2011 - 22:30:54
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Я имел ввиду что strtr() работает быстрее чем str_replace()


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Arch-Web
Отправлено: 13 Февраля, 2011 - 23:46:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Июль 2010  
Откуда: Ukraine::Kiev


Помог: 1 раз(а)




хм.... если вы хотите перевести с верхнего регистра в нижний то есть функцыя strtolower()
 
 Top
Okula
Отправлено: 13 Февраля, 2011 - 23:53:30
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




Arch-Web, mb_strtolower() так как работает с юникодом В наушниках
 
 Top
Arch-Web
Отправлено: 13 Февраля, 2011 - 23:55:27
Post Id



Частый гость


Покинул форум
Сообщений всего: 177
Дата рег-ции: Июль 2010  
Откуда: Ukraine::Kiev


Помог: 1 раз(а)




Функция strtr() работает вот так



если в $in будет:
"д" то заменит на "а"
"е" то заменит на "т"
"ц" то заменит на "о"

к примеру:
$in = "работает"; # работает
результат будет
echo $out; # работатт
 
 Top
JustUserR
Отправлено: 14 Февраля, 2011 - 13:40:49
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




grefon пишет:
Короче, strtr- в топку, str_replace() - виват!
Использование указанных функций замены и модификации строковых элементов предполагает решения значительных различных задач - в частности использование функции strtr осуществляется гарантированную замены всех возможных вхождений искомых последовательностей в оригинальной строке с условием предшествующего просмотра для самых длинных элементых последовательностей - в то время как использование функции str_replace обеспечивает линейную последовательную замены что не обеспечиват гарантированного результата
В качестве иллюстрации к указанному описание возможно использование функции переведения транслитерированного текста в оригиниальный русскоязычный вид
PHP:
скопировать код в буфер обмена
  1. $str0="Chto";
  2. $str1=strtr($str0,array('ch'=>'ч','c'=>'ц','t'=>'т','o'=>'о'));
  3. $str2=strtr(array('ch','c','t','o'),array('ч','ц','т','о'),$str1);
  4. echo $str1; // Что
  5. echo $str2; // Цhто


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB