我在文字中有一个链接:
$config = HTMLPurifier_Config::createDefault();
$config->set('URI.MakeAbsolute', false);
$config->set('HTML.SafeObject', true);
$config->set('Output.FlashCompat', true);
$config->set('URI.AllowedSchemes',
array (
'http' => true,
'https' => true,
'mailto' => true
));
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'target', 'Enum#_blank,_self,_target,_top');
$def->addAttribute('a', 'data-width', 'Text');
$def->addAttribute('a', 'data-height', 'Text');
$def->addAttribute('a', 'id', 'Text');
$def->addAttribute('a', 'name', 'Text');
$purifier = new HTMLPurifier($config);
$va = $purifier->purify($va);
用这个净化时:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<GridView android:id="@+id/customer_list"
style="@style/Widget.SampleDashboard.Grid"
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:layout_height="0dp"
android:layout_weight="1"
android:paddingLeft="@dimen/horizontal_page_margin"
android:paddingRight="@dimen/horizontal_page_margin"
android:paddingBottom="@dimen/vertical_page_margin"
android:scrollbarStyle="outsideOverlay" />
</LinearLayout>
</ScrollView>
净化替换字符&amp; &lt;的链接我怎么能阻止这个?
答案 0 :(得分:2)
当我运行您的代码时,我得到了所需的结果:
<?php
ini_set('display_errors', TRUE);
error_reporting(E_ALL);
include_once 'library/HTMLPurifier.auto.php';
$raw = 'Some text http://www.stackoverflow.com?var=1&var2=2 more text';
$config = HTMLPurifier_Config::createDefault();
$config->set('URI.MakeAbsolute', false);
$config->set('HTML.SafeObject', true);
$config->set('Output.FlashCompat', true);
$config->set('URI.AllowedSchemes',
array (
'http' => true,
'https' => true,
'mailto' => true
));
$def = $config->getHTMLDefinition(true);
$def->addAttribute('a', 'target', 'Enum#_blank,_self,_target,_top');
$def->addAttribute('a', 'data-width', 'Text');
$def->addAttribute('a', 'data-height', 'Text');
$def->addAttribute('a', 'id', 'Text');
$def->addAttribute('a', 'name', 'Text');
$purifier = new HTMLPurifier($config);
echo $purifier->purify($raw);
我得到了
Some text http://www.stackoverflow.com?var=1&var2=2 more text
请注意,&符号已正确转义。它必须是代码中其他地方的错误。
答案 1 :(得分:0)
我没有使用这个库,但是我很好奇你为链接定义了($ def)并且从未在净化器上设置它。
将&#34;&lt;&#34;从我的角度来看,角色不是正确的解决方案。如果以正确的方式配置,它应该由净化器处理。