Ich verwende twig, um eine Ansicht zu rendern, und ich verwende den striptags-Filter, um html-Tags zu entfernen. __ Html-Sonderzeichen werden jetzt jedoch als Text dargestellt, da das gesamte Element von "" ..__ umgeben ist. Wie kann ich das tun? Sonderzeichen entfernen oder rendern, während noch die Funktion Striptags verwendet wird?
Beispiel:
{{ organization.content|striptags(" >")|truncate(200, '...') }}
oder
{{ organization.content|striptags|truncate(200, '...') }}
Ausgabe:
"QUI SOMMES NOUS ? > NOS LOCAUXNOS LOCAUXDepuis 1995, Ce lieu chargé d’histoire et de tradition s’inscrit dans les valeurs"
Wenn es jemand anderem helfen könnte, hier ist meine Lösung
{{ organization.content|striptags|convert_encoding('UTF-8', 'HTML-ENTITIES') }}
Sie können auch einen Trimmfilter hinzufügen, um Leerzeichen davor und danach zu entfernen. Anschließend kürzen oder schneiden Sie den Inhalt Ihrer Organisation
BEARBEITEN November 2017
Wenn Sie die Trennlinien "\ n" mit einem Kürzungszeichen kombinieren möchten, können Sie dies tun
{{ organization.content|striptags|truncate(140, true, '...')|raw|nl2br }}
Ich hatte ein ähnliches Problem, das funktionierte für mich:
{{ variable |convert_encoding('UTF-8', 'HTML-ENTITIES') | raw }}
Arf, ich habe es endlich gefunden:
Ich verwende einen benutzerdefinierten Zweigfilter, der nur eine PHP-Funktion anwendet:
<span>{{ organization.shortDescription ?: php('html_entity_decode',organization.content|striptags|truncate(200, '...')) }}</span>
Jetzt wird es richtig dargestellt
Meine PHP-Erweiterung:
<?php
namespace AppBundle\Extension;
class phpExtension extends \Twig_Extension
{
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('php', array($this, 'getPhp')),
);
}
public function getPhp($function, $variable)
{
return $function($variable);
}
public function getName()
{
return 'php_extension';
}
}
Ich habe unter anderem folgende Antworten ausprobiert:
{{ organization.content|striptags|truncate(200, true) }}
{{ organization.content|raw|striptags|truncate(200, true) }}
{{ organization.content|striptags|raw|truncate(200, true) }}
etc.
Und bekam immer noch seltsame Charaktere in der endgültigen Form. Was mir geholfen hat, ist, den raw
-Filter am Ende aller Operationen zu setzen, d. H.
{{ organization.content|striptags|truncate(200, '...')|raw }}
Ich hatte das gleiche Problem, ich habe es mit dieser Funktion unter Verwendung von strip_tags gelöst.
<?php
namespace AppBundle\Extension;
class filterHtmlExtension extends \Twig_Extension
{
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('stripHtmlTags', array($this, 'stripHtmlTags')),
);
}
public function stripHtmlTags($value)
{
$value_displayed = strip_tags($value);
return $value_displayed ;
}
public function getName()
{
return 'filter_html_extension';
}
}