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
Форумы портала PHP.SU :: Версия для печати :: Замена на массив (со счетчиком)
Форумы портала PHP.SU » PHP » Регулярные выражения » Замена на массив (со счетчиком)

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

1. kuraga - 05 Мая, 2009 - 15:14:47 - перейти к сообщению
В строке "Что-то $1, что-то $2 и что-то $3" заменить "$1" на $var[1], "$2" на $var[2] и т.д. Как это сделать? А если не "$1", а "{1}" ("Что-то {1}, что-то {2} и что-то {3}")? Заранее спасибо.
2. EuGen - 05 Мая, 2009 - 15:20:36 - перейти к сообщению
А чем Вас не устроил
str_replace

?
3. kuraga - 05 Мая, 2009 - 16:52:36 - перейти к сообщению
В частности, неизвестно количество (максимальное) переменных. Нужно регэкспом
4. valenok - 05 Мая, 2009 - 23:50:42 - перейти к сообщению
Так наверное
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $str = '{0} valenok, {1} valenok';
  3. $array = Array(0 => 'hi', 1 => 'bye');
  4.  
  5.   function next_year($matches)  
  6.   {  
  7.       global $array;
  8.       return $array[substr($matches[1],1,-1)];  
  9. }
  10.  
  11.   echo preg_replace_callback("#(\{\d\})+#", "next_year",$str);
  12.  
5. kuraga - 06 Мая, 2009 - 08:00:02 - перейти к сообщению
Спасибо!

А в JavaScript'е как так сделать?

 

Powered by ExBB FM 1.0 RC1