imaginaria / jevix
用于HTML过滤的库,从Visman的 imaginaria项目和AJUR-Media项目分支而来
2.3.0
2022-05-29 22:00 UTC
Requires
- php: >=7.4.0
- ext-mbstring: *
README
这是一个由TMTM开发,用于自动排版和过滤带有HTML/XHTML标记的文本的系统,最初是为开源项目开发的。最初是PHP版本的Perl Jevix,但现在项目已经大大不同了。
应用场景
- 主题媒体项目(如Habr等),至少在2020年之前有使用。
- 无边际的礼物赠送社区Дaru~дар
- 一个主要面向nix系统和开源世界的俄语互联网资源NIXP.RU
- 用于博客社交网络和主题社区的免费引擎LiveStreet、BigStreet和Explay CMS
- 基于CodeIgniter的网站管理系统Cogear
- 多功能网站管理系统Alto CMS
- Codeigniter插件. 与GeSHi协同工作以突出显示语法
- MODx CMS插件:主页,GitHub
- 用于在Yii中方便使用Jevix的组件Jevix
- ... 以及更多。
功能
- 根据规定的规则过滤用户输入的带有HTML标记的文本,允许指定的标签和属性
- 修正HTML错误并生成有效的HTML或XHTML代码
- 防止XSS攻击
- 为俄语应用文本输入规则(排版)
优势
- Jevix在'最终自动机'上运行,而不是在正则表达式上。因此,反向理念:除了明确允许的以外,其他都是不允许的
- 一揽子解决XSS过滤、验证、HTML处理和排版
缺点
- Jevix使用'<br>'分隔行。它不会创建'<p>段落</p>',在现有的架构概念中可能也无法实现
- 作者不再开发此项目,已经转向Python,并逐渐忘记了PHP语法。但是欢迎PULL请求
使用示例
<?php require('jevix.class.php'); $jevix = new AJUR\Jevix\Jevix(); //Конфигурация // Устанавливаем разрешённые теги. (Все не разрешенные теги считаются запрещенными.) $jevix->cfgAllowTags(array('a', 'img', 'strong', 'ul', 'li', 'h1', 'h2')); // Устанавливаем разрешённые параметры тегов. $jevix->cfgAllowTagParams('a', array('title', 'href')); // Устанавливаем параметры тегов являющиеся обязяательными. Без них вырезает тег оставляя содержимое. $jevix->cfgSetTagParamsRequired('a', 'href'); // Устанавливаем теги которые может содержать тег контейнер $jevix->cfgSetTagChilds('ul', 'li', true, false); // Устанавливаем атрибуты тегов, которые будут добавлятся автоматически $jevix->cfgSetTagParamDefault('a', 'rel', 'nofollow'); //Парсинг $res = $jevix->parse('...тут...мог...бы...быть...ваш...текст...'); ?>
系统要求
- PHP 7.3.0+
- mbstring模块