PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 6
Heger Отправлено: 06 Февраля, 2017 - 17:13:22 • Тема: preg_match переменную из строки если в начале строки есть символ или нет ничего • Форум: Регулярные выражения

Ответов: 3
Просмотров: 696
Строитель пишет:
Heger пишет:
а нужно только 2=12646
PHP:
скопировать код в буфер обмена
  1. $old_grupps = '22=12646,23=11912,2=12646';
  2. $id_new_gruppu = '~,*(\d=\d{5})~';
  3.  
  4. if (preg_match($id_new_gruppu, $old_grupps, $match)) {
  5.     echo $match[1]; // 2=12646
  6. }


Спасибо, буду пробовать
Heger Отправлено: 05 Февраля, 2017 - 03:56:25 • Тема: preg_match переменную из строки если в начале строки есть символ или нет ничего • Форум: Регулярные выражения

Ответов: 3
Просмотров: 696
Друзья, помогите разобраться составить выражение.
PHP:
скопировать код в буфер обмена
  1.  
  2. $old_grupps = "22=12646,23=11912,2=12646";
  3. $id_new_gruppu = "2";
  4. if (preg_match("/".$id_new_gruppu."\=/i",$old_grupps)) {
  5.  
  6. }
  7.  

в итоге выбирается 22=12646 и 2=12646, а нужно только 2=12646
Вариант "/\,".$id_new_gruppu."\=/i" не подходит, нужно учесть что перед $id_new_gruppu может ничего не быть, тоесть не пробел, в просто ничего - начало строки
Heger Отправлено: 12 Сентября, 2016 - 14:22:10 • Тема: Вытянуть несколько значений из таблицы html и сгруппировать их • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 821
Добрый день, подскажите в решении задачи, уже 2-й день пытаюсь, но всё что-то не получается, как я понимаю проблема решается только регулярными выражениями.
Есть таблицы, их n-ое количество, всё это в одной переменной $filtr_table в виде HTML кода:
CODE (html):
скопировать код в буфер обмена
  1. <table class="filtr_line"><tbody><tr>
  2. <td class="title_view" id="201691293391"><span>Бренд</span></td>
  3. <td class="variantu_filtra"><span id="20169122051">Название 1</span><span id="201691294051">Название 2</span><span id="201691263141">Название 3</span><span id="201691213241">Название 4</span></td></tr></tbody></table>
  4.  
  5. <table class="filtr_line"><tbody><tr>
  6. <td class="title_view" id="20169122411"><span>Размер</span></td>
  7. <td class="variantu_filtra"><span id="201691225871">Маленький</span><span id="201691281051">Средний</span><span id="201691254341">Большой</span><span id="201691295381">Огромный</span></td></tr></tbody></table>
  8.  
  9. <table class="filtr_line"><tbody><tr>
  10. <td class="title_view" id="2016912121"><span>Картридж</span></td>
  11. <td class="variantu_filtra"><span id="201691214981">35 мм.</span><span id="201691226841">40 мм.</span><span id="201691231611">45 мм.</span></td></tr></tbody></table>


В целом задача из выше приведенного кода сделать одну таблицу с select'ами которая будет выглядить вот так:
CODE (html):
скопировать код в буфер обмена
  1. <table>
  2. <tr>
  3. <td id="201691293391">Бренд</td>
  4. <td><select>
  5. <option id="20169122051">Название 1</option>
  6. <option id="201691294051">Название 2</option>
  7. <option id="201691263141">Название 3</option>
  8. <option id="201691213241">Название 4</option>
  9. </select></td>
  10. </tr>
  11. <tr>
  12. <td id="20169122411">Размер</td>
  13. <td><select>
  14. <option id="20169122051">Маленький</option>
  15. <option id="201691281051">Средний</option>
  16. <option id="201691254341">Большой</option>
  17. <option id="201691295381">Огромный</option>
  18. </select></td>
  19. </tr>
  20. <tr>
  21. <td id="2016912121">Картридж</td>
  22. <td><select>
  23. <option id="201691214981">35 мм.</option>
  24. <option id="201691226841">40 мм.</option>
  25. <option id="201691231611">45 мм.</option>
  26. </select></td>
  27. </tr>
  28. </table>


Мне бы хотя бы в начале подсказать как делать, а дальше я разберусь.
Пробовал для начала получить содержимое каждой таблицы в массиве и потом перебирая каждую формировать дальше, но на самом начале не получается. Вот например:
PHP:
скопировать код в буфер обмена
  1. preg_match_all('/\<table\>(.*)\<\/table\>/i', $filtr_html, $arr);
  2.    print_r($arr);

выдает пустой массив:
CODE (html):
скопировать код в буфер обмена
  1. Array
  2. (
  3.     [0] => Array
  4.         (
  5.         )
  6.  
  7.     [1] => Array
  8.         (
  9.         )
  10.  
  11. )


Помогите хотя бы подобрать правильное выражение для preg_match_all чтобы разбить $filtr_table по отдельным таблицам в массиве
Heger Отправлено: 14 Июля, 2016 - 02:11:42 • Тема: Как отсортировать значения в переменной • Форум: Хранение данных, их вывод и обработка

Ответов: 2
Просмотров: 897
Добрый день, подскажите как отсортировать значения в переменной.
Тоесть из:
PHP:
скопировать код в буфер обмена
  1. $sql_where = "10646,10074,10795,10787";

сделать
PHP:
скопировать код в буфер обмена
  1. $sql_where = "10074,10646,10787,10795";

Заранее благодарен, очень нужно
Heger Отправлено: 22 Июня, 2016 - 13:12:33 • Тема: Как из строки сделать массив и выдергивать значения по ключу • Форум: Хранение данных, их вывод и обработка

Ответов: 4
Просмотров: 1161
Спасибо, уже разобрался сам используя логическое выражение
PHP:
скопировать код в буфер обмена
  1. $str = "d3=5,d4=3,d5=7,d8=1";
  2. $id = 5; // или любая другая известная цифра d3, d4, dn...
  3. preg_match("/(d".$id."=)(\d+)/i", $str, $matches);
  4. echo = $matches[2]; //7
Heger Отправлено: 22 Июня, 2016 - 12:18:32 • Тема: Как из строки сделать массив и выдергивать значения по ключу • Форум: Хранение данных, их вывод и обработка

Ответов: 4
Просмотров: 1161
Добрый день, я новичок поэтому не обессудьте, а помогите Воздушный шарик
В базе записана строка $str как текст, как из этой строки зная номер d выдергивать его значения

Ключей d множество, как например получить значение d5? Тоесть чтобы было:

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB