Aleksandr
А если и нет, то все равно гарантированного способа разбить на 4 элемента без дополнительных знаний о значениях невозможно
🆃🅰🆁🅸🅺 🇺🇦
как отправляешь?
Aleksandr
Потому что & используется разделителем, а & в значении никак от разделителя не отличается
🆃🅰🆁🅸🅺 🇺🇦
Ему нужен urlencode и все
🆃🅰🆁🅸🅺 🇺🇦
Причем если это простая форма то там автоматом. Если ajax, то нужно закодировать
Aleksandr
Не, есть вариант распарить стандартными методами, потом пройтись по ключам и склеить те, у которых значение пустое. Но это все рухнет сразу, как появится, например, символ = в значении или что-то подобное
🆃🅰🆁🅸🅺 🇺🇦
И это не бага parse_url
🆃🅰🆁🅸🅺 🇺🇦
Grigoriy
друг ну я тебе написал код, через регулярки всё достаётся! preg_match распихает в массив все значение! в последнее значение оно запихает все что осталось, независимо от того что там ещё амперсанды!
Единственное посмотри, если оно жадно будет доставать поставь "?" в первых трёх значениях регулярки, чтобы сделать не жадным его
Aleksandr
Зачем костыли делать?
Ну если человеку очень прямо хочется что-то сделать, не решая настоящей проблемы)
🆃🅰🆁🅸🅺 🇺🇦
Есть стандарт. Ог не придерживается
🆃🅰🆁🅸🅺 🇺🇦
Grigoriy
ну а как ты хочешь достать это значение = 'comment=this&is&comment' ?
🆃🅰🆁🅸🅺 🇺🇦
Пусть клиент отправляет значения енкодом не нарушая стандарт
Grigoriy
если разделять по амперсанду например explode(), то потом всё равно последние значение нужно отдельно соеденять! регуляркой ты можешь разбить строку на 4 части!
🆃🅰🆁🅸🅺 🇺🇦
Мля куда тебя клонит
🆃🅰🆁🅸🅺 🇺🇦
не в ту сторону
🆃🅰🆁🅸🅺 🇺🇦
& разделитель точка
🆃🅰🆁🅸🅺 🇺🇦
comment=this%26is%26comment
Grigoriy
ну так клиент всегда может ошибиться плюс их может быть несколько, плюс админы, которые могут отправлять строку, так же могут поменяться
🆃🅰🆁🅸🅺 🇺🇦
Вот так жолжен отправить клиент
Aleksandr
Grigoriy
ну вы думаете о себе информацию все по стандарту заполняют?
Владислав
Не надо регуляркой доставать параметры. Для этого есть HTTP
🆃🅰🆁🅸🅺 🇺🇦
Grigoriy
ну я предложил решение, это как бы вообще не сложно реализовать
🆃🅰🆁🅸🅺 🇺🇦
Если отправлять ajax-ом, то есть encodeURIComponent
Aleksandr
А если исходить из того, что клиент не обязан общаться с нами в соответствии с протоколом, то как вообще что-то можно обрабатывать?
🆃🅰🆁🅸🅺 🇺🇦
🆃🅰🆁🅸🅺 🇺🇦
Aleksandr
Владислав
Я тоже так хотел делать, чтобы не передавать параметр в роуте (вернее, не понимал, что надо передавать в роуте). Потом понял, что ничего хорошего не будет.
Grigoriy
я не знаю как человек получает строку ребята! он написал что не может разбить её! регуляркой можно разбить! я не прав? или что вы хотите мне доказать?)
Aleksandr
Дмитрий
Пусть кодирует её целиком
Aleksandr
Просто задача ведь не в том, чтобы заданный литерал распарсить - мы тогда это в уме сделаем и результат сразу запишем в коде
Aleksandr
Задача сделать парсинг для всех возможных значений параметров. И вот тут регулярки и склейки пустых элементов не работают от слова совсем. Значит, это не решение.
🆃🅰🆁🅸🅺 🇺🇦
Дмитрий
Спокойно)
Aleksandr
Дмитрий
Регулярки должны использоваться не в качестве костылей
🆃🅰🆁🅸🅺 🇺🇦
Aleksandr
Aleksandr
И посмотри, что даст регулярки
Petr
Можно бессмысленно обмазываться говнокодом, а можно попытаться решить источник проблемы — сказать, например, клиенту, что он шлет данные в невалидном формате, отправив 400 Bad Request.
Владислав
И да, всего одной регуляркой
Grigoriy
Grigoriy
Владислав
Владислав
Это костыль
Aleksandr
И да, всего одной регуляркой
Ну давай:
name=alex&city=moscow&phone=123456&comment=this&is&comment
Поля name, city, phone, comment могут содержать помимо прочего любое количество символов =, &, ни коим образом не отличимых от &-разделителя и =-разделителя. Порядок параметров не гарантирован. Все значения произвольные.
Владислав
🆃🅰🆁🅸🅺 🇺🇦
Grigoriy
Ну давай:
name=alex&city=moscow&phone=123456&comment=this&is&comment
Поля name, city, phone, comment могут содержать помимо прочего любое количество символов =, &, ни коим образом не отличимых от &-разделителя и =-разделителя. Порядок параметров не гарантирован. Все значения произвольные.
ну тут же опять, чёткие данные есть! вероятней всего имя, название города, номер будут построенны без амперсанда! я не говорю, что вы не правы, что не нужно отправлять правильные данные! естественно это лучше всего, никто не спорит) с ними куда проще работать! но в контексте поставленной задачи я написал человеку решение! я не могу понять, что вы хотите мне сказать? что это костыль, я знаю! но опять же я не знаю от куда приходят данные!
Aleksandr
Aleksandr
Мысль в том, что решения, работающего не только на данной константе, просто нет.
Petr
Petr
Petr
Petr
Aleksandr
Владислав
Grigoriy
comment="this&is&comment" я так понимаю это значение типа "ЭТО ЕСТЬ КОММЕНТАРИЙ" Это то, что как раз хотел передать автор! Но скорей всего вы правы!
Владислав
The Ant
он художник, он так видит. Чо доебался то?
The Ant
какого хуя вы query string парсите регулярками наркоманы? Вот в чем вопрос. есть же http://php.net/manual/ru/function.parse-str.php
Пантелеев
Парни, ка кперевести Piping Between Files
🐴