<? phpukraine ІНСТРУМЕНТИ
Пошук по платформі

Екранування рядків PHP

Готує рядок для вставки в одинарні чи подвійні лапки, у регулярний вираз або в шаблон LIKE.

У БРАУЗЕРІ ТЕКСТ → ТЕКСТ
РОБОЧА ЗОНА
ЩО РОБИТЬ

Екранує рядок так, щоб PHP прочитав його як задумано

Рядок з апострофами, лапками, доларами чи зворотними слешами треба вставити в код так, щоб інтерпретатор не сприйняв частину тексту як синтаксис. Інструмент екранує під обраний контекст: одинарні лапки, подвійні лапки, heredoc, регулярний вираз через preg_quote і шаблон SQL LIKE.

ЯК ЦЕ ПРАЦЮЄ В PHP

У кожного контексту свій набір особливих символів. В одинарних лапках це лише ' і \, у подвійних додаються $ і керівні послідовності, у регулярному виразі дужки, крапка, плюс, зірочка, знак питання, у LIKE відсоток і підкреслення. Правило одне: екранувати на виході, у тому контексті, куди рядок іде, а не «про всяк випадок» при вводі.

$raw = "O'Reilly costs $5 (approx.)";

$single = '\'' . str_replace(['\\', '\''], ['\\\\', '\\\''], $raw) . '\'';
// 'O\'Reilly costs $5 (approx.)'

$pattern = '/' . preg_quote($raw, '/') . '/u';
// /O'Reilly costs \$5 \(approx\.\)/u

$like = addcslashes($raw, '%_\\');   // для LIKE ... ESCAPE '\'
ПИТАННЯ

Що питають про цей інструмент

Одинарні простіші: у них екрануються лише сам апостроф і зворотний слеш. У подвійних працюють інтерполяція змінних і керівні послідовності на кшталт \n, тому екранувати доводиться ще $ і подвійну лапку. Для статичних рядків беріть одинарні, для рядків зі змінними — подвійні або sprintf.

ДАЛІ ПО ТЕМІ