PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (2): [1] 2 »
Найдено сообщений: 23
tyshka
Отправлено: 25 Февраля, 2015 - 23:48:45 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Ts.Saltan пишет: PHP:
скопировать код в буфер обмена
$str = 'category_1(1),category_2(2),category_3(2),category_4(1),category_5(1),category_6(1)' ;
$category_items = 0 ;
foreach ( $res [ 0] as $k => $v ) {
$category_items += $res [ 2] [ $k ] ;
echo $res [ 1] [ $k ] . ', ' ;
}
echo PHP_EOL . '$category_items = ' . $category_items ;
Получается
прошу прощения, я не уточнил что в примере строки - category_* - название категории не в точности такое, а слово или словo-слово т.е. любое слово и если в названии категории несколько слов они разделены дефисами - и сами эти названия категорий в строке разделены запятыми
слово (1), слово-слово (2), слово (5) и т.д.
tyshka
Отправлено: 25 Февраля, 2015 - 21:00:39 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
есть еще вопросик... подскажите пожалуйста
есть строка
пояснение по строке
category_* - это название категории
(в скобках) к этим категориям указывается количество тем в соответствующей категории
нужно посчитать (сложить числа в скобках) - и вывести отдельно
и разбить строку на части разделенные запятой с удалением скобок
т.е.
из приведенной выше строки получить:
$category_items = 8; // сумма цифр в скобках
и распарсенная строка:
'category_1', 'category_2', 'category_3', 'category_4', 'category_5', 'category_6'
tyshka
Отправлено: 24 Февраля, 2015 - 20:04:52 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Цитата:
$xml = simplexml_load_string('<?xml version="1.0" encoding="utf-8"?><root>'.str_replace(['[',']','”','”'],['<','>','"','"'], $data).'</root>');
syntax error, unexpected '[', expecting ')'
tyshka
Отправлено: 24 Февраля, 2015 - 19:49:36 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Ts.Saltan пишет:
Если бы в блоке менялись только названия параметров, например
Цитата:
[item link=”link1” image=”ссылка1”]содержимое1[/item]
[item title=”link1” image=”ссылка1”]содержимое1[/item]
[item title=”link1” link=”ссылка1”]содержимое1[/item]
то я могу написать
но если еще будет меняться количество этих параметров - хз можно ли вообще настолько универсальную регулярку написать, по крайней мере я вряд ли напишу
это был скорее такой "фантазийный" вопрос
да будут менятся названия параметров, а количество будет всегда постоянным, но скорее было бы востребованным отсутствие содержимого в некоторых параметрах, что я имею ввиду, например
один или два параметра будут обязатено присутствовать, третий может быть пустым
т.е. картинка image и содержимое - обязательно будут, а вот ссылка на картинку может отсутствовать
tyshka
Отправлено: 24 Февраля, 2015 - 18:26:50 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Ts.Saltan пишет: tyshka пишет: так я же в первом сообщении сегодня ответил что давайте сделаем под title
Цитата: '#\[item title="([^"]+)" image="([^"]+)"\]([^\[]*)\[/item\]#Ui'
Замечательно работает
работает если кавычки ", а если кавычки ” - не работает
(Добавление)
Ts.Saltan пишет: кавычки
они такие " (под них регулярка)
или такие ” (это уже совсем другой символ)
?
Ts.Saltan пишет: напишите примерный блок данных, который нужно распарсить
var_export($content)
tyshka пишет: Ts.Saltan пишет: var_export($content)
CODE (
htmlphp ):
скопировать код в буфер обмена
'
[item link=”link1” image=”ссылка1”]содержимое1[/item]
[item link=”link2” image=”ссылка2”]содержимое2[/item]
[item link=”link3” image=”ссылка3”]содержимое3[/item]
[item link=”link4” image=”ссылка4”]содержимое4[/item]
[item link=”link5” image=”ссылка5”]содержимое5[/item]
'
мы же это уже вычислили что проблема все-таки в кавычках, но вы увидели что используется link и видимо подумали что я перепутал и использую регулярку
Цитата: '#\[item title ="([^"]+)" image="([^"]+)"\]([^\[]*)\[/item\]#Ui'
для парсинга Цитата: [item link =”link” image=”ссылка”]содержимое[/item]
но я использовал соответствующую регулярку под link
Цитата: '#\[item link ="([^"]+)" image="([^"]+)"\]([^\[]*)\[/item\]#Ui'
понимаете?
суть проблемы не в именовании link или title я понимаю что нужно использовать соответствующую регулярку под нужное именование
а проблема в кавычках
var_export($content) выдает
Цитата: [item link=”link1” image=”ссылка1”]содержимое1[/item]
а регулярка написана под другие кавычки
(Добавление)
Ts.Saltan пишет: При чем тут кавычки
Я ж даже
ЖИРНЫМ выделил что в одной фразе title, в другой link
можно же сделать и универсальный вариант под любое присутствующее именование
Цитата:
'#\[item link ="([^"]+)" title ="([^"]+)" other ="([^"]+)" image ="([^"]+)"\]([^\[]*)\[/item\]#Ui'
какое будет то и выдаст - так же можно сделать?
tyshka
Отправлено: 24 Февраля, 2015 - 18:06:55 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Ts.Saltan пишет: При чем тут кавычки
Я ж даже
ЖИРНЫМ выделил что в одной фразе title, в другой link
так я же в первом сообщении сегодня ответил что давайте сделаем под title
(Добавление)
Ts.Saltan пишет:
Регулярка
Цитата: '#\[item title="([^"]+)" image="([^"]+)"\]([^\[]*)\[/item\]#Ui'
Подойдёт для
tyshka пишет: [item title ="заголовок" image="ссылка"]содержимое[/item]
Но не для
tyshka пишет: [item link =”link1” image=”ссылка1”]содержимое1[/item]
это я понимаю и это очевидно
если использовать
Цитата: '#\[item title ="([^"]+)" image="([^"]+)"\]([^\[]*)\[/item\]#Ui'
дначит толжно быть
Цитата: [item title ="заголовок" image="ссылка"]содержимое[/item]
если буду использовать link
Цитата: '#\[item link ="([^"]+)" image="([^"]+)"\]([^\[]*)\[/item\]#Ui'
дначит толжно быть
Цитата: [item link ="заголовок" image="ссылка"]содержимое[/item]
tyshka
Отправлено: 24 Февраля, 2015 - 17:38:25 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Ts.Saltan пишет: tyshka пишет: вот главный вопрос остается - может вообще убрать использование кавычек?
не в кавычках дело, а в именовании параметров
Регулярка
Цитата: '#\[item title="([^"]+)" image="([^"]+)"\]([^\[]*)\[/item\]#Ui'
Подойдёт для
tyshka пишет: [item title ="заголовок" image="ссылка"]содержимое[/item]
Но не для
tyshka пишет: [item link =”link1” image=”ссылка1”]содержимое1[/item]
тогда под такие кавычки ”
tyshka
Отправлено: 24 Февраля, 2015 - 17:18:09 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Ts.Saltan пишет: tyshka пишет: да без разницы, это же не имеет существенного значения
Для регулярки имеет значение, напишите какие могут быть ключи кроме link, title и т.д.
Та регулярка, что я написал для item title...
А вообще, структура похожа на xml, я бы поменял скобки [] на <> и парсил как xml встроенными функциями (simpleXML)
структура похожа на bbcode, а вообще это под wordpress шорткод, поэтому [] скобки не имеет смысла менять, они будут изначально и перегонять их из квадратных в <> не имеет смысла
давайте под начальный вариант решим
вот главный вопрос остается - может вообще убрать использование кавычек? чтобы небыло зависимости от типа кавычек
tyshka
Отправлено: 23 Февраля, 2015 - 04:31:38 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
так как заменить кавычки? или может кавычки вообще искоючить из регулярки чтобы не было танцев если кавычки будут другими отличными от условий проверки
tyshka
Отправлено: 22 Февраля, 2015 - 20:45:59 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
да без разницы, это же не имеет существенного значения главное если я буду применять "title" значит там должен присутствовать этот параметр [item title=...
если буду применять link значит [item link=...
tyshka
Отправлено: 22 Февраля, 2015 - 20:28:11 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Ts.Saltan пишет: var_export($content)
CODE (
htmlphp ):
скопировать код в буфер обмена
'
[item link=”link1” image=”ссылка1”]содержимое1[/item]
[item link=”link2” image=”ссылка2”]содержимое2[/item]
[item link=”link3” image=”ссылка3”]содержимое3[/item]
[item link=”link4” image=”ссылка4”]содержимое4[/item]
[item link=”link5” image=”ссылка5”]содержимое5[/item]
'
tyshka
Отправлено: 22 Февраля, 2015 - 20:11:39 • Тема: регулярка для preg_match_all • Форум: Регулярные выражения
Ответов: 31 Просмотров: 4038
Ts.Saltan пишет: кавычки
они такие " (под них регулярка)
или такие ” (это уже совсем другой символ)
?
вообще кавычки такие "
но при print_r( $content );
получается что кавычки ”
Страниц (2): [1] 2 »
Powered by ExBB FM 1.0 RC1. InvisionExBB