如何在Drupal 8中删除HTML标记

时间:2015-10-19 05:38:49

标签: drupal drupal-modules drupal-8

$variables['slide_one_description'] =  wordwrap(theme_get_setting('slide_one_description','metroman'), 20,"<br>");

在上面,我设置了滑块描述的变量,我只想在一段时间后应用换行符,但上面的代码打印HTML br标签而不是换行符。

注意:description是一个动态内容,我想在Drupal 8中解决。

1 个答案:

答案 0 :(得分:0)

曾经有执行此功能的功能,例如SafeMarkup :: checkPlain(),但已不建议使用并删除它们。在大多数情况下,Twig会为您进行文本清理,但是有时候您只需要在Drupal的PHP中使用HTML剥离的值即可。

例如,PHP具有[strip_tags()] [1]函数,该函数完全可以实现其名称所暗示的功能。

或者,以更友好的Drupal方式,只需将值通过t()函数传递并使用@替换即可强制使用纯文本。这是一个工作原理的示例:

$value = '<p>Here is a <b>value</b> with HTML.<br>Let's remove it.</p>';
$stripped_value = t('@value', ['@value' => $value]);

当然,这是一个简单的示例,但是您可以将其应用于其他方案。而且,这只是摆脱了
标记,而不是用换行符代替;您需要使用如下所示的PHP函数将
标记替换为其他内容:

function br2nl($string)
{
  return preg_replace('/\<br(\s*)?\/?\>/i', "\n", $string);
}