twig=を使用してビューをレンダリングし、striptagsフィルターを使用してhtmlタグを削除しています。ただし、要素全体が ""で囲まれているため、html特殊文字はテキストとしてレンダリングされます。 striptags関数を使用したまま、特殊な文字を削除したりレンダリングしたりできますか?
例:
{{ organization.content|striptags(" >")|truncate(200, '...') }}
または
{{ organization.content|striptags|truncate(200, '...') }}
出力:
"QUI SOMMES NOUS ? > NOS LOCAUXNOS LOCAUXDepuis 1995, Ce lieu chargé d’histoire et de tradition s’inscrit dans les valeurs"
他の人を助けることができるなら、ここに私の解決策があります
_{{ organization.content|striptags|convert_encoding('UTF-8', 'HTML-ENTITIES') }}
_
トリムフィルターを追加して、前後のスペースを削除することもできます。次に、組織を切り捨てるか、スライスします。
2017年11月編集
「\ n」の改行を切り捨てと組み合わせて保持する場合は、次のようにします。
{{ organization.content|striptags|truncate(140, true, '...')|raw|nl2br }}
私は同様の問題を抱えていた、これは私のために働いた:
{{ variable |convert_encoding('UTF-8', 'HTML-ENTITIES') | raw }}
Arf、私はついに見つけました:
私は、PHP関数を適用するだけのカスタムtwigフィルターを使用しています:
<span>{{ organization.shortDescription ?: php('html_entity_decode',organization.content|striptags|truncate(200, '...')) }}</span>
正しくレンダリングされるようになりました
私のPHP拡張機能:
<?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';
}
}
私は、とりわけ、これらの答えのいくつかを試していました:
{{ organization.content|striptags|truncate(200, true) }}
{{ organization.content|raw|striptags|truncate(200, true) }}
{{ organization.content|striptags|raw|truncate(200, true) }}
etc.
そして、まだ最終的な形で奇妙なキャラクターを得ました。私を助けたのは、すべての操作の最後にraw
フィルターを置くことです。
{{ organization.content|striptags|truncate(200, '...')|raw }}
私は同じ問題を抱えていたので、strip_tagsを使用してこの関数で解決しました。
<?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';
}
}