<div>Вася</div>
<div>Маша</div>
<div>Саша</div>
<div>Митя</div>
Как сделать replace чтоб вышло:
<div id="1">Вася</div>
<div id="2">>Маша</div>
<div id="3">>Саша</div>
<div id="4">>Митя</div>
Спустя 1 час, 17 минут, 52 секунды (3.11.2009 - 13:33) twin написал(а):
PHP |
<?php |
А если серьёзно, то не ясны входящие условия. По порядку надо или в зависимости от маш и саш?
Спустя 54 минуты, 48 секунд (3.11.2009 - 14:28) Андрей написал(а):
Входящие условия
$text1 = '<div>Вася</div>
<div>Маша</div>
<div>Саша</div>
<div>Митя</div>';
Нужно чтоб каждий div имел id = номер по порядку
$text1 = '<div>Вася</div>
<div>Маша</div>
<div>Саша</div>
<div>Митя</div>';
Нужно чтоб каждий div имел id = номер по порядку
Спустя 2 минуты, 13 секунд (3.11.2009 - 14:30) Gabriel написал(а):
и зачем тут реплейс?
Спустя 5 минут, 21 секунда (3.11.2009 - 14:36) andrey написал(а):
Если быть точным в базе Mysql есть поле с данными
<div>Вася</div>
<div>Маша</div>
<div>Саша</div>
<div>Митя</div>
Считываю его и нужно пронумировать divы чтоб потом сделать ссылки
<a href="#1">
<div name="1">>Маша</div>
<div name="3">>Саша</div>
<div name="4">>Митя</div>';
<div>Вася</div>
<div>Маша</div>
<div>Саша</div>
<div>Митя</div>
Считываю его и нужно пронумировать divы чтоб потом сделать ссылки
<a href="#1">
<div name="1">>Маша</div>
<div name="3">>Саша</div>
<div name="4">>Митя</div>';
Спустя 7 минут, 17 секунд (3.11.2009 - 14:43) sergeiss написал(а):
Цитата (andrey @ 3.11.2009 - 15:36) |
сли быть точным в базе Mysql есть поле с данными... |
А зачем такой изврат? Причем, изврат полный.
Держи в БД только список имен, безо всяких там дивов. И будет тебе счастье Тогда ты сможешь при выводе формировать всё, что угодно. И это будет проще.
Спустя 4 минуты, 1 секунда (3.11.2009 - 14:47) Андрей написал(а):
Втом то и дело что уже есть забитая база и ее нужно корректно вывести
Спустя 12 минут, 13 секунд (3.11.2009 - 14:59) sergeiss написал(а):
А если сначала преобразовать нужные таблицы, а потом уже выводить? Или это тоже "низзя"?
Ежели никак по-другому не получится, то надо:
1. Разбить текст на массив, каждый элемент которого равен одной строке из исходного текста.
2. В каждом элементе массива делаем нужные замены... Это надо для того, чтобы можно было "унифицировать" обработку, например, сделать функцию. Или просто внутри цикла делать нужны преобразования.
3. Опять соединяем вместе всё в одну строку.
Ежели никак по-другому не получится, то надо:
1. Разбить текст на массив, каждый элемент которого равен одной строке из исходного текста.
2. В каждом элементе массива делаем нужные замены... Это надо для того, чтобы можно было "унифицировать" обработку, например, сделать функцию. Или просто внутри цикла делать нужны преобразования.
3. Опять соединяем вместе всё в одну строку.
Спустя 4 минуты, 38 секунд (3.11.2009 - 15:04) Gabriel написал(а):
PHP |
<?php |
ну наверное гдето так. ануко експерты попинайте меня!!!
Спустя 12 минут, 37 секунд (3.11.2009 - 15:17) glock18 написал(а):
1. $var3 внутрь цикла
2. если выбирается в одной ячейке, то цикл нужно типа
$str = 'куча дивов';
2. если выбирается в одной ячейке, то цикл нужно типа
$str = 'куча дивов';
PHP |
for ($i = 1; $str = str_replace('<div>', '<div id="' . $i . '">', $str, 1); $i++); |
Спустя 1 минута, 13 секунд (3.11.2009 - 15:18) andrey написал(а):
Пробовал вот так..
Но как увеличивать $i
$desc="<div>Вася</div>";
function next_link($matches)
{
// как обычно: $matches[0] - полное вхождение шаблона
// $matches[1] - вхождение первой подмаски,
// заключенной в круглые скобки, и так далее...
return '<a name="link'.$i++.'"></a>'.$matches[0];
}
echo preg_replace_callback('/(<div.*>)(.*)(<\/div>)/imxsU', "next_link",$desc);
Но как увеличивать $i
$desc="<div>Вася</div>";
function next_link($matches)
{
// как обычно: $matches[0] - полное вхождение шаблона
// $matches[1] - вхождение первой подмаски,
// заключенной в круглые скобки, и так далее...
return '<a name="link'.$i++.'"></a>'.$matches[0];
}
echo preg_replace_callback('/(<div.*>)(.*)(<\/div>)/imxsU', "next_link",$desc);
Спустя 5 минут, 14 секунд (3.11.2009 - 15:23) Gabriel написал(а):
andrey
увеличивать в цыкле $i++
или еше лутше вырезать дивы к бабушке (как сказал серж ето не хорошо хранить дивы в табле) и сделать в цыкле так
увеличивать в цыкле $i++
или еше лутше вырезать дивы к бабушке (как сказал серж ето не хорошо хранить дивы в табле) и сделать в цыкле так
PHP |
echo '<div id="'.$i++.'">'.$тут имя без дивов.'</div>'; |
Спустя 4 минуты, 47 секунд (3.11.2009 - 15:28) andrey написал(а):
Вкаком цикле функция preg_replace_callback как я понял вызывает функцию next_link столько сколько найдет в тексте <div></div>
и куда цикл
и куда цикл
Спустя 1 минута, 52 секунды (3.11.2009 - 15:30) andrey написал(а):
база данных это joomla
а там все данные в виде html
а там все данные в виде html
Спустя 38 секунд (3.11.2009 - 15:30) glock18 написал(а):
andrey
1. у тебя регулярка неправильная.
2. прислушайся и сделай по-нормальному. sql скрипт, который разложит все по полочкам, вместе с построением самих полочек займет 2-3 часа.
1. у тебя регулярка неправильная.
2. прислушайся и сделай по-нормальному. sql скрипт, который разложит все по полочкам, вместе с построением самих полочек займет 2-3 часа.
Цитата |
база данных это joomla а там все данные в виде html |
отжог, однако.