Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
76 / 32 / 11
Регистрация: 28.02.2011
Сообщений: 2,050

Как расшифровать строчку

17.09.2025, 07:05. Показов 981. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, как бы расшифровать эту строчку
"~^/favicon\\.(gif|png|ico)(\\?|\$)~i"
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.09.2025, 07:05
Ответы с готовыми решениями:

Записать в конец файла строчку, из начала файла стереть строчку
Как из начала файла удалить первую строчку и в конец файла записать другую строчку, чтобы...

Как перейти на другую строчку поля MySQL
Вот у меня есть поле в базе данных MySQL в таблице config поле name_section там строчки: Главная...

Как сделать запись в предпоследнюю строчку файла ?
Как сделать запись в предпоследнюю строчку файла ??? $filename = '../sitemap.xml'; ...

7
Эксперт PHP
 Аватар для liris
4414 / 1053 / 156
Регистрация: 16.01.2023
Сообщений: 2,608
17.09.2025, 09:30
Лучший ответ Сообщение было отмечено tmpnik1 как решение

Решение

Это регулярное выражение. Задает шаблон для имени файлов. Очевидно, что этот код для поиска иконки сайта (которая обычно называется favicon.ico или favicon.gif или favicon.png и лежит в корне сайта).

Символ ~ очевидно обрамляет шаблон (чаще используют слеши).
Символ ^ указывает на то, что шаблон должен применяться к началу строки.
Далее ищем текст "/favicon".
Затем идет два обратных слеша (\\). У меня есть предположение, что здесь ошибка и должен быть один слеш. Тогда мы экранируем точку, чтобы указать что это искомый символ.

Далее идут круглые скобки. В них перечисляются варианты, что может стоять на этом месте (либо gif, либо png, либо ico).
Затем опять идут круглые скобки. В них перечисляются варианты, что может стоять на этом месте, слеш экранирует следующий символ, поэтому ищется либо "\?", либо "$". Тоже есть предположение, что один слеш тут лишний.

Я бы предположил, что должно быть так:

Code
1
"~^/favicon\.(gif|png|ico)(\?|\$)~i"
0
1308 / 1000 / 232
Регистрация: 01.10.2018
Сообщений: 3,893
17.09.2025, 09:56
Цитата Сообщение от liris Посмотреть сообщение
Затем идет два обратных слеша (\\). У меня есть предположение, что здесь ошибка и должен быть один слеш.
Нет. Очевидно, это экранирование слэша в самой строке, например в PHP-строке. Это даже для строк в одинарных кавычках рекомендуется делать.

Добавлено через 2 минуты
В процессе компиляции PHP правильно интерпретирует и заменит двойной слэш одинарным, который уже будет "экраном" в регулярном выражении.

Добавлено через 4 минуты
А вот что я не понимаю в этой "регулярке", так это знак доллара. Он что действительно ожидается в адресе? Видимо, это какой-то терминатор, используемый приложением, или просто глупость.
2
Эксперт PHP
 Аватар для liris
4414 / 1053 / 156
Регистрация: 16.01.2023
Сообщений: 2,608
17.09.2025, 10:03
Цитата Сообщение от estic Посмотреть сообщение
Очевидно, это экранирование слэша в самой строке, например в PHP-строке.
Спасибо. Я упустил, что это php-строка в двойных кавычках. Тогда ошибок в выражении нет. Будет искать варианты типа:

Code
1
2
3
/favicon.ico?param=123
/favicon.png$
/favicon.gif?
1
1308 / 1000 / 232
Регистрация: 01.10.2018
Сообщений: 3,893
17.09.2025, 10:27
Цитата Сообщение от estic Посмотреть сообщение
А вот что я не понимаю в этой "регулярке", так это знак доллара.
Символ "?" или "конец выражения"??? По идее так делать нельзя.

Добавлено через 2 минуты
Цитата Сообщение от liris Посмотреть сообщение
Я упустил, что это php-строка в двойных кавычках.
Как я написал, обратный слэш даже в одинарных кавычках рекомендуется экранировать. В двойных тем более.

Добавлено через 13 минут
Цитата Сообщение от liris Посмотреть сообщение
/favicon.png$
Знак доллара - служебный символ для регулярного выражения. По идее он тоже должен был быть проэкранирован двойным (или даже тройным) обратным слэшем. Но этого почему-то не сделали. Мое предположение, что хотели "изобразить"
Цитата Сообщение от estic Посмотреть сообщение
Символ "?" или "конец выражения"
2
Эксперт PHP
 Аватар для liris
4414 / 1053 / 156
Регистрация: 16.01.2023
Сообщений: 2,608
17.09.2025, 10:32
Цитата Сообщение от estic Посмотреть сообщение
Знак доллара - служебный символ для регулярного выражения. По идее он тоже должен был быть проэкранирован двойным обратным слэшем.
И снова соглашусь. Внимательность сегодня - не моё второе имя.

Не по теме:


Я сегодня очень мало спал. Пойду-ка я пожалуй, пока не насоветовал....



Добавлено через 4 минуты
Цитата Сообщение от estic Посмотреть сообщение
Мое предположение, что хотели "изобразить"
Все верно и логично. Ошибок нет в выражении. Ищут фавикон в форматах ico/gif/png, либо точное совпадение (начинается с "/favicon.ico" и заканчивается также). Либо параметр какой-нибудь после него может идти, ну типа "/favicon.ico?param=123".
1
1308 / 1000 / 232
Регистрация: 01.10.2018
Сообщений: 3,893
17.09.2025, 11:08
Цитата Сообщение от liris Посмотреть сообщение
И снова соглашусь.
Это просто был ход рассуждения. Вполне возможно, что имелось в виду именно то, что вы написали. Я об этом тоже писал в первом сообщении. Т.е. одинарный слэш использовался для экранирования знака доллара для PHP, а для регулярного выражения его экранирование в этой позиции не требуется.

В общем:
Цитата Сообщение от estic Посмотреть сообщение
А вот что я не понимаю в этой "регулярке", так это знак доллара.
Добавлено через 2 минуты
Цитата Сообщение от liris Посмотреть сообщение
Все верно и логично. Ошибок нет в выражении. Ищут фавикон в форматах ico/gif/png, либо точное совпадение (начинается с "/favicon.ico" и заканчивается также).
А так можно? ...Использовать знак доллара, как служебный символ-терминатор в конструкции ИЛИ?

Добавлено через 3 минуты
Наверное, можно: https://stackoverflow.com/ques... expression
Никогда не использовал этот вариант. Обычно делаю так:
Code
1
^шаблон пути(\\?шаблон строки запроса)?$
1
76 / 32 / 11
Регистрация: 28.02.2011
Сообщений: 2,050
18.09.2025, 05:20  [ТС]
Здравствуйте, просто меня отвлекли, и я по быстрому отправил вопрос, надо было написать, чтоб не было путаницы
if (preg_match("~^/favicon\\.(gif|png|ico)(\\?|\$)~i", $_SERVER["REQUEST_URI"])) {.......}
Но стало более менее понятно..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.09.2025, 05:20
Помогаю со студенческими работами здесь

Информация из БД выводится в столбец, как сделать в строчку?
case 'wmicq': $b=mysql_query("SELECT * FROM `".prefix."shinfo`"); if (mysql_affected_rows()==0){...

Как валидно передать строчку с русскими символами через параметр id в ссылке?
Есть ссылка: <td><a href="?id=<?=$item;?>"><?=$item?></a></td> Подскажите пожалуйста, как...

Как перенести предложение на следующую строчку?
Сам код: Выводит: Сегодня 13-03-2015Сегодня 13 число, March месяц, 2015 год. А мне надо,...

Подскажите, как создать файл JSON и закинуть туда одну текстовую строчку
Доброго времени суток!)) Пытаюсь открыть для себя JSON, но пока смутно что-то понимаю. Скажите,...

Как перенести данные о пользователе на новую строчку
Доброго времени суток! Как сделать, чтобы данные о пользователе ( имя, почта и сообщение ) были...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru