задача: есть база с заказами, заказы хранятся в формате текста. Из заказов надо вырвать следующие данные: ид модели название модели количество заказанных моделей цена за единицу ид производителя модели. заказы могут быть в двух видах: 1) <a href=/catalog/m61.html target=_blank>Кресло-кровать/Орион/Фабрика "Русский мастер"</a><br> Кол-во: 2<br> Материал: 3 группа, Коллекция: <b>Сьюзи Принт</b>, Название материала: <b>VesnaBordo</b>, Компаньон: <b>VesnaBordoCom</b><br> Признаки модели: <br><b>Вид ножек</b>: Без ножек<br><b>Вид покрытия</b>: Несъемные чехлы<br><b>Возможность изменения размера</b>: Возможно изменение размера<br><b>Дополнительные элементы</b>: Ящик для белья<br><b>Механизм трансформации</b>: Выкатной<br><b>Конфигурация кресла</b>: Кресло-кровать<br><b>Назначение кресла</b>: Раскладное (спальное)<br><b>Подлокотники</b>: Мягкие<br><b>Тип модульной системы</b>: Гостиная модульная<br><b>Целевое предназначение</b>: Для гостиной<br><br> Признаки изделия: <br><b>Габарит</b>: 85x96 <br><b>Размер спального места</b>: 60x220 <br> <#> Цена приходная за ед.:5040 руб.<br> Цена розничная за ед.:5040 руб.<br> id модели: 61<br> id производителя: 1<~> 2) <a href="/detskaya_mebel/detskaya_krovat/drim_ldsp-m1731.html" target="blanck">Детская кровать/Дрим ЛДСП/Фабрика "ВЗПО"</a><br> Кол-во: 1 <br> Материал: с матрацем. Коллекция: <b>с матрацем</b>, Название материала: <b>oreh__</b> , <br> Признаки модели: <br><b>Наполнение спального места:</b> Пружинный блок<br><b>Дополнительные элементы:</b> Ящик для белья<br><b>Возможность изменения размера:</b> Возможно изменение размера<br><b>Вид матраца:</b> Блок независимых пружин<br><b>Целевое предназначение:</b> Детская мебель<br><br>Признаки изделия: <br> <b>Габарит</b>: 90х190/200 <br> <#> Цена приходная за ед.:8850 руб.<br> Цена розничная за ед.:8850 руб.<br> id модели: 1731<br> id производителя: 37<~> у меня с регуляркой туговато и поэтому сделал так: PHP: preg_match("/\<a.*blan[c]*k[\"]*\>(.*)\<\/a\>/",$bad_element,$arr); $model_name = (string)$arr[1]; preg_match("/.*-во:\s([0-9]+)[\s]*\<br\>.*/",$bad_element,$arr2); $quantity = (int)$arr2[1]; preg_match("/.*id[\s]модели:[\s]([0-9]+)\<br\>.*/",$bad_element,$arr3); $model_id = (int)$arr3[1]; preg_match("/.*id[\s]производителя:[\s]([0-9]+)\<~\>.*/",$bad_element,$arr4); $creater = (int)$arr4[1]; preg_match("/.*ена[\s]розничная[\s]за[\s]ед\.:([0-9]+)[\s]руб\.\<br\>.*/",$bad_element,$arr5); $price = (int)$arr5[1]; все работает... но я уверен что можно все сделать одним выражением, которое все найдет. Сам пробовал, но повторяюсь у меня с этим туго - эти выражения сочинял больше часа и еще несколько часов убил на составление одного большого - без результатов. Помогите плиз) хотя бы 2 правила склейте так чтобы работало а дальше сам справлюсь наверное
Подходит для обоих текстов !!!!! . )) PHP: <?php ini_set('display_errors',1); error_reporting(E_ALL); setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251'); $m ='<a href=/catalog/m61.html target=_blank>Кресло-кровать/Орион/Фабрика "Русский мастер"</a><br> Кол-во: 2<br> Материал: 3 группа, Коллекция: <b>Сьюзи Принт</b>, Название материала: <b>VesnaBordo</b>, Компаньон: <b>VesnaBordoCom</b><br> Признаки модели: <br><b>Вид ножек</b>: Без ножек<br><b>Вид покрытия</b>: Несъемные чехлы<br><b>Возможность изменения размера</b>: Возможно изменение размера<br><b>Дополнительные элементы</b>: Ящик для белья<br><b>Механизм трансформации</b>: Выкатной<br><b>Конфигурация кресла</b>: Кресло-кровать<br><b>Назначение кресла</b>: Раскладное (спальное)<br><b>Подлокотники</b>: Мягкие<br><b>Тип модульной системы</b>: Гостиная модульная<br><b>Целевое предназначение</b>: Для гостиной<br><br> Признаки изделия: <br><b>Габарит</b>: 85x96 <br><b>Размер спального места</b>: 60x220 <br> <#> Цена приходная за ед.:5040 руб.<br> Цена розничная за ед.:5040 руб.<br> id модели: 61<br> id производителя: 1<~>'; $p='/blanc?k\"?>(.+?)<\/a>.+?(кол-во: (\d)).+?(Цена приходная за ед\.:\d{3,5}).+?(id модели: \d{1,5}).+?(id производителя: \d{1,5})/si'; preg_match($p,$m,$match); echo $match[1]; echo '<br>'; echo $match[2]; echo '<br>'; echo $match[4]; echo '<br>'; echo $match[5]; echo '<br>'; echo $match[6]; echo '<br>'; ?>