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

Например есть текстовые данные с 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>

Winston
Примерно так :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>
AllesKlar
Winston
Злой ты smile.gif

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

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



_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.