LINUXTALKS.CO

Хороша ли идея использовать последовательность из ?* для обозначения подставляемой переменной в пути?

 , ,

L


0

1

Как лучше обозначать подстановку значений переменных в путь файлу? Прежде всего URL, но и в локальный тоже на всякий случай. И пока думаю что использовать ?*имя_переменной*? лучший выбор, так как сочетание ?* практически не имеет смысла и не используется. Вернее я понимаю что оно обозначает имя длинной минимум в один символ. И как бы если использовать последовательность ?*.txt, это будет означать все текстовые файлы с названием длинной от одного символа. Но ведь это эквивалентно *.txt за исключением .txt

Или я ошибаюсь?

Нужен очень простой синтаксис, не требующий сложных правил экранирования, позволяющий описать подстановку значения переменной или извлечения значения, в любом URL.

★★★★★★

Вернее я понимаю что оно обозначает имя длинной минимум в один символ.

Нет. .? – один любой символ. .* – пусто или любая последовательность. Тебе же надо .+ – минимум один символ. Это если про регулярки говорить. Если про globы говорить, то да ? – один любой символ, а * – любая последовательность в т.ч. пустая. И тогда *? должна иметь смысл.

cocucka    
★★★★★★★★★★★
Linux / Firefox (NL)
Ответ на: комментарий от cocucka

Кажись я ввёл заблуждение тегом. Регулярные выражения сложны для понимания большинством людей, я тоже их плохо понимаю. Поэтому для примера подстановки использовал файловые маски.

В общем нужен простой синтаксис, который позволит как указать какой текст извлечь из URL, так и указать шаблон URL с именами переменных.

rezedent12    
★★★★★★
Последнее исправление: rezedent12 (всего исправлений: 1)

Windows / Firefox (RU)
Ответ на: комментарий от rezedent12

Регулярные выражения сложны для понимания большинством людей, я тоже их плохо понимаю

Весьма красноречивое признание.

sorrow    
★★★★★★★★★★★★
Linux / Firefox (NL)
Ответ на: комментарий от deep-purple

Имя сайта, элементы пути на нём, передаваемые в запросе переменные.

Например:

https://youtu.be/7fRx_G2diVc?si=0CKMGpSUh29TkAXE

https://www.youtube.com/watch?v=sdN-nJ7NNnw

Или может сделать отдельный оператор для извлечения именно переменных? Но как ты мог заметить например на youtube.com ID видео может быть как в переменной v, так и в пути.

rezedent12    
★★★★★★
Последнее исправление: rezedent12 (всего исправлений: 1)

Windows / Firefox (RU)
Ответ на: комментарий от rezedent12

Найди или сделай либу парсера/билдера для урл.

Шахта вон в той стороне: https://www.php-fig.org/psr/psr-7/#35-psrhttpmessageuriinterface

deep-purple    
★★★★★★★★★★
Последнее исправление: deep-purple (всего исправлений: 1)

Android / Firefox (RU)
Ответ на: комментарий от deep-purple

Шутник, однако.

Для моей задумки надо как то решить противоречивую задачу.

  • Язык преобразований должен быть достаточно гибкий, что бы «враждебные субъекты» не могли противодействовать создавая непосильные для него URL.

  • Язык преобразований должен быть достаточно простой, что бы человек не знакомый с программированием мог его понять.

  • Язык программирований не должен позволять слишком сложный синтаксис. То есть его гибкость не должна позволять нагнуть пользователя, навязав ему автоматические обновления правил преобразования, которые он не сможет понять.

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

rezedent12    
★★★★★★
Windows / Firefox (RU)
Ответ на: комментарий от rezedent12

Ну так распарсь урл на части, получай их из функций и подменяй только в нужных частях. Затем собирай в результирующую строку. Так и станет проще. Например, в шеме никаких портов и аргументов нет, а в пути нет знака вопроса.

deep-purple    
★★★★★★★★★★
Android / Firefox (RU)