Автор Тема: вызов функции из *_replace  (Прочитано 2380 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CLiI{er

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glossword.info/
вызов функции из *_replace
« : 04 Января 2002, 17:09:31 »
Допустим, для обработки текста используется следующий код:

$msg = eregi_replace("\\[img\\]([^\\[]*)\\[/img\\]","\\\\1",$msg);

Можно ли отправить \\\\1 в другую функцию? Пробовал так:

$msg = eregi_replace("\\[img\\]([^\\[]*)\\[/img\\]",func("\\\\1"),$msg);

Код работает неправильно. В функцию приходит строка \\1 (или 1, если без кавычек), а не найденное eregi_replace\'ом значение. Подскажите, может существует другое решение.
PHP/4.0.8-dev
gw веб-песочница жж

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
вызов функции из *_replace
« Ответ #1 : 05 Января 2002, 00:45:02 »
Если я правильно понял, то нужно использовать preg_replase() и директиву e вставлять

Вот пример:
function break_long_words($source_text,$lng)
{
   $regExp=\'/(\\S{\'.$lng.\',})/ei\';
   $res_text=preg_replace($regExp,"wordwrap(\'\\\\1\',$lng,\'\\n\',1)",$source_text);
   return $res_text;
}
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн CLiI{er

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 57
  • +0/-0
  • 0
    • Просмотр профиля
    • http://glossword.info/
вызов функции из *_replace
« Ответ #2 : 06 Января 2002, 14:41:08 »
Нужно было найти текст внутри тега img и
отправить найденный текст на дальнейшую обработку.
Решил задачу при помощи preg_match_all.
gw веб-песочница жж

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28