Arıtma filtre HTML bir öznitelik eklemek?

1 Cevap php

Ben HTML Arıtma filtre içinde bir elemanlarında rel niteliğini izin çalışıyorum. Ben bu kılavuzu takip ediyorum http://htmlpurifier.org/docs/enduser-customize.html ve burada benim kodu:

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$config->set('HTML.DefinitionID', 'enduser-customize.html tutorial');
$config->set('HTML.DefinitionRev', 1);
$config->set('Cache.DefinitionImpl', null); // remove this later!
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'href*', 'URI');
$def->addAttribute('a', 'rel', 'CDATA');
$purifier = new HTMLPurifier($config);

Ancak, HTML temizleyici hala tüm rel özelliklerini filtreleyerek ... Ben ne sorun olabilir biraz kafam karıştı.

Ben kullandığınızda:

$config->set('Attr', 'AllowedRel', array('something'));

Ben bu hatayı alıyorum:

Uyarı: kullanma API'yle: hattında 1819 C:\wamp\www\neonet\application\modules\admin\controllers\IndexController.php C:\wamp\www\neonet\library\My\htmlpurifier-4.0.0-standalone\HTMLPurifier.standalone.php içinde dosyasındaki 191 hattı yerine $config->set('Attr.AllowedRel', ...) kullanın

EDIT:

Yeni kodu:

$config = HTMLPurifier_Config::createDefault();
$config->set('HTML.Doctype', 'XHTML 1.0 Strict');
$config->set('Attr.AllowedRel', array('something'));
$purifier = new HTMLPurifier($config);

Ben kullandığınızda:

<href="/" rel="something">anchor</a>

Rel nitelik hala süzdüğü.

1 Cevap

This configuration directive may be of interest sana. Kodunuz için olduğu gibi, benim için çalışır; belki sihirli tırnak üzerinde döndü veya önbelleğe uygun temizlendi değil mi? (Bu durumda DefinitionRev darbeleme deneyin.)

Rel kullanmaya çalışırken diğer klasik hata, Sıkı XHTML çalışmaz olduğunu; Bu doctype sizin W3C işaretini tutmak istiyorsanız farklı bir doctype almak gerekir, Attr.AllowedRel (bu dokümanlar söz değil ama olmalıdır.) hiçbir şey yapmaz, böylece rel tanımlamak Yani gelmez veya orijinal kodu kullanabilirsiniz.