-
Notifications
You must be signed in to change notification settings - Fork 7
/
index.php
83 lines (67 loc) · 1.72 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
require_once 'workflows.php';
$w = new Workflows();
$kw = "{query}";
//$kw = "array diff";
$funcInfoList = include_once('function_list.php');
$funcList = array_keys($funcInfoList);
$funcRes = array();
$limit = 100;
// 完全匹配
foreach ($funcList as $funcName) {
if ($funcName == $kw) {
$funcRes[$funcName] = array();
}
}
// 前缀匹配
foreach ($funcList as $funcName) {
if (count($funcRes) >= $limit) {
break;
}
if (strpos($funcName, $kw) === 0) {
$funcRes[$funcName] = array();
}
}
// 部分匹配
foreach ($funcList as $funcName) {
if (count($funcRes) >= $limit) {
break;
}
if (strpos($funcName, $kw)) {
$funcRes[$funcName] = array();
}
}
// 拆词匹配
foreach ($funcList as $funcName) {
if (count($funcRes) >= $limit) {
break;
}
$kwList = preg_split("/[\_\-\ ]/", $kw);
foreach ($kwList as $kwItem) {
if (strpos($funcName, $kwItem) === false) {
continue(2);
}
}
$funcRes[$funcName] = array();
}
// 标题匹配
foreach ($funcInfoList as $funcInfo) {
if (count($funcRes) >= $limit) {
break;
}
if (strpos($funcInfo['title'], $kw)) {
$funcRes[$funcInfo['name']] = array(
);
}
}
foreach((array) $funcRes as $funcName => $funcInfo) {
$i++;
$funcInfo = $funcInfoList[$funcName];
$title = trim("{$funcName} - {$funcInfo['title']}");
$sub = trim("{$funcInfo['prot']}");
$w->result($i, $funcName, $title, $sub, 'icon.png');
}
if (count($w->results()) == 0) {
$w->result('zhoufan.php', $kw, '糟糕…', '没找到, 去php.net搜搜看?', 'icon.png', 'yes');
}
echo $w->toxml();