PHP在字符串中返回未解析的HTML字符

时间:2018-01-09 23:34:48

标签: php drupal drupal-8

我不知道我在这里做错了什么,但我需要返回一个由换行符分隔的字符串数组,当我返回内爆字符串时,它实际上将HTML标记包含为文本,非解析。

这是我的代码:

if (!empty($college)){
$return[] = $college;
}
if (!empty($precollege)){
$return[] = $precollege;
}
if (!empty($evening_division)) {
$return[] = $evening_division;
}
if (!empty($music_advancement_program)) {
$return[] = $music_advancement_program;
}
$test = implode("<br/>",$return);

return $test;

但是,该函数返回的字符串输入的HTML字符标记为“&lt; br /&gt;”,而不是实际的换行符。我需要将字符串返回到模板以呈现数据,因此需要使用正确的换行符格式化字符串。我也试过\ n也无济于事。这来自一个预处理函数,它创建可在Drupal 8 twig文件中访问的变量。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

没有看到完整的代码,

根据:https://www.drupal.org/docs/8/theming/twig/twig-best-practices-preprocess-functions-and-templates

你应该按如下方式进行:

function your_function(&$variables) {
    if (!empty($college)){
        $return[] = $college;
    }
    if (!empty($precollege)){
        $return[] = $precollege;
    }
    if (!empty($evening_division)) {
        $return[] = $evening_division;
    }
    if (!empty($music_advancement_program)) {
        $return[] = $music_advancement_program;
    }

    $variables['test'] = t(implode("<br/>", $return));
}

然后在您的模板中,访问如下:

<div>{{ test }}</div>