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

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

17.09.2025, 07:05. Показов 892. Ответов 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
4351 / 996 / 148
Регистрация: 16.01.2023
Сообщений: 2,453
17.09.2025, 09:30
Лучший ответ Сообщение было отмечено tmpnik1 как решение

Решение

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

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

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

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

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

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

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

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

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

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

Не по теме:


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



Добавлено через 4 минуты
Цитата Сообщение от estic Посмотреть сообщение
Мое предположение, что хотели "изобразить"
Все верно и логично. Ошибок нет в выражении. Ищут фавикон в форматах ico/gif/png, либо точное совпадение (начинается с "/favicon.ico" и заканчивается также). Либо параметр какой-нибудь после него может идти, ну типа "/favicon.ico?param=123".
1
1298 / 992 / 230
Регистрация: 01.10.2018
Сообщений: 3,860
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,005
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
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru