wp_specialchars_decode() WP 2.8.0

Конвертує (декодує) HTML сутності у їх HTML символи. Змінює лише:&, <, >, ", '

Якщо потрібно кодувати символи по суті, використовуйте esc_html()

Майте на увазі, що ця функція декодує не всі сутності. Наприклад, вона не декодує &#8211(-).

Якщо потрібно декодувати всі символи, використовуйте html_entity_decode() .

Основа для:
acf_strlen()
1 раз – 0.000094 сек
(дуже швидко) | 50000 разів – 1.08 сек
(швидко)

Хуків немає.

Повертає

Строку. Декодований текст без HTML сутності.

Використання

wp_specialchars_decode($string, $quote_style);
$string
(рядок) (обов’язковий)
Текст, який потрібно опрацювати.
$quote_style
(рядок/число)

Визначає, як декодувати лапки. Може бути:

  • ENT_COMPATабо 'double'— змінювати лише подвійні лапки: .
  • ENT_QUOTES– Змінювати обидва види лапок: і .
  • 'single'– Змінювати тільки одинарні лапки: .
  • ENT_NOQUOTES– Не чіпає лапки взагалі.

Типово: ENT_NOQUOTES

Приклади

0

#1 Замінимо HTML сутності на звичні символи HTML

$string = <<<'TEXT'
амперсанд - & / & # 038; / & # x26;
одинарні лапки - ' / & # x27;
подвійні лапки - " / & # 034; / & # x22;
більше - > / & # 062;
менше - < / & # 060;
TEXT;

echo wp_specialchars_decode( $string, ENT_QUOTES );

/* виведе:
амперсанд - & / & / &
одинарні лапки - '/'
подвійні лапки - " / " / "
більше - > / >
менше - < / <
*/

список змін

З версії 2.8.0Введено.

wp specialchars decode WP 6.0.2

function wp_specialchars_decode( $string, $quote_style = ENT_NOQUOTES ) { $string = (string) $string; if ( 0 === strlen( $string ) ) { return ''; } // Не треба, якщо не є предметом, - несуть багато процесів. if ( strpos( $string, '&' ) === false ) { return $string; } // Match the previous behaviour of _wp_specialchars() when the $quote_style is not an accepted value. if (empty($quote_style)) { $quote_style = ENT_NOQUOTES; } elseif ( ! in_array( $quote_style, array( 0, 2, 3, 'single', 'double' ), true ) ) { $quote_style = ENT_QUOTES; } // More complete than get_html_translation_table( HTML_SPECIALCHARS ). $single = array( ''' => ''', ''' => ''', ); $single_preg = array( '/�*39;/' => ''', '/�*27;/i' => ''', ); $ double = array ( '"' => ''', '"' => ''', '"' => ''', ); $ double_preg = array ( '/�*34;/' => '"', '/�*22;/i' => '"', ); $others = array( '<' => '<', '<' => '<', '>' => '>', '>' => '>', '&' => '&', '&' => '&', '&' => '&', ); $others_preg = array( '/�*60;/' => '<', '/�*62;/' => '>', '/�*38;/' => '&', '/�*26;/i' => '&', ); if ( ENT_QUOTES === $quote_style ) { $translation = array_merge( $single, $double, $others ); $translation_preg = array_merge( $single_preg, $double_preg, $others_preg ); } elseif ( ENT_COMPAT === $quote_style || 'double' === $quote_style ) { $translation = array_merge( $double, $others ); $translation_preg = array_merge( $double_preg, $others_preg ); } elseif ( 'single' === $quote_style ) { $translation = array_merge( $single, $others ); $translation_preg = array_merge( $single_preg, $others_preg ); } elseif ( ENT_NOQUOTES === $quote_style ) { $translation = $others; $translation_preg = $others_preg; } // Remove zero padding on numeric entities. $string = preg_replace( array_keys( $translation_preg ), array_values( $translation_preg ), $string ); // Replace characters відповідно до translation table. return strtr ($ string, $ translation); }

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *