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 :: Замена символов в строке, на символы из соответствующей строки

 PHP.SU

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


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

> Без описания
xTODx
Отправлено: 12 Февраля, 2015 - 20:36:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


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




Всем привет, вот набросал функцию, но работает она что-то не очень, то знаки вопросов находит, вместо нужного символа, то ещё что
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?PHP
  4.  $one  = 'йцукенгшщзхъ';
  5.  $one .= "фывапролджэ";
  6.  $one .= "ячсмитьбю ";
  7.  $str  = "привет";
  8.  $newstr = "";
  9.   $len =  ceil(strlen($str)/2);
  10.   $p = ceil(strlen($one)/2);
  11.  for($i=1; $i<=$len; $i++){
  12.          echo $ser = substr($str,($i-1)*2,$i*2); /*Вот тут знаки вопросов*/
  13.          $n = strrpos($one, $ser);
  14.          $newstr .=  substr($one,($n-1)*2,$n*2);
  15.          }
  16.  echo $newstr;
  17. ?>
  18.  
  19.  

Суть вот в чём:
нужно найти номер каждой буквы в строке, и заменить эту букву на следующую в той же строке


-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
KingStar
Отправлено: 12 Февраля, 2015 - 20:47:32
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




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

используй функции для работы с многобайтными строками mb_strlen, mb_substr
(Добавление)
пища для размышления

http://php[dot]net/manual/ru/ref[dot]mbstring.php


-----
То что программа работает, не означает что она написана правильно!
 
 Top
xTODx
Отправлено: 12 Февраля, 2015 - 22:51:36
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


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




KingStar пишет:
знаки вопросов и т.п. возникают из-за символов русского языка,
латиница побитово имеет один байт, а кирилица может больше

используй функции для работы с многобайтными строками mb_strlen, mb_substr
(Добавление)
пища для размышления

http://php[dot]net/manual/ru/ref[dot]mbstring.php

Вот, обновил
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  $one  = 'йцукенгшщзхъ';
  4.  $one .= "фывапролджэ";
  5.  $one .= "ячсмитьбю ";
  6.  $str  = "привет";
  7.  $newstr = "";
  8.   $len =  mb_strlen($str);
  9.   $p = mb_strlen($one);
  10.  for($i=1; $i<=$len; $i++){
  11.         echo $n = mb_strrpos($one, mb_substr($str, $i-1, $i));
  12.         echo "\n";
  13.          $newstr .=  mb_substr($one,$n-1,$n);
  14.          }
  15.  echo $newstr;
  16. ?>
  17.  

Всё-равно не верно что-то


-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
KingStar
Отправлено: 12 Февраля, 2015 - 23:20:54
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


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




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

Цитата:
нужно найти номер каждой буквы в строке, и заменить эту букву на следующую в той же строке


когда у тебя по коду уже не одна строка


-----
То что программа работает, не означает что она написана правильно!
 
 Top
xTODx
Отправлено: 15 Февраля, 2015 - 01:46:01
Post Id



Посетитель


Покинул форум
Сообщений всего: 282
Дата рег-ции: Янв. 2013  
Откуда: Киев/Шостка


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




KingStar пишет:
понять бы задачу, может и чем помогли бы
на деле пишешь одно, а код делает совсем другое

Цитата:
нужно найти номер каждой буквы в строке, и заменить эту букву на следующую в той же строке


когда у тебя по коду уже не одна строка

что не так?
у меня есть строка $str
и строка $one - в которой мы берём символы
$newstr - новая строка, которая формируется


-----
Был Ламером, пытался чему-то научится, спустя 2 года так и остался ламером.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB