Функция PHP для замены (i) символа позиции - PullRequest
20 голосов
/ 22 октября 2010

Есть ли в PHP функция, которая принимает строку, число (i) и символ (x), а затем заменяет символ в позиции (i) на (x)?

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

Ответы [ 5 ]

52 голосов
/ 22 октября 2010
$str    = 'bar';
$str[1] = 'A';
echo $str; // prints bAr

или вы можете использовать библиотечную функцию substr_replace как:

$str = substr_replace($str,$char,$pos,1);
14 голосов
/ 22 октября 2010

Я поражен, почему никто не помнит о substr_replace ()

substr_replace($str, $x, $i, 1);
3 голосов
/ 22 октября 2010

Codaddict является правильным , но если вы хотите функцию, вы можете попробовать ...

function updateChar($str, $char, $offset) {

   if ( ! isset($str[$offset])) {
       return FALSE;
   }

   $str[$offset] = $char;

   return $str;

}

Это работает!

1 голос
/ 22 октября 2010
function replace_char($string, $position, $newchar) {
  if(strlen($string) <= $position) {
    return $string;
  }
  $string[$position] = $newchar;
  return $string;
}

Безопасно рассматривать строки как массивы в PHP, если вы не пытаетесь изменить символы после конца строки. См. Руководство для строк :

0 голосов
/ 14 января 2017
implode(':', str_split('1300', 2));

возвращается:

13: 00

Также очень хорошо для некоторых номеров кредитных карт, таких как Visa:

implode(' ', str_split('4900000000000000', 4));

возвращается:

4900 0000 0000 0000

str_split - преобразовать строку в массив

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...