_wp_specialchars( string $string, int|string $quote_style = ENT_NOQUOTES, bool|string $charset = false, bool $double_encode = false )
Convertie certains caractères spéciaux en entités HTML.
Note : L'accès à cette fonction est marqué comme privé. Cela signifie qu'elle n'est pas destinée à être utilisée par les développeurs de plugins ou de thèmes, mais uniquement dans d'autres fonctions principales. Elle est répertoriée ici par souci d'exhaustivité.
Paramètres
$string(string)requisLe texte à encoder.
$quote_style(int|string)optionnel- ENT_COMPAT ou 'double' (ancienne valeur) : convertie les doubles guillemets.
- ENT_QUOTES : convertie les simples et les doubles guillemets.
- ENT_NOQUOTES : ne convertie aucuns guillemets.
- 'single' (ancienne valeur) : convertie les simples guillemets.
- ENT_XML1 : convertie les simples et doubles guillemets aussi bien en convertissant les entités HTML (qui ne sont pas aussi des entités XML) en leurs points de code.
Valeur par défaut : ENT_NOQUOTES
$charset(bool|string)optionnelLe caractère à encoder de la chaîne.
Valeur par défaut : false
$double_encode(bool)optionnelPour encoder les entités HTML existantes.
Valeur par défaut : false
Description / Informations supplémentaires
Traite spécifiquement les caractères &, <, >, ", et ‘.
Retourne
(string) Le texte encodé avec des entités HTML.
Déclaration et structure de la fonction _wp_specialchars()
_wp_specialchars() est déclarée dans le fichier wp-includes/formatting.php à la ligne 942 :
function _wp_specialchars( $text, $quote_style = ENT_NOQUOTES, $charset = false, $double_encode = false ) {
$text = (string) $text;
if ( 0 === strlen( $text ) ) {
return '';
}
// Don't bother if there are no specialchars - saves some processing.
if ( ! preg_match( '/[&<>"\']/', $text ) ) {
return $text;
}
// Account for the previous behavior of the function when the $quote_style is not an accepted value.
if ( empty( $quote_style ) ) {
$quote_style = ENT_NOQUOTES;
} elseif ( ENT_XML1 === $quote_style ) {
$quote_style = ENT_QUOTES | ENT_XML1;
} elseif ( ! in_array( $quote_style, array( ENT_NOQUOTES, ENT_COMPAT, ENT_QUOTES, 'single', 'double' ), true ) ) {
$quote_style = ENT_QUOTES;
}
$charset = _canonical_charset( $charset ? $charset : get_option( 'blog_charset' ) );
$_quote_style = $quote_style;
if ( 'double' === $quote_style ) {
$quote_style = ENT_COMPAT;
$_quote_style = ENT_COMPAT;
} elseif ( 'single' === $quote_style ) {
$quote_style = ENT_NOQUOTES;
}
if ( ! $double_encode ) {
/*
* Guarantee every &entity; is valid, convert &garbage; into &garbage;
* This is required for PHP < 5.4.0 because ENT_HTML401 flag is unavailable.
*/
$text = wp_kses_normalize_entities( $text, ( $quote_style & ENT_XML1 ) ? 'xml' : 'html' );
}
$text = htmlspecialchars( $text, $quote_style, $charset, $double_encode );
// Back-compat.
if ( 'single' === $_quote_style ) {
$text = str_replace( "'", '039;', $text );
}
return $text;
}
Fonctions utilisées par _wp_specialchars()
wp_kses_normalize_entities()Convertit et répare les entités HTML.
wp_load_alloptions()Charge et met en cache les options auto chargées, si disponibles ou toutes les options.
Où est utilisée la fonction _wp_specialchars()
dans le CMS WordPress
Sources
Codex WordPress : _wp_specialchars()
Autres fonctions dans le même fichier : wp-includes/formatting.php