agelxnash/jevix

用于HTML过滤的库

1.2.4 2019-03-29 12:26 UTC

This package is auto-updated.

Last update: 2024-08-25 06:15:43 UTC


README

ТМ™ 开发的自动排版和HTML/XHTML文本过滤系统,用于开源项目。最初是 Perl Jevix 的PHP版本,现在项目已经发展得非常不同。

使用情况

功能

  • 基于指定规则允许的标签和属性过滤用户输入的带HTML标记的文本
  • 修复HTML错误并生成有效的HTML或XHTML代码
  • 防止XSS攻击
  • 为俄语应用文字排版( typography )规则

优势

  • Jevix在“终结器”上运行,而不是在正则表达式上。相应的反向理念:不是禁止规则,而是允许规则(不许可的就是禁止的)
  • 结合XSS过滤、验证、HTML处理和文字排版,所有功能在一个文件中实现

缺点

  • Jevix使用 '''<br>''' 分隔行。它不能创建 '''<p>段落</p>''',而且在现有的架构概念中可能永远学不会
  • 作者不再开发此项目,已转向Python,并逐渐忘记了PHP语法。不过,欢迎PULL请求

使用示例

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

$jevix = new 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('...тут...мог...бы...быть...ваш...текст...'); ?>  

系统要求

  • PHP5
  • mbstring 模块
  • UTF-8

在 .htaccess 中可能的设置以正确使用 mbstring

php_value       mbstring.func_overload      0  
php_value       default_charset             UTF-8  
php_value       mbstring.language           Russian  
php_value       mbstring.internal_encoding  UTF-8