sspat / es-query-sanitizer
一个简单的辅助类,用于从查询字符串中清除ElasticSearch保留字符
1.0.2
2018-01-22 19:50 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- phpunit/phpunit: ~5.7
This package is auto-updated.
Last update: 2024-09-12 05:08:00 UTC
README
灵感来自node-elasticsearch-sanitize
特性
接受任意字符串作为输入,并转义ElasticSearch保留字符
+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ / AND OR NOT 空格
返回一个经过清理的字符串,可以在ElasticSearch查询_string查询中安全使用。
安装
安装此扩展的首选方式是通过composer。
运行以下命令之一:
composer require sspat/es-query-sanitizer
或者
"sspat/es-query-sanitizer": "~1.0"
将以下内容添加到您的composer.json
文件的require部分。
使用方法
传递一个字符串
$unescapedQueryString = 'AND there! are? (lots of) char*cters 2 ^escape!' $escapedQueryString = \sspat\ESQuerySanitizer\Sanitizer::escape($unescapedQueryString); echo $escapedQueryString; // \A\N\D\ there\!\ are\?\ \(lots\ of\)\ char\*cters\ 2\ \^escape\!
如果需要,您还可以传递一个数组作为第二个参数,以防止某些字符被转义
$unescapedQueryString = 'AND there! are? (lots of) char*cters 2 ^escape!' $excludeCharacters = ['!', '^']; $escapedQueryString = \sspat\ESQuerySanitizer\Sanitizer::escape($unescapedQueryString, $excludeCharacters); echo $escapedQueryString; // \A\N\D\ there!\ are\?\ \(lots\ of\)\ char\*cters\ 2\ ^escape!