$variables['slide_one_description'] = wordwrap(theme_get_setting('slide_one_description','metroman'), 20,"<br>");
在上面,我为滑块描述设置了变量,我只想在一定长度后应用换行符,但上面的代码打印 HTMLbr
标记而不是换行符。
注意:描述是动态内容,我想在 Drupal 8 中解决。
$variables['slide_one_description'] = wordwrap(theme_get_setting('slide_one_description','metroman'), 20,"<br>");
在上面,我为滑块描述设置了变量,我只想在一定长度后应用换行符,但上面的代码打印 HTMLbr
标记而不是换行符。
注意:描述是动态内容,我想在 Drupal 8 中解决。
曾经有诸如 SafeMarkup::checkPlain() 之类的函数执行此功能,但它们已在很大程度上被弃用和删除。大多数时候,Twig 会为您进行文本清理,但有时您只需要在 Drupal 中的 PHP 中删除 HTML 的值。
例如,PHP 有一个 [strip_tags()][1] 函数,它的功能完全符合其名称的含义。
或者,对于 Drupal 更友好的方式,只需通过 at() 函数传递值并使用 @ 替换来强制纯文本。这是它如何工作的示例:
$value = '<p>Here is a <b>value</b> with HTML.<br>Let's remove it.</p>';
$stripped_value = t('@value', ['@value' => $value]);
当然,这是一个简单的示例,但您可以将其应用于其他场景。此外,这只是去掉了 <br> 标签,而不是用换行符替换它们;你需要一个像下面这样的 PHP 函数来用其他东西替换 <br> 标签:
function br2nl($string)
{
return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string);
}