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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярка, нужна помощь

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: удаление подчеркиваний
snikers987
Отправлено: 20 Марта, 2012 - 14:19:12
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $str = '___{content}__________';
  4. $value='<u>длинное содержимое</u>';
  5. preg_replace("#\{content\}[\_]{".mb_strlen($value)."}#", $value, $str);
  6.  

необходимо произвести замену {content} и подчеркиваний за ним так, чтобы если символов в $value больше чем подчеркиваний- убрать все, меньше убрать количество равное длинне строки $value.
Хотелось бы обойтись без блоков if else, если можно.

(Отредактировано автором: 20 Марта, 2012 - 14:24:05)



-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
EuGen Администратор
Отправлено: 20 Марта, 2012 - 14:31:06
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. $sData  = '___{content}__________';
  2. $sValue = 'строка7';
  3.  
  4. $sData=preg_replace_callback('/\{content\}([\_]+)/u', function($rgMatches) use ($sValue)
  5. {
  6.    $iCount = mb_strlen($rgMatches[1], 'UTF-8')-mb_strlen($sValue, 'UTF-8');
  7.    return $sValue.($iCount>0?str_repeat('_', $iCount):'');
  8. }, $sData);
  9.  
  10. //var_dump($sData);

?


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB