Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как правильно распарсить данную строку? / 9 сообщений из 9, страница 1 из 1
27.04.2006, 15:37:07
    #33694867
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
Есть строка такого вида:
Код: plaintext
[ИМЯ_ФУНКЦИИ имя_параметра="значение \"параметра" имя_параметра2=значение_параметра]

Как удобнеее всего распарсить значения параметров?
...
Рейтинг: 0 / 0
27.04.2006, 15:40:38
    #33694885
Robert Tappan Moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
регэкспом, конечно.
...
Рейтинг: 0 / 0
27.04.2006, 15:54:27
    #33694953
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
И какой регэксп был бы более правильен в этом случае?
...
Рейтинг: 0 / 0
27.04.2006, 16:41:11
    #33695170
Robert Tappan Moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
Код: plaintext
1.
2.
3.
4.
5.
6.
$t = '[ИМЯ_ФУНКЦИИ имя_параметра="значение \"параметра" имя_параметра2="значение \"параметра"]';
if (preg_match_all('/^\[([^\s]*)\s([^=]*)=((?:".*")|(?:[^"][^\s]*))\s([^=]*)=((?:".*")|(?:[^\s\]]*))[\s\]]$/',$t,$m)) {
    print_r($m);
} else {
    echo "не совпало =(";
}

пробовал на:
[ИМЯ_ФУНКЦИИ имя_параметра="значение \"параметра" имя_параметра2=значение_параметра]
[ИМЯ_ФУНКЦИИ имя_параметра=значение_параметра имя_параметра2=значение_параметра]
[ИМЯ_ФУНКЦИИ имя_параметра=значение_параметра имя_параметра2="значение \"параметра"]
[ИМЯ_ФУНКЦИИ имя_параметра="значение \"параметра" имя_параметра2="значение \"параметра"]

Может быть можно сделать и окуратнее.
...
Рейтинг: 0 / 0
28.04.2006, 13:39:59
    #33697345
Damnedest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
Большое спасибо... никогда бы не составил такой регэксп... где можно так научиться?
...
Рейтинг: 0 / 0
28.04.2006, 14:02:18
    #33697429
4m@t!c
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
автор где можно так научиться?
Опыт и половое бессилие приходят с годами.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
28.04.2006, 14:55:37
    #33697693
Robert Tappan Moris
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
К слову, может быть кто-нить подскажет: приведённый регэксп выдёргивает стороковый параметр вместе с кавычками, можно ли от них избавиться?
...
Рейтинг: 0 / 0
28.04.2006, 15:03:22
    #33697724
zg
zg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
можно, но лучше после парсинга убрать всё лишнее, т.к. увеличение длины регулярки смертельно опасно (преценденты были)
...
Рейтинг: 0 / 0
28.04.2006, 15:57:53
    #33697934
1024byte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Как правильно распарсить данную строку?
там возвращается 2 массива результатов
один с кавычками другой без
насколько я понимаю.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Как правильно распарсить данную строку? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]