对于使用Smarty的项目,我想在HTML中使用标题变量作为ID。变量应该是小写的,不应该有空格和元音突变(ä,ö,ü,é,è,à,......)。
例如,Übergrösse
应为ubergrosse
。
经过重大搜索后,我找不到真正有用的命令。所以我尝试使用|replace
修饰符,如下所示:
<section id="{$title|lower|replace:' ':''|replace:'ä':'a'|replace:'ö':'o'|replace:'ü':'u'|replace:'é':'e'|replace:'è':'e'|replace:'à':'a'}">...</section>
有没有更好的方法呢?
答案 0 :(得分:1)
我用它来清理文本以生成安全的网址,因此它可能适用于您需要的内容:
function smarty_modifier_safetext($string){
$string = preg_replace("`\[.*\]`U","",$string);
$string = preg_replace('`&(amp;)?#?[a-z0-9]+;`i','-',$string);
$string = preg_replace( '`"`i', "", $string);
$string = htmlentities($string, ENT_COMPAT, 'utf-8');
$string = preg_replace( "`&([a-z])(acute|uml|circ|grave|ring|cedil|slash|tilde|caron|lig|quot|rsquo);`i","\\1", $string );
$string = html_entity_decode($string);
$string = preg_replace( array("`[^a-z0-9]`i","`[-]+`") , "-", $string);
return strtolower(trim($string, '-'));
}
将此代码保存为smarty插件文件夹中的modifier.safetext.php,然后像这样使用它:
{$title|safetext}