Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Части массива преобразовать в переменные.
 
 автор: Loneliness   (18.11.2007 в 11:35)   письмо автору
 
 

Есть переменная $soc в ней текст, разделенный на блоки конструкцией <br id="delim">
Кам можно, например, каждый двадцатый разделитель <br id="delim"> заменить на <br id="delim1">, чтобы после получить массив по 20 блоков?

   
 
 автор: kasmanaft   (18.11.2007 в 12:34)   письмо автору
 
   для: Loneliness   (18.11.2007 в 11:35)
 

Попробуйте вот это:
<?php
$text 
'Есть переменная $soc в ней текст, разделенный на блоки конструкцией <br id="delim">
Есть переменная $soc в ней текст, разделенный на блоки конструкцией <br id="delim">
Есть переменная $soc в ней текст, разделенный на блоки конструкцией <br id="delim">
Есть переменная $soc в ней текст, разделенный на блоки конструкцией <br id="delim">
Есть переменная $soc в ней текст, разделенный на блоки конструкцией <br id="delim">
Есть переменная $soc в ней текст, разделенный на блоки конструкцией <br id="delim">
Есть переменная $soc в ней текст, разделенный на блоки конструкцией <br id="delim">'
;
print_r(preg_split('/((?:.*?<br id="delim">){2})/s'$text, -1PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY));
?>

   
 
 автор: Loneliness   (18.11.2007 в 13:47)   письмо автору
 
   для: kasmanaft   (18.11.2007 в 12:34)
 

Чуток не то, что мне надо. Нужно именно каждый двадцатый разделитель <br id="delim"> заменить на другой- <br id="delim1"> . Затем я уже буду делать массив по новому разделителю и выводить из него элементы. Можно такое сделать?
P.S Приведенный Вами код тоже можно использовать, но в контексте конкретно моего скрипта это сильно усложняет последующий вывод. Хотелось бы обойтись без дополнительных правок кода.

   
 
 автор: kasmanaft   (18.11.2007 в 20:12)   письмо автору
 
   для: Loneliness   (18.11.2007 в 13:47)
 

>> Нужно именно каждый двадцатый разделитель <br id="delim"> заменить на другой- <br id="delim1">
Ссстранно :)
Потом ведь explode() и получим то же самое... ?

Попробуйте тогда вот так:
preg_replace('/((?:.*?<br id="delim">){19})(.*?<br id=")delim">/s', '$1$2delim1">', $text);

   
 
 автор: Loneliness   (19.11.2007 в 02:20)   письмо автору
 
   для: kasmanaft   (18.11.2007 в 20:12)
 

Отлично, это именно то.:)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования