मैं सिर्फ इस समस्या का क्या हुआ, लेकिन जब से strip_tags
विशेषताओं, टैग के मानों की रक्षा के लिए पर्याप्त नहीं है, मैं अपने जवाब प्रस्तुत करेगा।
मैं सभी अवांछित HTML तत्वों और विशेषताओं को हटाने के लिए HTML Purifier का उपयोग कर रहा हूं। कमांड कंसोल खोलें और इसे स्थापित करने के लिए निम्न कमांड निष्पादित करें।
$ composer require ezyang/htmlpurifier "^4.6"
तो फिर तुम अपनी खुद की टहनी एक्सटेंशन बना सकते हैं:
namespace AcmeBundle\Twig;
class HTMLPurifierExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('html_purifier', array($this, 'purify'), array('is_safe' => array('html'))),
);
}
public function purify($text)
{
$elements = array(
'p',
'br',
'small',
'strong', 'b',
'em', 'i',
'strike',
'sub', 'sup',
'ins', 'del',
'ol', 'ul', 'li',
'h1', 'h2', 'h3',
'dl', 'dd', 'dt',
'pre', 'code', 'samp', 'kbd',
'q', 'blockquote', 'abbr', 'cite',
'table', 'thead', 'tbody', 'th', 'tr', 'td',
'a[href|target|rel|id]',
'img[src|title|alt|width|height|style]'
);
$config = \HTMLPurifier_Config::createDefault();
$config->set('HTML.Allowed', implode(',', $elements));
$purifier = new \HTMLPurifier($config);
return $purifier->purify($text);
}
public function getName()
{
return 'html_purifier';
}
}
ओपन services.yml
और विस्तार रजिस्टर एक सेवा के रूप:
services:
acme.html_purifier_extension:
class: AcmeBundle\Twig\HTMLPurifierExtension
public: false
tags:
- { name: twig.extension }
अब आप यह
{{ post.content|markdown|html_purifier }}
साथ उपयोग कर सकते हैं
तो विशिष्ट की पुष्टि करने के लिए सहयोगी, '{{post.content | escape ('html') | markdown}} 'काम नहीं करता है? संपादित करें: आह, आप कुछ एचटीएमएल – sjagr
के माध्यम से नहीं देना चाहते हैं क्योंकि यह '&' से निकलता है और मेरा आउटपुट '< स्क्रिप्ट > अलर्ट (" ") </स्क्रिप्ट >' –