Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > как сделать подсчет символов внутри preg_replace?


Автор: AlexW 24.8.2007, 15:40
$new=preg_replace('/<td([^>]*)?>([^(<td>|<tr>)]+)<\/td>/Ui',strlen($2),$str);

как можно сделать подсчет символов второго найденого выражения и заменить его на цифру колва символов?

Автор: SamDark 24.8.2007, 16:41
AlexW, 
Можно. Надо воспользоваться модификатором /e. См. мануал по preg_replace, там есть пример.

Автор: AlexW 24.8.2007, 20:33
Цитата(SamDark @ 24.8.2007,  16:41)
AlexW, 
Можно. Надо воспользоваться модификатором /e. См. мануал по preg_replace, там есть пример.

спасибо разобралсяsmile

вот только как теперь рядом еще и обычные символы выводить..?
и так не работает 
$new1=preg_replace('/<td([^>]*)?>([^(<td>|<tr>)]+)<\/td>/Uie',"<td>strlen('\\2')</td>",$str1);
и так
$new1=preg_replace('/<td([^>]*)?>([^(<td>|<tr>)]+)<\/td>/Uie',"<td>".strlen('\\2')."</td>",$str1);
и другие варианты пробовал..
как правельно будет?

Добавлено через 4 минуты и 44 секунды
вопрос решен так:
$new1=preg_replace('/<td([^>]*)?>([^(<td>|<tr>)]+)<\/td>/Uie',"'<td>'.strlen('\\2').'</td>'",$str1);

SamDark, спасибо за наводкуsmile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)