miovisman/jevix

HTML过滤库

2.2.1 2021-03-04 06:07 UTC

This package is auto-updated.

Last update: 2024-09-10 03:28:01 UTC


README

由TMTM™(https://tmtm.ru)开发,用于自开源项目的自动排版和文本过滤系统。最初是Perl版本的Jevix的PHP版本,现在项目已经大大扩展。

应用领域

功能

  • 根据指定的规则过滤用户输入的带有HTML标记的文本,允许指定的标签和属性
  • 修正HTML错误并生成有效的HTML或XHTML代码
  • 预防XSS攻击
  • 应用适用于俄语的文本排版规则

优势

  • Jevix使用“最终自动机”而非正则表达式。因此,其反向理念是:除允许的之外,其他都禁止
  • 在一个文件中实现XSS过滤、验证、HTML处理和文本排版

缺点

  • Jevix使用
    分隔行。它无法创建

    段落

    ,而且在现有的架构概念中可能无法学习到这一点
  • 作者不再开发此项目,已转向Python,并逐渐忘记了PHP语法。不过,PULL请求是受欢迎的

使用示例

<?
require('jevix.class.php');

$jevix = new MioVisman\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模块