Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Обход str_replace

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

1. SeaUser - 19 Июня, 2017 - 13:47:35 - перейти к сообщению
В str_replace есть небольшая проблема, код
PHP:
скопировать код в буфер обмена
  1. $text = "a|b/c";
  2. $search = array("|", "/");
  3. $replace = array("</td>", "</tr>");
  4. str_replace($search, $replace, $text);

Меняет | на </td>, а затем </td> на <</tr>td>.
В этом случае можно просто поменять элементы в массивах местами.
А если, допустим, будет

Что делать в этом случае? (что бы не было двойной замены)
2. andrewkard - 19 Июня, 2017 - 14:01:27 - перейти к сообщению
Цитата:

mixed str_replace ( mixed search, mixed replace, mixed subject [, int &count] )

[, int &count]
3. SeaUser - 19 Июня, 2017 - 14:41:25 - перейти к сообщению
andrewkard пишет:

[, int &count]

Это не то, оно возвращает количество замен
4. OrmaJever - 20 Июня, 2017 - 11:53:38 - перейти к сообщению
SeaUser пишет:
Что делать в этом случае? (что бы не было двойной замены)

использовать preg_replace, обычная строковая замена уже не пойдёт
5. andrewkard - 20 Июня, 2017 - 13:10:29 - перейти к сообщению
SeaUser пишет:
Это не то, оно возвращает количество замен

точно. Завтык.
6. MouseZver - 20 Июня, 2017 - 13:59:26 - перейти к сообщению
http://php.net/strtr

 

Powered by ExBB FM 1.0 RC1