За последние 24 часа нас посетили 8686 программистов и 830 роботов. Сейчас ищут 389 программистов ...

Получить массив из строк по регулярному выражение

Тема в разделе "PHP для новичков", создана пользователем Hovik, 1 дек 2020.

  1. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    Привет всем мне нужно получить массив из строк по регулярному выражение прошу помаши
    PHP:
    1. $f = "(`category_id`, `language_id`, `name`, `meta_title`, `page_h1`, `seo_title`, `seo_h1`, `description`, `meta_description`, `meta_keyword`, `alt_text`, `title_text`) VALUES ('74', '3', 'брелок', '', '', 'брелок', 'брелок', '', 'брелок', 'брелок', '', '');";
    нужный результат
    PHP:
    1. `category_id`
    2. `language_id`
    3. `name`
    4. `meta_title`
    5. `page_h1`
    6. `seo_title`
    7. `seo_h1`
    8. `description`
    9. `meta_description`
    10. `meta_keyword`
    11. `alt_text`
    12. `title_text`
    13. '74'
    14. '3'
    15. 'брелок'
    16. ''
    17. ''
    18. 'брелок'
    19. 'брелок'
    20. ''
    21. 'брелок'
    22. 'брелок'
    23. ''
    24. ''
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.608
    Симпатии:
    686
    Адрес:
    Татарстан
    Убрать крайние скобки, а дальше через explode
     
  3. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    через explode не получится, я там показал коротки пример но есть и сложные примеры например
    PHP:
    1. $str = <<<HER
    2. (`category_id`, `language_id`, `name`, `meta_title`, `page_h1`, `seo_title`, `seo_h1`, `description`, `meta_description`, `meta_keyword`, `alt_text`, `title_text`) VALUES ('76', '2', 'Полимерная глина', '', '', 'Бижутерия, Полимерная глина', 'Полимерная глина', '<p style="margin: 0.5em 0px; line-height: 22.399999618530273px; color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px;"><span style="color:#D3D3D3;"><em><span style="font-size:12px;">Появление полимерной глины в широкой продаже началось в&nbsp;1964 году, когда появилась торговая марка Fimo. В начале 1930-х, в Германии инициативная женщина Фифи Ребиндер разработала и выпустила глину, которую назвала Фифи Мозаик. Глина была предназначена для изготовления голов кукол. В 1964 году Ребиндер продала формулу этой глины Эберхарду Фаберу (Eberhard Faber), который &laquo;развил&raquo; ее во всемирно известную в настоящее время марку ФИМО (Fimo).</span></em></span></p>
    3.  
    4. <p style="margin: 0.5em 0px; line-height: 22.399999618530273px; color: rgb(37, 37, 37); font-family: sans-serif; font-size: 14px;"><span style="color:#D3D3D3;"><em><span style="font-size:12px;">В то же время другие производители разрабатывали продукт, очень похожий на Фимо. в конце 1950-х, в Аргентине итальянка Моника Рэста использовала глину, которая называлась Лиммо (Limmo). Лиммо также была разработана немецкой компанией, но не Эберхардом Фабером. Вероятным производителем скорее всего был Рудольф Рейзер, который придумал глины &laquo;Формелло&raquo; (Formello) и &laquo;Моделло&raquo; (Modello).</span></em></span></p>
    5. <script></script>', 'Полимерная глина', 'Бижутерия, Полимерная глина', '', '');
    6. HER;
    здесь без регулярки не обойтись,
    разделителем могут быть кавычки ` '
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.608
    Симпатии:
    686
    Адрес:
    Татарстан
    что-то очень напоминает строки из дампа БД )))
     
  5. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    да вы прави
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.608
    Симпатии:
    686
    Адрес:
    Татарстан
    А какова цель этого разбора?
     
  7. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    хочу скопировать товары с опенцарт 1 на опенкарт 3 там очень сильно отличается структура и по этому хочу удалять некоторый столбцы
     
  8. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.608
    Симпатии:
    686
    Адрес:
    Татарстан
    Ну е мае...
    Это вообще делается чистым SQL без всякого php и парсинга
     
  9. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    нет доступа к phpmyadmin а на счет парсера я тоже думал но там 3 языка и на javasript е меняется хотя думаю тоже возможно ловит гет параметр но заморочка
     
  10. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.608
    Симпатии:
    686
    Адрес:
    Татарстан
    К бд есть же, раз дамп имеете..
     
  11. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    нет бд сделал из админке, там есть такая возможность, но видима придется сделать парсер
     
  12. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.608
    Симпатии:
    686
    Адрес:
    Татарстан
    Эх люди люди.... Любите жизнь усложнять...
    Создатт чистую бд, импортируете свой дамп, sql запросами в ней творите чего хотите...

    А вообще скорее всего у опенкарта есть даже готовые конвертеры с одной версии в другую с сохранением данных
     
  13. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
    согласен, но нужный модуль для одного домена стоит 1750 рублей, а нужно 2 (у нас скромный клиент)
     
  14. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.323
    Симпатии:
    257
    Уважаемый ADSoft хочет сказать, что если вам нужно разобрать дамп собственной таблицы, то используйте формат CSV.
     
  15. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.608
    Симпатии:
    686
    Адрес:
    Татарстан
    Я вот это хочу сказать - бесплатно и удобно. Никаких промежуточных выгрузок в PHP, потом из PHP же обратно в БД загонять будут
    --- Добавлено ---
    настолько жадный, что 3-4 тысячи жалко?а вручную этот импорт экспорт и преобразования в за бесплатно делаете? или Индусов за копейки нанимаете? имхо - работа выйдет гораздо дороже примен5ения готовых вещей... ибо индивидуально
     
  16. roboformation

    roboformation Активный пользователь

    С нами с:
    30 авг 2020
    Сообщения:
    162
    Симпатии:
    40
    PHP:
    1. preg_match_all ("/(['`])[^\1]*?\g1/", $str, $matches);
    2. print_r ($matches [0]);
    при условии, что внутри значения нет кавычек-границ
     
    Hovik нравится это.
  17. Hovik

    Hovik Активный пользователь

    С нами с:
    22 окт 2018
    Сообщения:
    89
    Симпатии:
    0
     
  18. PhilH99

    PhilH99 Новичок

    С нами с:
    27 ноя 2020
    Сообщения:
    3
    Симпатии:
    1
    Я бы лучше конечно за это денег заплатил,знающим,чем так сидеть мучаться,сложно же,голову всю ломать себе этим.А специалисты бы быстро все это сделали
     
    mkramer нравится это.