Функция ESC_JS() в WordPress: зачем, как работает, примеры использования

# Функция ESC_JS() в WordPress

Функция esc_js() предназначена для безопасного использования строк в JavaScript. Она экранирует (обрабатывает) одинарные кавычки, специальные HTML-символы, такие как <, >, &, а также исправляет новые строки.

## Зачем нужна функция esc_js()?

Эта функция используется для того, чтобы корректно отображать текст в JavaScript. Например, если вы хотите использовать текст в атрибуте HTML, таком как onclick, это очень важно. Помните, что строка должна быть обернута в одинарные кавычки.

Функция также применяет фильтр js_escape, который позволяет дополнительно менять результат. 

## Как работает esc_js()

Функция использует другую функцию _wp_specialchars() для обработки текстов. 

### Хуки функции

- js_escape — это фильтр, который вы можете использовать, если требуется модифицировать результат функции.

## Возвращаемое значение

Функция возвращает строку с экранированным текстом.

## Использование

Для использования функции нужно писать:

```php
esc_js( $text );

Параметры

  • $text (строка) — текст, который необходимо экранировать (обработать).

Примеры использования

Пример 1: Основной пример

$text = <<<'TEXT'
одинарная кавычка ', двойная кавычка ", больше чем >, меньше чем <, амперсанд &
TEXT;

echo esc_js( $text );

Результат:
Вывод: одинарная кавычка ', двойная кавычка ", больше чем >, меньше чем <, амперсанд &

Пример 2: Пример из реальной жизни

Функция esc_attr() обрабатывает строку для использования в HTML-атрибуте; а esc_js() — для использования в JavaScript.

История изменений

  • С версии 2.8.0 — функция была добавлена.

Код функции

Ниже представлен код функции esc_js(), который вы можете найти в файле wp-includes/formatting.php.

function esc_js( $text ) {
    $safe_text = wp_check_invalid_utf8( $text );
    $safe_text = _wp_specialchars( $safe_text, ENT_COMPAT );
    $safe_text = preg_replace( '/&#(x)?0*(?(1)27|39);?/i', "'", stripslashes( $safe_text ) );
    $safe_text = str_replace( "r", '', $safe_text );
    $safe_text = str_replace( "n", 'n', addslashes( $safe_text ) );

    return apply_filters( 'js_escape', $safe_text, $text );
}

Связанные функции

WordPress предоставляет несколько других функций для обработки строк:

  • esc_attr() — экранирование строки для использования в атрибуте HTML.
  • esc_html() — экранирование строки для использования в HTML-коде.
  • esc_sql() — экранирование для безопасного использования в SQL-запросах.
  • esc_url() — экранирование URL.

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

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *