Как заменить символы в строке в PHP? - PullRequest
0 голосов
/ 27 февраля 2011

У меня проблема с PHP.У меня есть такая строка:

"qqslsqpsq"

И я хочу заменить каждое 's' на отдельное значение, например:

  • First 's' -> pos:2 -> 'web'
  • Секунд 's' -> поз: 4 -> 'book'
  • Третий 's' -> поз: 7 -> 'pen'
  • ...

В конце строка будет преобразована в:

"qqweblbookqppenq"

Я прочитал прочитанное str_replace() мощно, но кажется, что не можетсделай это.Я думаю найти положение каждого 's' и заменить его индексами, но я не могу !!

Можете ли вы руководить мной?Есть какой-либо способ сделать это?

Ответы [ 2 ]

1 голос
/ 27 февраля 2011
function replaceCallback() {
    static $i = 0;
    $replacements = array('web', 'book', 'pen');
    return $replacements[$i++];
}

echo preg_replace_callback('/s/',  'replaceCallback', 'ashreswfsb');
0 голосов
/ 27 февраля 2011

Использование str_replace означало бы, что вам нужно перебрать строку, а затем использовать смещение первых найденных значений, чтобы решить, где и что заменить.Вместо этого используйте preg_replace, чтобы сделать это в одном выражении.

$string = 'qqslsqpsq';
$string = preg_replace('/(.*?)s(.*?)s(.*?)s/', '${1}web${2}book${3}pen', $string);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...