描述
将字符串剥离为A-Z、A-Z、0-9、_,-。如果这样做的结果是一个空字符串,那么它将返回所提供的替代值。
参数
- $class
-
(string) (必填) 要清理的类名
- $fallback
-
(string) (可选) 如果清理结果为空字符串,则返回的值。默认为空字符串。
默认值: ''
返回
(string) 净化清理后的值
源码
更新日志
版本 | 描述 |
---|---|
2.8.0 | 开始引入 |
使用示例
类名不能以数字开头,这个函数不考虑这一点。
https://www.w3.org/TR/CSS21/syndata.html#characters
此函数可能返回以数字开头的字符串,根据W3定义,这些数字不是有效的类名。创建此函数是为了帮助转义多个HTML类,您可以给它一个类数组或一个由分隔符分隔的类字符串:
if( ! function_exists("sanitize_html_classes") ){ function sanitize_html_classes($classes, $sep = " "){ $return = ""; if(!is_array($classes)) { $classes = explode($sep, $classes); } if(!empty($classes)){ foreach($classes as $class){ $return .= sanitize_html_class($class) . " "; } } return $return; } }
基本示例
<?php // If you want to explicitly style a post, you can use the sanitized version of the post title as a class $post_class = sanitize_html_class( $post->post_title ); echo '<div class="' . $post_class . '">'; ?>
一次性清理多个HTML类。
接受
$classes
数组或以空格分隔的类名字符串,并使用sanitize_html_class
函数运行它们进行清理。/** * Sanitize multiple HTML classes in one pass. * * @param array $classes Classes to be sanitized. * @param string $return_format The return format, 'input', 'string', or 'array'. * @return array|string */ function prefix_sanitize_html_classes( $classes, $return_format = 'input' ) { if ( 'input' === $return_format ) { $return_format = is_array( $classes ) ? 'array' : 'string'; } $classes = is_array( $classes ) ? $classes : explode( ' ', $classes ); $sanitized_classes = array_map( 'sanitize_html_class', $classes ); if ( 'array' === $return_format ) { return $sanitized_classes; } else { return implode( ' ', $sanitized_classes ); } }