Дописать PHP код
250 UAHЕсть xml прайс. Настроено изменение или удаление характеристик товара, но не знаю как это сделать с определенными условиями.
Например один из множества товаров:
<offer id="6208" available="true">
<currencyId>UAH</currencyId>
<categoryId>11111</categoryId>
<picture>http://133.243.123.83/Rozetka/Photo/6208.jpeg</picture>
<name>Туфли Мальвы 21,3 см 33 р Темно-синие Ш-240</name>
<description>
<![CDATA[Продукция фабрики Мальвы.]]>
</description>
<price>292.8</price>
<stock_quantity>1</stock_quantity>
<vendor>Мальвы</vendor>
<param name="Размер">33</param>
<param name="Страна регистрации бренда">Украина</param>
<param name="Цвет">Темно-синий</param>
<param name="Артикул">Ш-240</param>
</offer>
Нужно:
1. Изменить значение тегов <categoryId> (например 11111 на 22222), но только а) в товарах определенной категории (например 11111); б) в товарах у которых в теге <name> есть слово "Туфли"; в) в теге <param name="Цвет"> есть слово "Темно-синий"
2. Удалить все товары, с available="false" (например <offer id="6209" available="false">)
3. Округлить значение в тегах <price> (292.8 на 293)
4. Добавить <keywords>Ключевое_слово_1, Ключевое_слово_2</keywords> но в товары с определенным <categoryId> (например 11111 или 22222)
5. Изменить название тега (например <param name="Размер"> на <param name="Супер размер">33</param>) но в товарах с определенным <categoryId> (например 11111 или 22222)
6. Изменить значение в теге <param name="Цвет"> (например с "Темно-синий" на "Черный") но в товарах с определенным <categoryId> (например 11111 или 22222)
Я использую несколько рабочих формул (их можно использовать в помощь):
1. Удаление строки: $find=["/<name>Львёнок<\/name>/']; $res_prom = preg_replace($find,"",$res_prom);
2. Удаление тега с любым содержанием: $res_prom = preg_replace('/\s?<compan[^>]*?>.*?<\/compan>\s?/si','', $res_prom);
3. Удаление тега с любым содержанием2: $res_prom = preg_replace('#<param\b[^>]+\bname\s*=\s*[\'\"]Артикул[\'\"][^>]*>([\s\S]*?)</param>#','', $res_prom);
4. Удаление тега с любым содержанием3: $res_prom = preg_replace('/<param name="Артикулы">.*.<\/param>/',"",$res_prom);
5. Замена определенных категорий: $file = file('prom_ids.txt'); foreach($file as $ids) { if (!trim($ids)) break; $id = trim(explode(' ', $ids)[0]); $id_r = trim(explode(' ', $ids)[1]); $res_prom = str_replace('<categoryId>'.$id.'<', '<categoryId>'.$id_r.'<', $res_prom);}
В файле prom_ids.txt в каждой строчке категории для смены через пробел (например 11111 22222)
6. Замена тегов: $res_prom = preg_replace("!<categories>(.*?)</categories>!si","<catalog>\\1</catalog>",$res_prom);
7. Замена простая: $res_prom = str_replace("offer","item",$res_prom);
8. Замена тегов2: $pattern_prom = '#<param\b[^>]+\bname\s*=\s*[\'\"]Артикул[\'\"][^>]*>([\s\S]*?)</param>#'; $res_prom = preg_replace_callback($pattern_prom, function ($result_prom) use ($values) { if (isset($result_prom[1])) { return '<vendorCode>'.$result_prom[1].'</vendorCode>'; }}, $res_prom);
9. Замена цен: $pattern_prom = '/<price>(.*)<\/price>(\s+)<s/'; $res_prom = preg_replace_callback($pattern_prom, function ($result_prom) use ($values) { if (isset($result_prom[1])) {return '<price>'.$result_prom[1]* 1.2 .'</price> <s'; }}, $res_prom);
Думаю, что для знающего PHP, сдесь работы на около 10 минут.
Отзыв заказчика о сотрудничестве с Василем Заболотним
Дописать PHP кодОчень благодарен фрилансеру за терпение, потраченое время и проделанную работу. В результате мой проэкт полностью выполнен и я доволен)
Отзыв фрилансера о сотрудничестве с Анатолием Скибой
Дописать PHP кодИнтересный проект, Анатолий всегда на связи, приятный в общении человек.
Рад сотрудничеству!
-
Добрый день, Анатолий!
Есть данная работа
Обращайтесь - буду рад сотрудничеству
-
45 Здравствуйте. Готов выполнить задание. Выполню за кратчайшие сроки
-
Пересобирете данный файл в новый но с задаными условиями, например с той же конструкцией switch
-
Прочитайте мануал по php xml и будет вам счастье
-
По хорошему нужно писать парсить xml и делать изменения на уровне объекта, а не регулярными выражениями. Могу реализовать подобное на java
-
Актуальные фриланс-проекты в категории PHP
Разработчик на проект CMS-сайт на Drupal 7 + PHP/MySQL.Ищем разработчика для помощи с настройкой CMS-сайта на Drupal 7 + PHP/MySQL. Задача:1. Сделать карточки товара на весь ассортимент товара (в настоящее время на сайте не на всех товарах есть карточки товара с описанием и характеристиками).2. Добавить верные характеристики на… CMS, PHP ∙ 1 день назад ∙ 39 ставок |
Ищем специалиста Bitrix24 / интегратора CRM для настройки автоматизацииНаша компания работает с CRM Bitrix24. Нам нужен специалист, который сможет настроить автоматическое добавление номера телефона в лиды/заказы в двух форматах. Автоматизация должна быть корректно настроена для двух стран: Республика Молдова и Румыния. Задача: При создании лида… PHP, Веб-программирование ∙ 1 день 23 часа назад ∙ 24 ставки |
Оптимизация сайтаОптимазация сайта jdgreta.co.uk на Shopify. Сео аудит приложен к проекту. Основные задачи - - Поправить все мета данные - Выполнить ТЗ для программиста (тк в этом проекте совмещены задачи для программиста и СЕО, если вы не компания - можете использовать помощь) - Поправить… HTML и CSS верстка, PHP ∙ 2 дня 19 часов назад ∙ 32 ставки |
Специалист по HoroshopНужен специалист, который сможет правильно настроить товарный Feed. Проблема: Сейчас более 13 000 товаров выгружаются с одинаковым значением типа (например, «все для маникюра и педикюра»). Из-за этого в Google Ads невозможно разделить товары на сегменты и задать разные… PHP, Сопровождение сайтов ∙ 3 дня 21 час назад ∙ 21 ставка |
Сделать так, чтобы письма о заказах из магазина не попадали в спамСейчас есть магазин на опенкарт, письма о заказах попадают в спам, нужно сделать так, чтобы они попадали во Входящие (ukr.net gmail), проверьте. Хостинг написал: Плохая доставка электронной почты может быть связана с низкой репутацией отправителя - IP или домена. В таком… PHP, Веб-программирование ∙ 4 дня 23 часа назад ∙ 47 ставок |