Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Вставить подстроку в строку, в определенных местах
LASSO  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 1
Пользователь №: 39089
На форуме: 11 лет, 12 дней
Карма:




Помогите пожалуйста составить функцию, которая подставляла бы подстроки в строку в разных местах.

Например есть текстовые данные с html тегами
$data = '<div>Текстовая строка<a href="http://google.ru">Текст ссылки</a></div>'

Нужно через каждый третий символ текста вставить определенный символ (только не вставляя его в html теги):
$insert = "A";

$new_data = func($data, $insert, 3);

И новая строка в итоге должна выглядеть примерно так:

<div>ТекАстоАваяА стАрокАа<a href="http://google.ru">ТеАкстА ссАылкАи</a></div>



Это сообщение отредактировал LASSO - 7.03.2014 - 22:59
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Winston  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 9509
Пользователь №: 18161
На форуме: 15 лет, 8 месяцев, 26 дней
Карма: 552




Примерно так :D
$int = 3; //Интервал вставки
$char = 'А'; //Символ для вставки
$str = '<div>Текстовая строка<a href="http://google.ru">Текст ссылки</a></div>';

$res = preg_replace_callback(
"#(>)(.*)?((?(1)<))#isuU",
function($item) use ($int, $char)
{
return $item[1] . preg_replace('/(.{' . $int . '})/isu', '$1' . $char, $item[2]). $item[3];
},
$str
);
echo htmlspecialchars($res); //<div>ТекАстоАваяА стАрокАа<a href="http://google.ru">ТекАст АссыАлкиА</a></div>


Это сообщение отредактировал Winston - 8.03.2014 - 01:26
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4155
Пользователь №: 38635
На форуме: 11 лет, 2 месяца, 23 дня
Карма: 223




Winston
Злой ты smile.gif

LASSO
Код сам напишешь, а алгоритм может быть такой:
Раз тебе не нужно вставлять в html теги, то ты должен "бежать" по строке и найти символ ">", далее ищешь "<". Если между ними есть текст, то это твое, редактируешь его и goto "бежать" по строке и найти символ ">".

P.S. Криворукая верстка, где встречается не обрабленный контейнерами текст, игнорируется.



--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса