_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.
Description
Traite spécifiquement les caractères &, <, >, ", et ‘.
Paramètres
$string
(string) (Requis) Le 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) (Optionnel) Le caractère à encoder de la chaîne.
Valeur par défaut : false
$double_encode
(bool) (Optionnel) Pour encoder les entités HTML existantes.
Valeur par défaut : false
Retourne
(string) Le texte encodé avec des entités HTML.
Structure de la fonction _wp_specialchars()
Définie dans le fichier wp-includes/formatting.php à la ligne 934 :
function _wp_specialchars( $string, $quote_style = ENT_NOQUOTES, $charset = false, $double_encode = false ) {
$string = (string) $string;
if ( 0 === strlen( $string ) ) {
return '';
}
// Don't bother if there are no specialchars - saves some processing.
if ( ! preg_match( '/[&<>"\']/', $string ) ) {
return $string;
}
// Account for the previous behaviour 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;
}
// Store the site charset as a static to avoid multiple calls to wp_load_alloptions().
if ( ! $charset ) {
static $_charset = null;
if ( ! isset( $_charset ) ) {
$alloptions = wp_load_alloptions();
$_charset = isset( $alloptions['blog_charset'] ) ? $alloptions['blog_charset'] : '';
}
$charset = $_charset;
}
if ( in_array( $charset, array( 'utf8', 'utf-8', 'UTF8' ), true ) ) {
$charset = 'UTF-8';
}
$_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.
$string = wp_kses_normalize_entities( $string, ( $quote_style & ENT_XML1 ) ? 'xml' : 'html' );
}
$string = htmlspecialchars( $string, $quote_style, $charset, $double_encode );
// Back-compat.
if ( 'single' === $_quote_style ) {
$string = str_replace( "'", '039;', $string );
}
return $string;
}
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 toutes les options auto-chargées si disponible ou toutes les options.
Où trouver la fonction _wp_specialchars()
dans le CMS Wordpress
Sources
Codex Wordpress : _wp_specialchars()
Autres fonctions dans le même fichier : wp-includes/formatting.php