我有一个动态菜单,我需要转换成背景图像使用CSS类。我想转换成一个安全的CSS类名称的标签。例如:- 转换字符串:“Products & Sunflowers”-转换为仅包含a-z和1-9的字符串。上述字符串将转换为可用作类名的验证字符串,例如:'产品_向日葵'
cvxl0en21#
我用这个:
preg_replace('/\W+/','',strtolower(strip_tags($className)));
它将去除除字母以外的所有字符,转换为小写,并删除所有html标签。
wvt8vs2t2#
你试过preg_replace吗?这将为上面的示例返回'ProductsSunflowers'。
preg_replace
preg_replace('#\W#g','',$className);
rjzwgtxy3#
无耻地从Drupal 7的drupal_clean_css_identifier()和Drupal 10的Html::cleanCssIdentifier()函数中插入。
/** * Convert any random string into a classname following conventions. * * - preserve valid characters, numbers and unicode alphabet * - preserve already-formatted BEM-style classnames * - convert to lowercase * * @see http://getbem.com/ */ function clean_class($identifier) { // Convert or strip certain special characters, by convention. $filter = [ ' ' => '-', '__' => '__', // preserve BEM-style double-underscores '_' => '-', // otherwise, convert single underscore to dash '/' => '-', '[' => '-', ']' => '', ]; $identifier = strtr($identifier, $filter); // Valid characters in a CSS identifier are: // - the hyphen (U+002D) // - a-z (U+0030 - U+0039) // - A-Z (U+0041 - U+005A) // - the underscore (U+005F) // - 0-9 (U+0061 - U+007A) // - ISO 10646 characters U+00A1 and higher // We strip out any character not in the above list. $identifier = preg_replace('/[^\\x{002D}\\x{0030}-\\x{0039}\\x{0041}-\\x{005A}\\x{005F}\\x{0061}-\\x{007A}\\x{00A1}-\\x{FFFF}]/u', '', $identifier); // Convert everything to lower case. return strtolower($identifier); }
qaxu7uf24#
字符串:dome/some.thing-to.大写.单词结果:将Something转换为大写单词(add你的模式
var_dump( str_replace( ['/', '-', '.'], '', ucwords( $acceptContentType, '/-.' ) ) );
smdnsysy5#
我写了一个示例代码来解决您的问题,希望它能有所帮助
<?php # filename s.php $r ='@_+(\w)@'; $a='a_bf_csdfc__dasdf'; $b= ucfirst(preg_replace_callback( $r, function ($matches) { return strtoupper($matches[1]); }, $a )); echo $a,PHP_EOL; echo $b,PHP_EOL;
$ php -f网页a_基本框架_基本数据框架_基本数据框架资产负债表
5条答案
按热度按时间cvxl0en21#
我用这个:
它将去除除字母以外的所有字符,转换为小写,并删除所有html标签。
wvt8vs2t2#
你试过
preg_replace
吗?这将为上面的示例返回'ProductsSunflowers'。
rjzwgtxy3#
BE风格的clean_class php解决方案
无耻地从Drupal 7的drupal_clean_css_identifier()和Drupal 10的Html::cleanCssIdentifier()函数中插入。
qaxu7uf24#
字符串:dome/some.thing-to.大写.单词
结果:将Something转换为大写单词
(add你的模式
smdnsysy5#
我写了一个示例代码来解决您的问题,希望它能有所帮助
$ php -f网页
a_基本框架_基本数据框架_基本数据框架
资产负债表