agelxnash / jevix
用于HTML过滤的库
1.2.4
2019-03-29 12:26 UTC
Requires
- ext-mbstring: *
README
由 ТМ™ 开发的自动排版和HTML/XHTML文本过滤系统,用于开源项目。最初是 Perl Jevix 的PHP版本,现在项目已经发展得非常不同。
使用情况
- 主题媒体项目(如 Хабрахабр 等)
- 无空赠予社区 Дaru~дар
- 专注于nix系统和开源世界的俄罗斯领先互联网资源之一 NIXP.RU
- 免费博客和社交网络平台以及主题社区引擎 LiveStreet,BigStreet 和 Explay CMS
- 基于 CodeIgniter 的网站管理系统 Сogear
- 多功能的网站管理系统 Alto CMS
- Codeigniter 插件. 与 GeSHi 配合使用以突出显示语法
- MODx CMS 插件: 主页,GitHub
- 用于在 Yii 中方便使用 Jevix
功能
- 基于指定规则允许的标签和属性过滤用户输入的带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