<?php
/**
 * ------------------------ 
 *  版权所有  www.tecmz.com
 *  商业版本请购买正版授权使用
 * ------------------------
*/ namespace ModStart\Core\Util; class XKeywordsUtil { public static function match($ro4O3, $ohNZt, &$diS1w = null) { goto v_Mwx; FWe7G: foreach ($ctQO9 as $V563N) { goto wuWVv; PzvNS: if (empty($V563N)) { continue; } goto VBitM; wuWVv: $V563N = trim($V563N); goto PzvNS; VBitM: if (false !== strpos($ohNZt, $V563N)) { $diS1w = $V563N; return true; } else { if (substr($V563N, 0, 1) === '@') { if (@preg_match('/' . substr($V563N, 1) . '/', $ohNZt)) { $diS1w = $V563N; return true; } } else { if (false !== strpos($V563N, ' ')) { goto nmZkD; Admg8: if ($XEdS0) { $diS1w = $V563N; return true; } goto G2x1h; nmZkD: $XEdS0 = true; goto fl9Uz; fl9Uz: foreach (explode(' ', $V563N) as $F_a6B) { if (false === strpos($ohNZt, $F_a6B)) { $XEdS0 = false; break; } } goto Admg8; G2x1h: } else { if (preg_match('/((\\*)(\\d+))[^\\d]/', $V563N, $wsKBJ)) { goto ZlFY_; TDGZu: if (@preg_match($kxbur, $ohNZt)) { $diS1w = $V563N; return true; } goto dDm9B; ZlFY_: $cGA25 = explode($wsKBJ[1], $V563N); goto N103e; N103e: $kxbur = '/' . preg_quote($cGA25[0]) . '.{3,' . $wsKBJ[3] * 3 . '}' . preg_quote($cGA25[1]) . '/'; goto TDGZu; dDm9B: } else { if (false !== strpos($V563N, '*')) { goto pWmXE; mqBEa: $kxbur = '/' . preg_quote($cGA25[0]) . '.+' . preg_quote($cGA25[1]) . '/'; goto chVnS; chVnS: if (@preg_match($kxbur, $ohNZt)) { $diS1w = $V563N; return true; } goto iy7QR; pWmXE: $cGA25 = explode('*', $V563N); goto mqBEa; iy7QR: } } } } } goto FAEU_; FAEU_: } goto Tmp1I; Tmp1I: return false; goto qclqu; BtIWt: if (empty($ro4O3) || empty($ohNZt)) { return false; } goto PQ6Ec; v_Mwx: $ro4O3 = trim($ro4O3); goto BtIWt; wrc6Y: $ctQO9 = explode('
', $ctQO9); goto FWe7G; PQ6Ec: $ctQO9 = str_replace(',', '
', $ro4O3); goto wrc6Y; qclqu: } public static function descriptionHtml() { return '<pre class=\'ub-content-bg\'>' . self::description() . '</pre>'; } public static function description() { $BaGNs = '关键词匹配说明
· 简单包含匹配: "你好" 匹配 "你好"多条使用,分割
· 忽略顺序同时包含匹配: "你 好" 匹配 "你们好"、"你们好"、"很好你们"
· 顺序同时包含匹配: "你*好" 匹配 "你们好"、"你们很好"，*匹配一个或多个字
· 顺序限定同时包含匹配: "你*1好" 匹配 "你们好"，不能匹配"你们很好"，数字表示最长多少个汉字字符，1个汉字=3英文字母
· 正则表达式匹配："@正则表达式" 匹配 "正则表达式"，@开头表示正则表达式
使用说明
· 多个正则使用半角逗号(,)或换行分割'; return $BaGNs; } public static function test() { goto Xoqdn; Xoqdn: $ywEMz = array('你好', '你好', '你好', '你们好', '你 好', '你们好', '你*好', '你们好', '你*1好', '你们好', '你*1好', '你们很好', '你*2好', '你们很好', '@你们', '你们很好', '@你好', '你们很好'); goto agc9A; xJ2D0: return join('
', $WZJqt); goto rYYeW; agc9A: $WZJqt = array(); goto z7qT1; z7qT1: for ($JhHfm = 0; $JhHfm < count($ywEMz); $JhHfm += 2) { $WZJqt[] = sprintf('%-10s%-20s%s', $ywEMz[$JhHfm], $ywEMz[$JhHfm + 1], json_encode(self::match($ywEMz[$JhHfm], $ywEMz[$JhHfm + 1]))); } goto xJ2D0; rYYeW: } }