require_once '/path/to/HTMLPurifier.auto.php';
According to ThinkPHP specifications, for third-party extensions that do not comply with ThinkPHP development specifications, HTMLPurifier needs to be placed in the Library/Vendor directory middle. Then we can introduce HTMLPurifier.auto.php into the framework program through the following method:
vendor('htmlpurifier.library.HTMLPurifier#auto');
However, I am using ThinkPHP 3.2.1 here and found that this method can only be used in functions. This introduction into the controller class cannot be correctly recognized. In other words, we can only reference it in the common/function.php file.
Create HTMLPurifier object and implement rich text filtering
$config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $clean_html = $purifier->purify($dirty_html);
How to configure the HTMLPurifier filter
To use HTMLPurifier, the focus is still on how to configure it. For the above program, we created a default configuration object through the createDefault() method. If we want to modify the configuration, we can use the set method to configure the settings. The method is as follows:
$config->set('config_object', value, a=null);
The first parameter is the attribute that needs to be configured, the second parameter is the value of the attribute, and the third parameter is specific I haven't figured out what it is used for, but I generally haven't used it. I will study it slowly when I have time.
HTMLPurifier's configuration attributes can be queried through its website
Configuration attribute selection
HTMLPurifier's configuration documents are mainly two-level classifications, and the major categories are Attr (attribute), HTML (html tag), AutoFormat (automatic format), CSS (css configuration), Output (output configuration)... Subcategory selection can be completed by adding the name of the major category. Adding the name of the subcategory.
For example, if I want to configure allowed html tags, such as p tag and a tag, I can configure it as follows
$config->set('HTML.Allowed', 'p,a');
Selection of attribute values
In the official document, click one After the attribute, you can see the explanation of this attribute. It will tell you that the value type (Type) of this attribute is String, Int, Array, Boolen...
Then it will also tell you the default value of this attribute. , such as NULL, true, false, etc. The format of this value is the same as PHP's format.
Whitelist filtering mechanism
HTMLPurifier uses a whitelist filtering mechanism, and only those that are allowed will pass the test.
Basic filtering example
a. Filter out all html tags in the text
/** * 过滤掉所有html标签很简单,原因则在白名单机制完成 */ $config->set('HTML.Allowed', '');
b. Keep the hyperlink tag a and its href link address attribute, and automatically add target The attribute value is '_blank'
$config->set('HTML.Allowed', 'a[href]'); $config->set('HTML.TargetBlank', true);
c, automatically complete the paragraph code and clear out useless empty tags
// 让文本自动添加段落标签,前提是必须允许P标签的使用 $config->set('HTML.Allowed', 'p'); $config->set('AutoFormat.AutoParagraph', true); // 清除空标签 $config->set('AutoFormat.RemoveEmpty', true); ……
All resources on this site are contributed by netizens or reprinted by major download sites. Please check the integrity of the software yourself! All resources on this site are for learning reference only. Please do not use them for commercial purposes. Otherwise, you will be responsible for all consequences! If there is any infringement, please contact us to delete it. Contact information: admin@php.cn
Related Article
03 Jun 2023
Third-party class libraries Third-party class libraries refer to other class libraries besides the ThinkPHP framework and application project class libraries. They are generally provided by third-party systems or products, such as class libraries of Smarty, Zend and other systems. For the class libraries imported earlier using automatic loading or the import method, the ThinkPHP convention is to use .class.php as the suffix. Non-such suffixes need to be controlled through the import parameters. But for the third type of library, since there is no such agreement, its suffix can only be considered to be php. In order to easily introduce class libraries from other frameworks and systems, ThinkPHP specifically provides the function of importing third-party class libraries. Third-party class libraries are uniformly placed in the ThinkPHP system directory/
20 Jun 2017
When developing with jQuery, you may also use other JS libraries, such as Prototype, but conflicts may occur when multiple libraries coexist; if conflicts occur, you can solve them through the following solutions: 1. jQuery libraries in other Import the library before and use the jQuery (callback) method directly such as:
24 Mar 2023
Linux dependency packages refer to "library files". Most dependency packages are library files, including dynamic libraries and static libraries. Linux systems, like other operating systems, are modular in design, which means that functions depend on each other, and some Functions require some other functions to support them, which can improve code reusability.
02 Jul 2019
After installing python, if you need to install some other libraries, there are generally two methods. One is to manually download and install them from the official website of each library; the other method is to install pip. Using pip can easily install various python libraries. library. After installing pip, you can directly install and delete third-party libraries through commands.
02 Jun 2024
Popular libraries and frameworks in the C++ ecosystem compared to other programming language ecosystems Introduction C++ is a language critical to systems programming, with an extensive and robust ecosystem of libraries and frameworks. This article will compare libraries and frameworks in the C++ ecosystem with those in the ecosystem of other popular programming languages, focusing on features, performance, and ease of use. Library Standard Library: The C++ standard library provides a wide range of data structures, algorithms, and input/output functions. Although other languages have similar standard libraries, C++'s libraries are known for their efficiency and flexibility. Boost Library: Boost is a widely used collection of third-party libraries that provide many additional features not found in the standard library. It is known for providing various cross-platform features such as threading,
02 Sep 2021
Vuejs is a progressive framework for building user interfaces; unlike other heavyweight frameworks, Vue adopts a bottom-up incremental development design. Vue's core library only focuses on the view layer, and is very easy to integrate with other libraries or existing libraries. Project integration.
Hot Tools
PHP library for dependency injection containers
PHP library for dependency injection containers
A collection of 50 excellent classic PHP algorithms
Classic PHP algorithm, learn excellent ideas and expand your thinking
Small PHP library for optimizing images
Small PHP library for optimizing images